[VBA] mise à jour liste déroulante combobox [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
26 mai 2008
-
Messages postés
2
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
4 septembre 2008
-
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

7 réponses

Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 131
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
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60776 internautes nous ont dit merci ce mois-ci

Messages postés
6
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
26 mai 2008
1
Merci sa march nickel

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 ?
Messages postés
6
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
26 mai 2008
1
up
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 131
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
merci polux sa marche nickel
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 131
Bonjour,

Comment ajoutes-tu les items dans ta combobox ?
Messages postés
6
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
26 mai 2008
1
Private Sub userform_Initialize()

ComboBox1.AddItem "entrée"


End Sub
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 131
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
Messages postés
6
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
26 mai 2008
1
qu'est-ce que je met comme code pour ajouter des item d'une autre feuille

combobox1.additem cells(1, 1) 'de la feuille 4'
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 131
de rien, content de t'avoir aider.

;o)

polux
Messages postés
2
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
4 septembre 2008

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