Combobox, ajouter saisie à une liste

Bonjour,

J'ai un souci d'intégration de saisie dans une liste associée à une combobox :

J'ai une combobox qui s'appelle CmbBEvenement qui charge une liste dynamique située dans la feuille "Listes" et qui s'appelle "Evenementiel" (colonne L, ligne: à partir de la 5)

Mais l'intérêt d'une combobox c'est aussi de pouvoir saisir autre chose que ce que la liste propose.

Ce que je voudrais c'est que si la saisie dans la combobox est différente des éléments de la liste, cette nouvelle saisie s'ajoute au bout de la liste pour pouvoir facilement la récupérer ensuite.

Donc il me faut comparer la "value" de la combobox avec les éléments de la liste, puis éventuellement ajouter cette "value" au bout de la liste si elle est différente de tous les éléments.

J'ai essayé ceci, après avoir cherché sur internet et tenté d'adapter à mon cas :

Dim Z, W As Integer
    W = Sheets("Listes").Range("L" & Rows.Count).End(xlUp).Row 'dernière ligne pleine de la feuille "Listes", colonne "L"
    For Z = 5 To W
    If CmbBEvenement.Value <> Range("L" & Z).Value Then
   CmbBBEvenement.Value  = Sheets("Listes").Range("L" & W + 1).Value
    Next Z

Mais vba me renvoie un message d'erreur: Erreur de compilation Next sans For. !??? Je comprends pas pourquoi...

Merci pour votre aide!

bonjour,

ajoute un end if avant le next

Bonjour,

Merci pour la réponse. Il semble que mon problème vienne de là.

Mais j'ai aussi trouvé une autre solution plus compacte, en utilisant la propriété ListIndex de ma combobox.

Dans une liste associée à une combobox, si on choisit le premier élément de la liste, ListIndex renvoie 0 comme valeur, puis 1 pour le deuxième élément, 2 pour le troisième etc

Si on ne choisit pas dans la liste mais qu'on saisit une autre entrée dans la combobox, ListIndex renvoie -1

Donc ma solution:

Dim W As Integer
    W = Sheets("Listes").Range("L" & Rows.Count).End(xlUp).Row 'dernière ligne pleine de la feuille "Listes", colonne "L"

     If CmbBEvenement.ListIndex = -1 Then
            Sheets("Listes").Range("L" & W + 1).Value = CmbBEvenement.Value
Rechercher des sujets similaires à "combobox ajouter saisie liste"