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,
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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,
- 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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éments
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part ComboBox1.RowSource = "feuil1!a1:a10"
en adaptant les plages et les noms des combo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager