Variable indicée avec boucle while VBA

Fermé
2pax.cruz - 30 juin 2010 à 09:05
 2pax.cruz - 30 juin 2010 à 10:43
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

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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
30 juin 2010 à 09:22
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 lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
30 juin 2010 à 09:10
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
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
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
30 juin 2010 à 10:19
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
Merci =D
0