Variable indicée avec boucle while VBA

2pax.cruz -  
 2pax.cruz -
Bonjour,

je cherche à faire une boucle qui, tant que les cellules ne sont pas vides, mettent la valeur de ces cellules dans une variable indicée.

J'ai fais cela mais ça ne fonctionne pas...

Dim i As Byte
i = 1
Dim Machine() As String

While Not IsEmpty(Cells(1, i))
Machine(i) = Cells(1, i)
Wend



Merci d'avance...

5 réponses

2pax.cruz
 
J'ai modifié mais ça ne fonctionne pas au niveau de la ligne Machine(i) = Cells(1, i)

Dim i As Byte
i = 1
Dim Machine() As String

While Not IsEmpty(Cells(1, i))
Machine(i) = Cells(1, i)
i = i + 1
Wend


Merci
1
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Ton tableau Machine() n'est pas dimensionné.
Il faut allouer un espace mémoire à chaque élément de ton tableau.
Tu peux utiliser i pour faire ça :
Redim Preserve Machine(i)
Machine(i) = Cells(1,i)


;o)
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Bonjour,

ton i ne bouge jamais, donc tu testes toujours la case A1. De plus mettre i en Byte te limite un peu dans les valeurs de i, mets-le en Integer ou bien Double.

Cordialement.
0
2pax.cruz
 
Cela fonctionne, merci.

Comment faire pour insérer ce que j'ai dans ma varaible dans une cellule.

Par exemple, je veux insérer la valeur de Machine(1) dans la cellule A1


Merci d'avance.
0
2pax.cruz
 
J'ai trouvé cela. Merci.

Une dernière question.

Comment puis je compter combien de valeurs y'a t-il dans ma variable Machine(i) ?


Merci.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
En incluant ça :
Dim nbVal As Long

nbVal = Ubound(Machine())


;o)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
2pax.cruz
 
Merci =D
0