Comment vérifié si il y a plus de valeur dans une listbox?

Résolu
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008 - 25 oct. 2006 à 10:36
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008 - 25 oct. 2006 à 18:30
Voilà, je suis toujours dans l'éditeur VB d'excel, maintent le souci, c'est que je fais une boucle jusqu'à ce que la listbox n'ai plus de charactère un trucs du style

For Row = 2 To 25000

If   ListBox1.List(i, 0) = "" Then      'Plante quand l'égalité est vrai... 
  Exit For
Else
.... -> fait le reste des calcules

Donc cela marche mais il me fait une erreur justement lorsque la vérification des données = vides, bam plantage... Existe il un autre moyen que les "" ou je sais pas trop... Parce qu'il parcourt toute la listbox jusqu'au moment ou l'égalité est vrai, c'est-à-dire qu'il n'y a plus rien, plantage sur cette ligne.

Voilà et merci d'avance!

6 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
25 oct. 2006 à 11:26
La propriété ListCount d'une listbox te retourne le nombre de lignes, donc

For Row = 1 To Listbox1.ListCount - 1
...

Next


Comme les index commencent à 0, Il faut utiliser ListCount - 1 pour
éviter le débordement. C'est pas très logique, mais c'est comme ça...

MPi
3
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
25 oct. 2006 à 11:17
Lu,
(pour une histoire d'optimisation)
évite de mettre "" et utilise plutot vbnullstring
le "" <--- utilise un espace vide, donc un caractère qui va etre en mémoire
par contre VbnullString donne le meme resultat--> (vide) mais sans  etre stocker en mémoire par vb

sinon pour ta boucle

If   ListBox1.List(i, 0) = "" Then      'Plante quand l'égalité est vrai... 
  Exit For
Else
.... -> fait le reste des calcules

' tente ca
If ListBox1.List(i,0) <> Vbnullstring then 'si ya quelque chose ...
....-> on fait le reste des calcules
End if

'sinon

 If Not Nothing Is Listbox1.List(i,0)
....-> on fait le reste des calcules
End if
0
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008
25 oct. 2006 à 11:21
Nickel  Je vais tenter ça tout de suite, Merci BOmbJack!
0
B0mbJacK Messages postés 141 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 octobre 2006 1
25 oct. 2006 à 11:31
si c'est logique....
le count commence par 1 alors que l'index par 0
 le nombre d'index  = .Count -1
0

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

Posez votre question
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008
25 oct. 2006 à 13:02
l'autre méthode avec le vbnullstring ne marche pas, il me retourne la même erreur, je vais essayé avec le listcount ;o) Merci, je vous tiens au courant
0
cs_Gokuan Messages postés 51 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 17 novembre 2008
25 oct. 2006 à 18:30
excellente réponse , ça à marché sans souci  Mille merci!!!
0
Rejoignez-nous