dimension d'une variable

  • Initiateur de la discussion Initiateur de la discussion Jose_P
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jose_P

Guest
Bonjour à tous,

je suis dans un code vba où je souhaite définir une variable de type variante à 1 seule dimension. En écrivant dans mon code (en définissant préalablement la variable1 comme Variant) ;

variable1 = Array("champs1", "", "champs2", "champs3", "champs4")
la variable se définit tres bien.

Le problème se pose dès que je définis ma variable1 de manière "dynamique";

variable1 = Range(range1.Offset(1, 0), range1.Offset(NbChamps, 0)).Value, où range1 est un range dans ma feuille excel

dans ce cas alors, la variable1 se définit à 2 dimensions et pas 1 comme souhaitée

pouvez-vous m'aider ? que dois-je faire ?

merci d'avance
Jose_P
 
Re : dimension d'une variable

Bonsoir,
Code:
Sub Tablo()
Dim Variable1() As Variant
With ActiveSheet
    Set Range1 = .Range("A1")
    Nbchamps = .Range("A65000").End(xlUp).Row
    Variable1 = .Range(Range1.Offset(1, 0), Range1.Offset(Nbchamps, 0)).Value
End With
End Sub
Renvoie un tableau contenant les valeurs de la colonne A, de la ligne2 à la première ligne vide, il y a bien une seule dimension.
Si j'ai bien compris
A+
kjin
 
Re : dimension d'une variable

Bonsoir Kjin et merci pour ta réponse,

g mis ton code ds du vba pour voire ce que ca donne et je me suis permis de rajouter une variable2 qui correspond à ce que je souhaite obtenir (tt est dans la pièce jointe excel d'ailleurs);
 
Re : dimension d'une variable

Bonsoir Kjin et merci pour ta réponse,

g mis ton code ds du vba pour voire ce que ca donne et je me suis permis de rajouter une variable2 qui correspond à ce que je souhaite obtenir (tt est dans la pièce jointe excel d'ailleurs);

Variable1 = .Range(Range1.Offset(1, 0), Range1.Offset(Nbchamps, 0)).Value
Variable2 = Array("Champs1", "Champs2", "Champs3", "Champs4")

en ajoutant un espion on voit que variable1 et variable2 n'ont pas la mm dimension,

- Variable1(1)
+ Variable1(1)
+ Variable1(2)
+ Variable1(3)
...

et ilfaut "ouvrir" ensuite chaque Variable(i) pour voire la valeur, alors que Variable2 se présente;
-Variable2
Variable2(0) .... "Champs1"
etc ...



merci de m'aider
a tte
 

Pièces jointes

Dernière modification par un modérateur:
Re : dimension d'une variable

Bonsoir,

le premier indice d'un tableau VBA peut être 0 ou 1 en fonction du choix fait avec "Option Base" (écrit en tête de module, par défaut 0) mais sera toujours à 1 dans le cas où ce tableau fait référence à une plage de feuille.
 
Re : dimension d'une variable

Bonsoir,

merci pour ta réponse Skoobi mais mon problème ne concerne pas l'indice initial de la variable créée. Mon provient du fait que je veux obtenir ma variable avec le résulat directement ( c.a.d variable1(0)= Champs1 etc ..) dans mon cas j'obtiens variable1(1) qui contient la valeur souhaitée (c'est l'espion qui me le dit) et je dois ouvir variable1(1) pour voire mon résultat,



suis-je assez clair,



merci de m'aider
bonne soirée
Jose_P
 
Re : dimension d'une variable

Bonjour skoobi,


merci beaucoup c'est exactement ce que je cherchais !!!
La réponse est parfois plus simple que ce qu'on s'imagine, merci !!!

La seule différence maintenant est l'indice d'origine (1 dans un cas et 0 dans l'autre cas). J'ai bien lu ton message qui explique comment définir par défaut le premier indice d'un tableau VBA et qu'il est toujours égal à 1 dans le cas où ce tableau fait référence à une plage de feuille.
Est-il possible de le ramener simplement à 0 ?

Merci d'avance


jose_P
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
924
E
  • Question Question
Réponses
6
Affichages
1 K
elmilo13
E
S
Réponses
1
Affichages
1 K
S
  • Question Question
Microsoft 365 Protect/Unprotect
Réponses
18
Affichages
3 K
A
Réponses
48
Affichages
6 K
Ananas94
A
Retour