Remplis plusieurs listes déroulantes avec les mêmes items

  • Initiateur de la discussion Initiateur de la discussion JMV83390
  • Date de début Date de début

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 !

J

JMV83390

Guest
Bonjour à tous,

Je me heurte au problème suivant. A savoir, mon application contient sur une feuille, 100 listes déroulantes contenant pour chacune d'elles, les mêmes items.

Ces liste déroulantes sont nommées liste1, liste2, liste3 ......

Pour remplir chacune de ces listes déroulantes, j'utilise le code VBA classique suivant :

Sheets("Rappel5").liste1.AddItem "Sélectionnez la nature ..."
Sheets("Rappel5").liste1.AddItem "AA"
Sheets("Rappel5").liste1.AddItem "BB"
Sheets("Rappel5").liste1.AddItem "CC"
Sheets("Rappel5").liste1.AddItem "DD"
Sheets("Rappel5").liste1.AddItem "EE"

.....


Donc pour remplir mes listes déroulantes, j'utilise 100 fois le code ci-dessus !

D'où question ;-)

Est-ce qu'il existe une "combine" qui me permettrait de réduire le code VBA de remplissage des listes déroulantes ?

Je pensais à un tableau contenant tous les noms des listes déroulantes lié à une boucle qui passe le tableau en revue et me remplit les listes déroulantes.
Mais bon ... je ne sais pas trop comment faire ?

Si quelqu'un sur ce forum a déjà connu le même problème, je suis preneur de la solution qu'il a mise en place.

Merci d'avance

Jean-Marc
 
Re : Remplis plusieurs listes déroulantes avec les mêmes items

Bonjour,

Voici, comme demandé, un fichier exemple.

Mon but est donc de réduire le code de chargement des listes déroulantes se trouvant dans le Workbook_Activate().

Merci

JM
 

Pièces jointes

Re : Remplis plusieurs listes déroulantes avec les mêmes items

re tous 🙂🙂

en complement

si on passe par For Each & autre active x sur la feuile va poser pb....
il faut mettre une condition gerer TypeOf

Code:
Private Sub Workbook_Activate()
 Dim C As OLEObject
 For Each C In Feuil1.OLEObjects
 If TypeOf C.Object Is MSForms.ComboBox Then _
 C.Object.List = Array("Sélectionnez la nature ...", "AA", "BB", "CC", "DD", "EE")
 Next C
End Sub

autrement on peut le faire avec for next

Code:
Dim i As Byte
 For i = 1 To 5
 Feuil1.OLEObjects("ComboBox" & i).Object.List = _
 Array("Sélectionnez la nature ...", "AA", "BB", "CC", "DD", "EE")
 Next i
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour