[VBA] mise à jour liste déroulante combobox
Résolu
assin31
Messages postés
6
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.
voili, voilou
;o)
polux
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
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 :
Voilà, tu dois avoir tout ... j'ai fait ça à la volée, sans tester, il y a peut être des beugs ...
;o)
polux
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
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
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
seulement j'ai un autre problème, je veux que l'entrée se rajoute à ma liste déroulante seulement si il n'y ait pas déjà comment faire ?