Lignes vides indésirables dans tableau array

polompolom69 Messages postés 28 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 30 janvier 2012 - 23 avril 2005 à 19:58
polompolom69 Messages postés 28 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 30 janvier 2012 - 26 avril 2005 à 06:09
Bonjour à toutes et à tous,

Je cherche à remplir une listebox multicolonnes en fonction de donnée recherchées sur une feuilles de calcul Excel.

Je travail avec un tableau que ma listebox récupère pour s'incrémenter.

J'ai un souci dans les conditions de remplissage du tableau qui me prends des lignes vides. Voici mon code :

Dim MyArray(1 To 100, 3)

For ert = 2 To 100 If Cells(ie, ert) "x" Then MyArray(ert, 0) Cells(1, ert): MyArray(ert, 1) = Cells(2, ert): MyArray(ert, 2) = ""
If Cells(ie, ert) "En cours" Then MyArray(ert, 0) Cells(1, ert): MyArray(ert, 1) = Cells(2, ert): MyArray(ert, 2) = "En cours de validation"

Next

Le code va bien chercher les lignes qui répondent aux conditions "x" et "En cours" mais dans le cas contraire il rempli une ligne vide et me construit coute que coute un tableau avec 100 entrées.

J'aimerai que le tableau se dimensionne automatiquement au seules conditions fixées.

J'espère avoir été suffisament clair dans mon énoncé et remercie celle ou celui qui aurait un tuyau.

Bien à vous


Polompolom

2 réponses

dpouliot Messages postés 50 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 4 novembre 2008
25 avril 2005 à 21:35
Prend le problème autrement.
Au lieu de faire ligne colonne Dim MyArray(1 To 100, 3)
Fais colonne ligne

Dim Myarry(3,1)


For ert 2 To 100<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" />


If Cells(ie, ert) "x" Then redim preserve MyArray(3,ert): MyArray(<gras>0, ert) </gras> Cells(1, ert): MyArray(1, ert) = Cells(2, ert): MyArray( 2, ert ) = ""


If Cells(ie, ert) "En cours" Then redim preserve MyArray(3,ert): MyArray(<gras>0, ert) </gras> Cells(1, ert): MyArray(1, ert) = Cells(2, ert): MyArray( 2, ert ) = "En cours de validation"

next

Pour le REDIM, ne pas oublier preserve.
Pour la réutilisation ne pas oublier que le premier chiffre de MyArry est le numéro de la colonne et le deuxième est celui de la ligne.

Tu auras ainsi un tableau qui a le nombre de ligne correspondant au nombre lu.

dpouliot
0
polompolom69 Messages postés 28 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 30 janvier 2012
26 avril 2005 à 06:09
Un grand merci pour ta réponse qui fonctionne à merveille !

Au plaisir...


Polompolom
0
Rejoignez-nous