[VBA] mise à jour liste déroulante combobox

Résolu/Fermé
assin31 Messages postés 6 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 26 mai 2008 - 21 mai 2008 à 10:56
madinho2002 Messages postés 2 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 4 septembre 2008 - 4 sept. 2008 à 23:14
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

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
21 mai 2008 à 15:57
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
assin31 Messages postés 6 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 26 mai 2008 1
21 mai 2008 à 16:06
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 ?
0
assin31 Messages postés 6 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 26 mai 2008 1
21 mai 2008 à 14:59
up
1
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
21 mai 2008 à 15:03
Bonjour,

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

ComboBox1.AddItem "entrée"


End Sub
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
21 mai 2008 à 16:39
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
1
merci polux sa marche nickel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
21 mai 2008 à 15:38
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
0
assin31 Messages postés 6 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 26 mai 2008 1
21 mai 2008 à 15:51
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'
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
22 mai 2008 à 12:58
de rien, content de t'avoir aider.

;o)

polux
0
madinho2002 Messages postés 2 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 4 septembre 2008
4 sept. 2008 à 23:14
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
0