[VBA] mise à jour liste déroulante combobox
Résolu
assin31
Messages postés
6
Date d'inscription
Statut
Membre
-
madinho2002 Messages postés 2 Statut Membre -
madinho2002 Messages postés 2 Statut Membre -
Bonjour,
Sur Excel (VBA) j'ai une combobox où j'ai ajouter des item
Seulement je voudrais à présent que lorsque l'utilisateur entre une entrée qui n'est pas dans la liste de la combobox cette entrée soit automatiquement rajouter à la liste pour des usages ultérieurs.
En attendant votre aide je vous remercie d'avance
Sur Excel (VBA) j'ai une combobox où j'ai ajouter des item
Seulement je voudrais à présent que lorsque l'utilisateur entre une entrée qui n'est pas dans la liste de la combobox cette entrée soit automatiquement rajouter à la liste pour des usages ultérieurs.
En attendant votre aide je vous remercie d'avance
7 réponses
-
oui un truc comme ça ... mais comme ta liste va évoluer, il faut prévoir de parcourir toute la liste. Voilà comment faire.
En considère que tes items sont sur la feuille 4 et commencent dans la colonne A à la ligne 2.
Dim i As Long i = 2 While Worsheets("Feuil4").Range("A" & i).Value <> "" UserForm1.ComboBox1.Additem Worsheets("Feuil4").Range("A" & i).Value i = i + 1 Wend
voili, voilou
;o)
polux -
-
Bonjour,
Comment ajoutes-tu les items dans ta combobox ?
-
De la meme façon, avec une routine qui va vérifier si l'entrée est ou pas dans la liste.
Une fois qu'un choix ou une saisie a été faite dans la combobox, tu dois avoir un bouton pour valider. Si c'est le cas voilà comment faire :
Private Sub bouton_Ok_Click() Dim i As Long i = 2 If doesExist(ComboBox1.Text) = False Then While Worsheets("Feuil4").Range("A" & i).Value <> "" i = i + 1 Wend Worsheets("Feuil4").Range("A" & i + 1).Value = ComboBox1.Text End If ComboBox1.Clear Call InitialiseComboBox End Sub Private Function doesExist(ByVal str As String) As Boolean Dim i As Long i = 2 While Worsheets("Feuil4").Range("A" & i).Value <> "" If Worsheets("Feuil4").Range("A" & i).Value = str Then doesExist = True Exit Function End If i = i + 1 Wend doesExist = False End Function Private Sub InitialiseComboBx() Dim i As Long i = 2 ComboBox.Clear While Worsheets("Feuil4").Range("A" & i).Value <> "" ComboBox1.Additem Worsheets("Feuil4").Range("A" & i).Value i = i + 1 Wend End Sub
Voilà, tu dois avoir tout ... j'ai fait ça à la volée, sans tester, il y a peut être des beugs ...
;o)
polux -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
C'est pas pratique alors de mettre à jour la combobox ...
Je te conseille de mettre les items dans une feuille (que tu la caches si besoin) et que tu charges ta combobox à partir des données de cette feuille. Ensuite lorsque qu'il y a une nouvelle entrée, il suffit de l'enregistrer dans la feuille à la suite des autres items.
Fait une procédure d'initialisation de ta combobox que tu appelles dans userform_initialize() et en fin de combobox1_change().
Si tu as besoin d'aide, reviens ici.
;o)
polux -
-
salut la communauté! depuis 2 semaines ke je cherche en vain sur les forums la solution à mon pb. En fait j'ai un combobox ke je ve remplir avec les noms de certaines colonnes( préalablement nommés).
Ex: j'ai renommé les colonnes A, B et C en Alain, Bernard et Carlos
je veux donc voir afficher dans ma combobox les nom Alain , Bernard et Carlos
Cela m'aiderait à automatiser des données sur exCEL
MERCI