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 :
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.
Re : Remplis plusieurs listes déroulantes avec les mêmes items
re ,
un exemple basique
Code:
Sub es()
Dim C As OLEObject
For Each C In ActiveSheet.OLEObjects
C.Object.List = Array("Sélectionnez la nature ...", "AA", "BB", "CC", "DD", "EE")
Next C
End Sub
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