Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplir ComboBox identiques

4 réponses
Avatar
Péhemme
Bonjour à Tous,

Sur un Userform j'ai un Multipage de 2 pages.
Sur chacune de ces pages j'ai des ComboBox dont 2 (2 à 2) sont remplies des
mêmes éléments.
Dans le UserForm_Initialize je remplis les ComboBox les unes après les
autres.
Tout fonctionne parfaitement bien.
Cependant, je trouve que la répétition n'est pas très élégante.
Y a-t-il une approche qui me permettrait de remplir en même temps 2 ComboBox
de ces mêmes éléments ?
Pour mieux me faire comprendre, la ComboBox1 (sur la page1 du Multipage) est
remplie de la façon suivante, et pour la combobox5 (sur la page2 du
Multipage) je répète l'opération.
With ComboBox1
.AddItem "Choix Rang..."
.AddItem "1er"
.AddItem "2ème"
.AddItem "3ème"
.AddItem "4ème"
.AddItem "Dernier"
.ListIndex = 0
End With

Je n'ai pas trouvé de solution me permettant de remplir en même temps ces
combobox1 et combobox5 (With ComboBox1 and ComboBox5 ne fonctionne pas).
Ai-je mal cherché ?

Merci d'avance de vos commentaires.
Michel

4 réponses

Avatar
MichD
Le 31/03/20 à 07:40, Péhemme a écrit :
Bonjour à Tous,
Sur un Userform j'ai un Multipage de 2 pages.
Sur chacune de ces pages j'ai des ComboBox dont 2 (2 à 2) sont remplies
des mêmes éléments.
Dans le UserForm_Initialize je remplis les ComboBox les unes après les
autres.
Tout fonctionne parfaitement bien.
Cependant, je trouve que la répétition n'est pas très élégante.
Y a-t-il une approche qui me permettrait de remplir en même temps 2
ComboBox de ces mêmes éléments ?
Pour mieux me faire comprendre, la ComboBox1 (sur la page1 du Multipage)
est remplie de la façon suivante, et pour la combobox5 (sur la page2 du
Multipage) je répète l'opération.
With ComboBox1
       .AddItem "Choix Rang..."
       .AddItem "1er"
       .AddItem "2ème"
       .AddItem "3ème"
       .AddItem "4ème"
       .AddItem "Dernier"
       .ListIndex = 0
End With
Je n'ai pas trouvé de solution me permettant de remplir en même temps
ces combobox1 et combobox5 (With ComboBox1 and ComboBox5 ne fonctionne
pas).
Ai-je mal cherché ?
Merci d'avance de vos commentaires.
Michel

Bonjour,
Tu peux utiliser ceci :
'-------------------------------------
Dim Arr()
Arr = Array("Choix Rang...", "1er", "2ème", "3ème", "4ème", "Dernier")
With Me
With .ComboBox1
.List = Application.Transpose(Arr)
.ListIndex = 0
End With
With .ComboBox5
.List = Application.Transpose(Arr)
.ListIndex = 0
End With
End With
'-------------------------------------
MichD
Avatar
MichD
Bonjour,
Tu peux utiliser ceci :
'-------------------------------------
Dim Arr()
Arr = Array("Choix Rang...", "1er", "2ème", "3ème", "4ème", "Dernier")
With Me
    With .ComboBox1
        .List = Application.Transpose(Arr)
        .ListIndex = 0
    End With
    With .ComboBox5
        .List = Application.Transpose(Arr)
        .ListIndex = 0
    End With
End With
'-------------------------------------
MichD

On peut faire un peu plus court :
'---------------------------------------
Dim Arr(), Arr1(),Elt As Variant
Arr = Array("Choix Rang...", "1er", "2ème", "3ème", "4ème", "Dernier")
Arr1 = Array("Combobox1", "Combobox2")
For Each Elt In Arr1
With Me.Controls(Elt)
.List = Application.Transpose(Arr)
.ListIndex = 0
End With
Next
'---------------------------------------
MichD
Avatar
Péhemme
Mon cher Denis,
Tu m'étonneras toujours.
:-)))
Pour moi, réponse drôle et inattendue...
Cela a de "la gueule"... Formidable.
Je l'adopte et l'applique également pour ma deuxième paire de ComboBox.
Dois-je te dire merci ?
:-)))
Heureusement que tu n'as pas raccroché, tu peu encore servir.
:-)
Merci encore
Bien amicalement
Michel
"MichD" a écrit dans le message de groupe de discussion :
r5vfvp$409$
Bonjour,
Tu peux utiliser ceci :
'-------------------------------------
Dim Arr()
Arr = Array("Choix Rang...", "1er", "2ème", "3ème", "4ème", "Dernier")
With Me
With .ComboBox1
.List = Application.Transpose(Arr)
.ListIndex = 0
End With
With .ComboBox5
.List = Application.Transpose(Arr)
.ListIndex = 0
End With
End With
'-------------------------------------
MichD

On peut faire un peu plus court :
'---------------------------------------
Dim Arr(), Arr1(),Elt As Variant
Arr = Array("Choix Rang...", "1er", "2ème", "3ème", "4ème", "Dernier")
Arr1 = Array("Combobox1", "Combobox2")
For Each Elt In Arr1
With Me.Controls(Elt)
.List = Application.Transpose(Arr)
.ListIndex = 0
End With
Next
'---------------------------------------
MichD
Avatar
Péhemme
... tu peux...
Michel
"MichD" a écrit dans le message de groupe de discussion :
r5vfvp$409$
Bonjour,
Tu peux utiliser ceci :
'-------------------------------------
Dim Arr()
Arr = Array("Choix Rang...", "1er", "2ème", "3ème", "4ème", "Dernier")
With Me
With .ComboBox1
.List = Application.Transpose(Arr)
.ListIndex = 0
End With
With .ComboBox5
.List = Application.Transpose(Arr)
.ListIndex = 0
End With
End With
'-------------------------------------
MichD

On peut faire un peu plus court :
'---------------------------------------
Dim Arr(), Arr1(),Elt As Variant
Arr = Array("Choix Rang...", "1er", "2ème", "3ème", "4ème", "Dernier")
Arr1 = Array("Combobox1", "Combobox2")
For Each Elt In Arr1
With Me.Controls(Elt)
.List = Application.Transpose(Arr)
.ListIndex = 0
End With
Next
'---------------------------------------
MichD