Effacer ligne ComboBox

Bonjour,

Je n'arrive pas à effacer une ligne de ComboBox une fois que celle-ci est utilisée.

Je m'explique avec un exemple :

J'aimerais que lorsque j'ai sélectionné "Metz" dans ma première ComboBox, il ne me reste plus que "Nancy" dans la deuxième.

Je ne sais pas si cela est faisable sur Excel VBA.

Je vous remercie par avance pour vos futures réponses.

Cordialement,

Bonjour Romain.

C'est tout à fait faisable.

Pour t'aider, il faut un fichier exemple.

Merci de votre réponse rapide !!

J'ai fais un petit fichier en vitesse pour guise d'exemple.

11test.xlsm (10.27 Ko)
romain57 a écrit :

Merci de votre réponse rapide !!

J'ai fais un petit fichier en vitesse pour guise d'exemple.

Avec une telle vitesse, il n'y a aucun formulaire dans ton fichier.

Je viens de voir ça. Désolé de ce désagrément !

Je me suis envoyé le fichier sur une autre adresse mail où j'ai accès à internet et donc au forum mais en l'envoyant le VBA que j'avais fais ne s'est pas enregistré...

Normal ce fichier devrait fonctionner.

Bonjour

voila un code pour 2 combobox

A+

Maurice

Private Sub UserForm_Initialize()
ComboBox1.Clear
     For L = 2 To Range("A" & Rows.Count).End(xlUp).Row
        ComboBox1.AddItem Range("A" & L)
     Next
End Sub

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then Exit Sub
   ComboBox2.Clear
      For L = 2 To Range("A" & Rows.Count).End(xlUp).Row
         If ComboBox1.Value <> Range("A" & L) Then
            ComboBox2.AddItem Range("A" & L)
         End If
      Next
End Sub

Voilà une solution :

Private Sub ComboBox1_Change()
nom = Me.ComboBox1.Value
Me.ComboBox2.Clear
a = Array("Metz", "Nancy")
For i = LBound(a) To UBound(a)
    If Not a(i) = nom Then Me.ComboBox2.AddItem a(i)
Next i
End Sub

Edit: Bonjour archer.

Cela ne fonctionne pas.

Effectivement j'ai les deux valeurs dans la liste de la CombBox1 mais je n'en ai plus dans la deuxième.

Ce que j'aimerais, c'est que dans la ComboBox1, il y est le choix entre les deux valeurs et que dans la ComboBox2 il n'y est le choix que d'une seule valeur.

Donc si dans la ComboBox1 il y a Metz, il ne doit y avoir dans la ComboBox2 que Nancy, et inversement.

En tout cas merci de ton aide.

Super c'est exactement ça que je cherchais !!!

Merci thebenoit59

Juste pour savoir, que signifie Me.Combobox ?

romain57 a écrit :

Juste pour savoir, que signifie Me.Combobox ?

Le Me correspond au formulaire qui contient la procédure.

C'est une habitude d'utiliser ce système, car en tapant ton code, il te propose directement les différents contrôles existants.

Si tu interagis sur un autre formulaire tu pourrais écrire UserForm2.Combobox1...

Bon à savoir alors ! Merci

Donc la c'est pour 2 ComboBox, qu'en est il si je suis amené à en avoir plusieurs ?

ComboBox1 = 3 valeurs (A, B, C)

ComboBox2 = 2 valeurs (A, B ou A,C ou B,C)

ComboBox3 = 1 valeur (A ou B ou C)

A tester :

Private Sub ComboBox2_Change()
nom = Me.ComboBox1.Value
nom2 = Me.Combobox2.Value
Me.ComboBox3.Clear
a = Array("Metz", "Nancy", "Orléans")
For i = LBound(a) To UBound(a)
    If Not a(i) = nom or not a(i) = nom2 Then Me.ComboBox3.AddItem a(i)
Next i
End Sub
thebenoit59 a écrit :

A tester :

Private Sub ComboBox2_Change()
nom = Me.ComboBox1.Value
nom2 = Me.Combobox2.Value
Me.ComboBox3.Clear
a = Array("Metz", "Nancy", "Orléans")
For i = LBound(a) To UBound(a)
    If Not a(i) = nom or not a(i) = nom2 Then Me.ComboBox3.AddItem a(i)
Next i
End Sub

Cela fonctionne !!!

Juste un petit hic dans la formule :

If Not a(i) = nom or not a(i) = nom2 Then Me.ComboBox3.AddItem a(i)

Remplacer Or par And afin d'avoir dans la troisième ComboBox la dernière valeur restante.

Rechercher des sujets similaires à "effacer ligne combobox"