Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

icompatibilité de type

6 réponses
Avatar
Pascal
bonjour
comment passer la plage de cellule A1:j27 dans ma variable au format string
je m'explique si je déclare Dim X as string et que je fait x=
range("A1:J27")
j'ai une incompatibilité de type
merci d'avance

Pascal

6 réponses

Avatar
MichDenis
Une variable de type String contient une chaîne de caractère
et non un tableau (array)

Pour passer directement une plage de cellules à une variable,
tu peux utiliser ceci :

Dim x ' sans aucun type et c'est probablement la meilleure approche
'car les différentes versions ne se comportent pas toutes de la même manère...

Dim X() OU Dim As Variant


Dim x
x = Range("A1:b10")

Et pour la lecture du tableau (array)
For A = 1 To UBound(x, 1)
For B = 1 To UBound(x, 2)
Msgbox x(A, B)
Next
Next





"Pascal" ,com> a écrit dans le message de news:

bonjour
comment passer la plage de cellule A1:j27 dans ma variable au format string
je m'explique si je déclare Dim X as string et que je fait x range("A1:J27")
j'ai une incompatibilité de type
merci d'avance

Pascal
Avatar
Pascal
merci m'sieur
Pascal

"MichDenis" a écrit dans le message de news:
%
Une variable de type String contient une chaîne de caractère
et non un tableau (array)

Pour passer directement une plage de cellules à une variable,
tu peux utiliser ceci :

Dim x ' sans aucun type et c'est probablement la meilleure approche
'car les différentes versions ne se comportent pas toutes de la même
manère...

Dim X() OU Dim As Variant


Dim x
x = Range("A1:b10")

Et pour la lecture du tableau (array)
For A = 1 To UBound(x, 1)
For B = 1 To UBound(x, 2)
Msgbox x(A, B)
Next
Next





"Pascal" ,com> a écrit dans le message de news:

bonjour
comment passer la plage de cellule A1:j27 dans ma variable au format
string
je m'explique si je déclare Dim X as string et que je fait x > range("A1:J27")
j'ai une incompatibilité de type
merci d'avance

Pascal





Avatar
Merguez07
Bonjour,
elle est bizarre ta question
Un string ne peut être égal à un range d'ou le message d'erreur
Que veux tu faire exactement ?

XavierP

"Pascal" ,com> a écrit dans le message de groupe de
discussion :
bonjour
comment passer la plage de cellule A1:j27 dans ma variable au format
string
je m'explique si je déclare Dim X as string et que je fait x=
range("A1:J27")
j'ai une incompatibilité de type
merci d'avance

Pascal





Avatar
Pascal
ah bon depuis quand un string ne peut être = a un range
et si tu fais ceci x=range("a1") ou X déclaré string là cà passe sans
soucis
et si tu concatène le tout x=x & range("a2") là aussi cà passe
c'est pour une plage que cela ne fonctionne pas
pas si bizarre que çà la question

Pascal




"Merguez07" a écrit dans le message de news:
4852bfe9$0$26364$
Bonjour,
elle est bizarre ta question
Un string ne peut être égal à un range d'ou le message d'erreur
Que veux tu faire exactement ?

XavierP

"Pascal" ,com> a écrit dans le message de groupe de
discussion :
bonjour
comment passer la plage de cellule A1:j27 dans ma variable au format
string
je m'explique si je déclare Dim X as string et que je fait x=
range("A1:J27")
j'ai une incompatibilité de type
merci d'avance

Pascal







Avatar
Misange
bonjour
quand tu écris x=range("A1") c'est implicitement la même chose que
range("A1").value
mais quelle est la valeur d'un range("A1:C2")?

Ce que tu demandais c'était de passer un objet range (l'objet, pas sa
valeur telle que ta question était rédigée) dimensionnée comme une
chaîne de cractère. et là excel ne comprends pas ce qu'il doit faire.

Dans ton cas, comme Denis te l'a expliqué, ce qui est récupéré dans ta
variable c'est un tableau de valeurs et tu es donc obligé de déclarer et
d'initialiser ton tableau avant de pouvoir l'utiliser. Voilà du reste
une illustration d'une situation ou un message d'erreur d'excel oblige à
se poser la question sur le type et la dimension des variables
manipulées et à les déclarer explicitement.
Cet exemple donné par Chip Pearson illustre bien à quoi peut conduire
l'absence de déclaration des variables
http://www.excelabo.net/excel/macrosvariables.php#declarationdevariable

Il y a juste effectivement une petite difficulté pour les tableaux qui
est comme le dit Denis le fait que la façon de les déclarer a varié
suivant les versions. Pas super malin !
http://www.excelabo.net/excel/outilsarrays.php#variabletableau



Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

ah bon depuis quand un string ne peut être = a un range
et si tu fais ceci x=range("a1") ou X déclaré string là cà passe sans
soucis
et si tu concatène le tout x=x & range("a2") là aussi cà passe
c'est pour une plage que cela ne fonctionne pas
pas si bizarre que çà la question

Pascal




"Merguez07" a écrit dans le message de news:
4852bfe9$0$26364$
Bonjour,
elle est bizarre ta question
Un string ne peut être égal à un range d'ou le message d'erreur
Que veux tu faire exactement ?

XavierP

"Pascal" ,com> a écrit dans le message de groupe de
discussion :
bonjour
comment passer la plage de cellule A1:j27 dans ma variable au format
string
je m'explique si je déclare Dim X as string et que je fait x=
range("A1:J27")
j'ai une incompatibilité de type
merci d'avance

Pascal











Avatar
Tatanka
Salut Pascal,

Et pourquoi pas quelque chose du genre :

Sub essai()
Dim x As Range
Set x = Range("A1:J27")
x.Value = "MPFE"
End Sub

Serge



"Pascal" ,com> a écrit dans le message de news:

bonjour
comment passer la plage de cellule A1:j27 dans ma variable au format
string
je m'explique si je déclare Dim X as string et que je fait x=
range("A1:J27")
j'ai une incompatibilité de type
merci d'avance

Pascal