XL 2016 Liste déroulante avec condition

Monhtc

XLDnaute Junior
Bonjour chers tous,
j'aimerais créer une liste déroulante dynamique avec condition de sorte à ce que si le nom entré ne figure pas préalablement dans la liste source, il soit accepté et s'y rajoute.
 

BrunoM45

XLDnaute Barbatruc
Bonjour cher toi,

VB:
If Me.Combobox1.Listindex = -1 then
  ' La valeur n'existe pas, l'ajouter
  Sheets("MaFeuille").Range("A" & Rows.count).End(xlup).Offset(1,0).value = Me.Combobox1.Value
End If
 

Monhtc

XLDnaute Junior
MERCI BRUNOM45,
ce code marche probablement avec u formulaire, serait il possible sans un mais directement sur une cellule de la feuille?
 

JHA

XLDnaute Barbatruc
Bonjour à tous,
Bonjour BrunoM45 :)

Je pense qu'il serait bien que tu annexes un exemple sur fichier afin d'essayer de te donner une solution qui correspond à ta demande.

JHA
 

job75

XLDnaute Barbatruc
Bonjour Monhtc, Bruno, JHA,

Si la ComboBox n'est pas dans un UserForm elle est dans la feuille de calcul, voyez le fichier joint et ce code :
VB:
Private Sub ComboBox1_GotFocus()
ComboBox1.Clear
If [K1].CurrentRegion.Count > 1 Then ComboBox1.List = [K2].Resize([K1].CurrentRegion.Count - 1, 2).Value
End Sub

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ComboBox1 = "" Or ComboBox1.ListIndex > -1 Then Exit Sub
If MsgBox("Voulez-vous ajouter '" & ComboBox1 & "' à la liste ?", 4) = 7 Then Exit Sub
[K1].Offset([K1].CurrentRegion.Count) = ComboBox1
[K1].CurrentRegion.Sort [K1], xlAscending, Header:=xlYes 'tri
ComboBox1_GotFocus
ComboBox1.DropDown 'déroule la liste
End Sub
A+
 

Fichiers joints

Discussions similaires


Haut Bas