Bonjour,
J'aimerais savoir comment mettre les éléments d'une colonne dans une combobox sans utiliser For Next, puisque le nombre de lignes est variable.
Merci beaucoup.
Version imprimable
Bonjour,
J'aimerais savoir comment mettre les éléments d'une colonne dans une combobox sans utiliser For Next, puisque le nombre de lignes est variable.
Merci beaucoup.
bonjour,
tu dois parler du for i = .... Next
Que penses-tu du For each In... Next ?
Je ne sais pas exactement comment fonctionne la fonction For / each in
Voila mon code. Pour l'instant, je n'ai pas trouvé d'autre solution. Au pire, ce code m'irait si les cellules vides n'apparrassaient pas dans les combobox...
Code:
1
2
3
4
5
6 For i = 2 To 1000 ComboBoxsport1.AddItem (Selection.Offset(i, 0).Value) ComboBoxsport2.AddItem (Selection.Offset(i, 0).Value) ComboBoxsport3.AddItem (Selection.Offset(i, 0).Value) ComboBoxsport4.AddItem (Selection.Offset(i, 0).Value) Next i
bonsoir,
tu as combien de combo ?
Bonsoir,
- Tes Combo sont-ils sur un UserForm ou sur une feuille de calcul ?
- Quel est l’intérêt de faire apparaître la même chose dans chaque combo ?
Il faut au moins simplifier le code :
ou mieux si réellement tous les combo ont le même contenu,Code:
1
2
3
4
5
6
7
8 Dim Ref as String For i = 2 To 1000 Ref = Selection.Offset(i).Value ComboBoxsport1.AddItem Ref ComboBoxsport2.AddItem Ref ComboBoxsport3.AddItem Ref ComboBoxsport4.AddItem Ref Next
Par ailleurs For Each permet de boucler à travers tous les éléments d’une collection. C’est extrêmement pratique, puisque justement, on n’a pas à se préoccuper du nombre d’élémentsCode:
1
2
3
4
5
6
7
8 Dim Ref as String For i = 2 To 1000 Ref = Selection.Offset(i).Value ComboBoxsport1.AddItem Ref Next ComboBoxsport2.List = ComboBoxsport1.List ComboBoxsport3.List = ComboBoxsport1.List ComboBoxsport4.List = ComboBoxsport1.List
ouCode:
1
2
3
4 Dim c as Range For each c in Selection ' Le traitement à effectuer pour chaque cellule de la sélection Next
Cordialement,Code:
1
2
3
4 Dim f as Worksheet For each f in ActiveWorkbook.Worksheets ' Le traitement à effectuer pour chaque feuille du classeur actif Next
Bonsoir
Il semble que tu alimentes tes combo avec des données issues de plages de cellules.
Si ton combobox est issu de la boite à outils, tu peux alors utiliser sa propriété RowSource pour l'alimenter au départ d'une plage de cellules
Si c'est un combobox de formulaire, tu peux utiliser ceciCode:ComboBox1.RowSource = "feuil1!a1:a10"
en adaptant les plages et les noms des combo.Code:
1
2 Feuil1.Shapes("combo1").Select Selection.ListFillRange = "$A$1:$A$4"
Tu n'as alors pas besoin de boucler, et tu dois seulement recomposer l'adresse de la plage utilisée.
Cela te convient-il?
Super, ca fonctionne.
Merci beaucoup