Boucle vb
Fermé
juliet
-
23 juin 2010 à 10:21
GégéLAMBERT Messages postés 615 Date d'inscription lundi 21 juin 2010 Statut Membre Dernière intervention 24 octobre 2014 - 23 juin 2010 à 11:40
GégéLAMBERT Messages postés 615 Date d'inscription lundi 21 juin 2010 Statut Membre Dernière intervention 24 octobre 2014 - 23 juin 2010 à 11:40
A voir également:
- Boucle vb
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Tv orange chargement en boucle ✓ - Forum TV & Vidéo
- Huawei s'allume et s'éteint en boucle - Forum Huawei
6 réponses
GégéLAMBERT
Messages postés
615
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
24 octobre 2014
10
23 juin 2010 à 10:33
23 juin 2010 à 10:33
Bonjour,
Lorsque ça ne marche pas, c'est que C3 contient une valeur non numérique, ou qu'elle contient rien du tout ?
Gégé
Lorsque ça ne marche pas, c'est que C3 contient une valeur non numérique, ou qu'elle contient rien du tout ?
Gégé
Bonjour,
En fait c'est quand la cellule est vide, mais le probléme c'est que je vais avoir plein de cellule vide.
Merci
En fait c'est quand la cellule est vide, mais le probléme c'est que je vais avoir plein de cellule vide.
Merci
GégéLAMBERT
Messages postés
615
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
24 octobre 2014
10
23 juin 2010 à 11:00
23 juin 2010 à 11:00
C'est donc logique que ta boucle s'arrête, puisque ta condition c'est :
Do While Worksheets("Cu").Cells(3, I) <> ""
Avec cette configuration, tu sors de ta boucle dès qu'une cellule vide est rencontrée sur ta ligne 3.
Si tu sais d'avance le nombre de colonnes de ton tableau, et que ce nombre est figé, tu peux remplacer le Do While par une boucle For...Next:
Private Sub CommandButton1_Click()
I = 3
J = 15 '(tu mets ici à la place de 15 le numéro correspondant à la dernière colonne de ton tableau)
If ComboBox1.Value = "SIL9" Then
For It = I to J
If IsNumeric(Worksheets("Cu").Cells(3, It).Value) Then
ListBox1.AddItem Worksheets("Cu").Cells(2, It).Value
End If
Next It
End If
End Sub
Ainsi, ta boucle parcours la ligne 3 de toutes tes colonnes, même si elle rencontre une cellule vide...
Gégé
Do While Worksheets("Cu").Cells(3, I) <> ""
Avec cette configuration, tu sors de ta boucle dès qu'une cellule vide est rencontrée sur ta ligne 3.
Si tu sais d'avance le nombre de colonnes de ton tableau, et que ce nombre est figé, tu peux remplacer le Do While par une boucle For...Next:
Private Sub CommandButton1_Click()
I = 3
J = 15 '(tu mets ici à la place de 15 le numéro correspondant à la dernière colonne de ton tableau)
If ComboBox1.Value = "SIL9" Then
For It = I to J
If IsNumeric(Worksheets("Cu").Cells(3, It).Value) Then
ListBox1.AddItem Worksheets("Cu").Cells(2, It).Value
End If
Next It
End If
End Sub
Ainsi, ta boucle parcours la ligne 3 de toutes tes colonnes, même si elle rencontre une cellule vide...
Gégé
Merci, mais le probléme, c'est que je ne peux pas connaitre le nombre de colonne à l'avance, j'ai justement reflechi pour que se soit fixe mais je ne peux pas.
Est ce que je ne peux pas changer le Isnumeric car en fait je n'ai plus que soit des cellules vides soit du numeric. Sachant que mes cellules vides sont d'une autre couleur que les cellules vides.
Merci beaucoup
Est ce que je ne peux pas changer le Isnumeric car en fait je n'ai plus que soit des cellules vides soit du numeric. Sachant que mes cellules vides sont d'une autre couleur que les cellules vides.
Merci beaucoup
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
GégéLAMBERT
Messages postés
615
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
24 octobre 2014
10
23 juin 2010 à 11:22
23 juin 2010 à 11:22
Le problème n'est pas le IsNumeric ou non. Le problème est de délimiter ton tableau pour que la boucle ne traite que le nécessaire.
Y a-t-il dans ton tableau une ligne qui contient systématiquement quelque chose, et sur laquelle on pourrait faire le test pour savoir quand arrêter la boucle ?
Sinon, Excel mettant généreusement à ta disposition 256 colonnes, tu boucles direct sur les 256, sachant que ta ListBox ne se remplira que si la valeur en ligne 3 est numérique.
Bien sûr, ce type de méthode est à proscrire dans des procédures complexes, mais sur des boucles simples, ça ne devrait pas trop se voir au niveau du temps d'exécution.
Gégé
Y a-t-il dans ton tableau une ligne qui contient systématiquement quelque chose, et sur laquelle on pourrait faire le test pour savoir quand arrêter la boucle ?
Sinon, Excel mettant généreusement à ta disposition 256 colonnes, tu boucles direct sur les 256, sachant que ta ListBox ne se remplira que si la valeur en ligne 3 est numérique.
Bien sûr, ce type de méthode est à proscrire dans des procédures complexes, mais sur des boucles simples, ça ne devrait pas trop se voir au niveau du temps d'exécution.
Gégé
merci beaucoup pour ces explications précises
C'est bon ca marche comme je veux
C'est bon ca marche comme je veux
GégéLAMBERT
Messages postés
615
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
24 octobre 2014
10
23 juin 2010 à 11:40
23 juin 2010 à 11:40
Impec !
Bonne journée
Gégé
Bonne journée
Gégé