Automatiser un ajout dans un ComboBox

Bonsoir, à toutes et à tous

j'utilise un ComboBox appelé "CbbLocalités" dans un UserForm

Ce ComboBox est alimenté par la colonne A de la feuille BD

cette colonne contient des Localités

mon souhait est d'ajouter à cette base de données colonne A

une nouvelle entrée qui ne serait pas reprise dans la liste du ComboBox après validation de cette nouvelle entrée dans l'UF

ma base de données est triée à chaque nouvelle entrée vec la macro Change de la feuille

Je joins mon fichier en espérant une réponse qui puisse me satisfaire. J'ignore si ce que je veux réaliser est possible ?

Merci de bien vouloir y jeter un coup d’œil

Amicalement

Pierrot

le code de mon ComboBox

For K = 1 To 40           'affecte la liste Localités de la feuille BD Colonne A à la liste déroulante
    Me.CbbLocalités.AddItem Sheets("BD").Cells(K, 1)
  Next K

Bonsoir, le forum,

n'ayant pas reçu de solution, j'ai créé un code qui copie à chaque nouvelle entrée de localité, la colonne entière de ces localités et j'effectue un tri avec suppression des doublons

Le tout fonctionne à merveille

Bonne soirée à tous

Amicalement

Pierrot

Salut Pierre,

j'avoue ne pas comprendre ton problème!

J'ai introduit mon code postal et ma localité, aussitôt triés.

Ensuite, j'ai ouvert ta USF et WAREMME y était!

Cela dit, j'ai remarqué que tu ne prévoyais de remplir ta combo depuis la colonne A QUE jusque la ligne 40!

Un peu court! Pourquoi pas un bon petit End(xlup).Row ?

A+

Bonsoir, curulis57

tu as introduit ta localité dans la feuille BD, colonne A, je suppose c'est ce que je fais depuis le début,

je voulais faire l'inverse ouvrir mon UserForm et si la localité

ne se trouvait pas dans la liste, l'ajouter dans la feuille BD

automatiquement pour être disponible la fois suivante

heureux, d'avoir des nouvelles d'un compatriote

Amicalement

Pierrot


tu as raison, avec un

For K = 1 To Ws.Range("A" & Rows.Count).End(xlUp).Row
    Me.CbbLocalités.AddItem Sheets("BD").Cells(K, 1)
  Next K

c'est nettement mieux

encore merci de ton intérêt pour un papy de 76 ans

Salut Pierre,

je n'avais pas compris ta demande! Comme quoi, la communication, ce n'est pas toujours facile!

Curieux de connaître la solution que tu as apportée à ta demande...

Voici la mienne : si la ville n'existe pas (pas de pré-sélection dans la combo), tu tapes le signe "+" en fin de texte.

Ce "+" entraîne l'action décrite ci-dessous.

Private Sub CbbLocalités_Change()
'
Dim sFlag As String
Dim iRow As Integer
Dim x As Integer
'
If Right$(Me.CbbLocalités.Text, 1) = Chr$(43) Then
    'recherche si existe
    sFlag = Left$(Me.CbbLocalités.Text, Len(Me.CbbLocalités.Text) - 1)
    For x = 0 To CbbLocalités.ListCount - 1
        If sFlag = Me.CbbLocalités.List(x) Then Exit Sub
    Next
    'inscription dans BD et actualisation de CbbLocalités
    iRow = Sheets("BD").Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("BD").Cells(iRow, 1) = sFlag
    Me.CbbLocalités.List = Sheets("BD").Range("A1:A" & iRow).Value
    'effacement du "+" dans CbbLocalités
     Me.CbbLocalités.Text = sFlag
End If
'
End Sub

A+

Bonjour, curulis57

je viens de découvrir ce matin ta nouvelle réponse qui correspond exactement a ce que je souhaitais, je peux donc maintenant supprimer la macro qui me copiait toutes les localités et ensuite effectuait un tri sans doublons qui fonctionnait parfaitement, ta méthode étant plus courte et plus pratique, je l'adopte donc avec plaisir.Un tout grand merci pour ta gentillesse et ton savoir.

Bon dimanche et amitiés

Pierrot

Merci mon ami

comme la dernière fois ça marche encore

Bonne fin de W.E. et à très bientôt

Amitiés

Pierrot

Rechercher des sujets similaires à "automatiser ajout combobox"