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 ?
Cycle de vie d'un bon programme :
1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise
Pas de question technique par MP, je ne réponds pas
Mes ouvrages :
Migrer les applications VBA Access et VBA Excel vers la Power Platform
Apprendre à programmer avec Access 2016, Access 2019 et 2021
Apprendre à programmer avec VBA Excel
Prise en main de Dynamics 365 Business Central
Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
Pensez à consulter la FAQ Excel et la FAQ Access
Derniers tutos
Excel et les paramètres régionaux
Les fichiers Excel binaires : xlsb,
Autres tutos
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?
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Partager