Affecter une liste à un plusieurs combobox d'un même userform ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zephir94

XLDnaute Impliqué
Bonsoir à tous,

J'ai un userforme avec 47 combobox et je voudrais y affecter la même liste !
Cela m'éviterais de faire
Code:
ComboBox1.RowSource = ("posi") 'liste en page masque Cellule no
ComboBox1.Style = fmStyleDropDownList
...

ComboBox47.RowSource = ("posi") 'liste en page masque Cellule no
ComboBox47.Style = fmStyleDropDownList

j'ai donc essayer ceci et ça marche mais sa reste euh lourd !
Code:
ComboBox1&Combobox2&...Combobox47.RowSource = ("posi") 'liste 
ComboBox1&Combobox2&...Combobox47.Style = fmStyleDropDownList


Je pensais que je pouvais essayer de traiter cela comme une selection de plusieurs Cellules un peu du genre, soyons fou ! :
Code:
 ComboBox(1: 47).RowSource = ("posi") 'liste en page masque Cellule no
ComboBox(1: 47).Style = fmStyleDropDownList
ça aurait été trop simple lol

Merci par avance
 
Dernière édition:
Re : Affecter une liste à un plusieurs combobox d'un même userform ?

J'ai testé plusieurs chose et j'ai réussi la moitié de ce que je veux faire, j'arrive maintenant à mettre la liste dans mes 47 combobox comme ceci :
Code:
Option Explicit

 
 Sub UserForm_Activate()
Dim x As Integer

 For x = 1 To 47
 Me.Controls("ComboBox" & x).RowSource = ("posi")
 Next x
 End Sub

j'ai essayé d'ajouter ceci :
Code:
Option Explicit

 
 Sub UserForm_Activate()
Dim x As Integer

 For x = 1 To 47
 Me.Controls("ComboBox" & x).RowSource = ("posi") ' & Me.Controls("ComboBox" & x).Style = fmStyleDropDownList
 Next x
 

End Sub
afin d'empêcher l'écriture dans mes 47 ComboBox mais la c'est le drame !
 
Re : Affecter une liste à un plusieurs combobox d'un même userform ?

Bonsoir Zephir, bonsoir le forum,

Pour la propriété [Style] j'aurais plutôt écrit en dur en sélectionnant les 47 comboboxes de l'Userform et en modifiant dans la fenêtre des Propriétés. Mais sinon, tu n'étais pas loin de la solution. Essaie comme ça :

Code:
Private Sub UserForm_Initialize()
Dim x As Integer

For x = 1 To 47
    Me.Controls("ComboBox" & x).Style = fmStyleDropDownList
    Me.Controls("ComboBox" & x).RowSource = ("posi")
Next x
End Sub
 
Re : Affecter une liste à un plusieurs combobox d'un même userform ?

Merci Robert,

J'ai réussi en fait, en faisant comme toi sauf que si je mets Me. sa beug
Code:
Option Explicit

 
 Sub UserForm_Activate()

ça fonctionne comme cela mais pourquoi sans le Me. ? 
Merci à toi
Dim x As Integer

For x = 1 To 47
 Me.Controls("ComboBox" & x).RowSource = ("posi")
Controls("ComboBox" & x).Style = fmStyleDropDownList
 Next x
End Sub
 
Dernière édition:
Re : Affecter une liste à un plusieurs combobox d'un même userform ?

Bonsoir Zephir, bonsoir le forum,

C'est sans le Me. que ça doit planter ! Avec, ça ne peut que fonctionner...
Je préfère la procédure Initialize à celle d'Activate mais ce code ne peut que fonctionner si il y a bien 47 comboboxes nommées ComboBox1 à ComboBox47 et s'il est placé dans le module de l'UserForm auquel il se refère...
Code:
Sub UserForm_Activate()
Dim x As Integer

For x = 1 To 47
    Me.Controls("ComboBox" & x).RowSource = ("posi")
    Me.Controls("ComboBox" & x).Style = fmStyleDropDownList
Next x
End Sub

 
Re : Affecter une liste à un plusieurs combobox d'un même userform ?

Merci Robert,

Je vais suivre ton conseil et déplacer cela dans Initialize.

Mais je t'assure que depuis que j'ai retiré le Me. sa boucle sans soucis sur le style dans toutes les ComboBox.
Si je le remets j'ai une erreur du genre l'objet n'appartient pas à la sélection alors que je suis bien dans l'UserForm en question, et le code est bien positionné dedans !
Un grand merci pour ton intervention
 
Dernière édition:
Re : Affecter une liste à un plusieurs combobox d'un même userform ?

salut

autre utilisation du Me

Code:
Private Sub UserForm_Initialize()
  Dim x As Byte
  For x = 1 To 47
    Me("ComboBox" & x).RowSource = "posi"
    Me("ComboBox" & x).Style = 2
  Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour