[VBA] Liste déroulante se remplissant en continu
Jamba
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous !
Je rencontre un petit problème sur une liste déroulante :
J'ai créé une liste déroulante dans un Userform à partir de cellules d'une feuille
Il y a donc 5 valeurs qui rentrent dans la liste.
Mais quand j'utilise cette liste, à chaque fois que je rouvre l'Userform, la liste se répète. Je me retrouve donc avec 10 items, puis 15 items etc ..
Est-ce que quelqu'un aurait la solution à mon problème s'il vous plait ?
Merci beaucoup et bonne journée à vous.
Je rencontre un petit problème sur une liste déroulante :
J'ai créé une liste déroulante dans un Userform à partir de cellules d'une feuille
Private Sub UserForm_Activate()
Dim i As Integer
For i = 0 To 4
PaletteCb.AddItem Sheets("Userform").Cells(4 + i, 4)
Next i
End Sub
Il y a donc 5 valeurs qui rentrent dans la liste.
Mais quand j'utilise cette liste, à chaque fois que je rouvre l'Userform, la liste se répète. Je me retrouve donc avec 10 items, puis 15 items etc ..
Est-ce que quelqu'un aurait la solution à mon problème s'il vous plait ?
Merci beaucoup et bonne journée à vous.
2 réponses
-
Bonjour,
Au lieu de lévènnement Activate, utilises Initialize :
RemplacePrivate Sub UserForm_Activate()
parPrivate Sub UserForm_Initialize()
.
-
Cordialement
Patrice -
Bonjour,
Salut Patrice33740,
En complément de la réponse de Patrice, peut être "fermes" tu l'Userform par ce code :UserForm1.Hide
. Dans ce cas, il n'est pas "déchargé" de la mémoire, mais simplement masqué. Tu peux utiliserUnLoad UserForm1
.
Seconde possibilité, et de loin la plus simple et la plus efficace : vider la liste à chaque utilisation :Private Sub UserForm_Activate() Dim i As Integer PaletteCb.Clear For i = 0 To 4 PaletteCb.AddItem Sheets("Userform").Cells(4 + i, 4) Next i End Sub
Note : Clear fonctionne car le remplissage se fait avec AddItem.
Cordialement,
Franck