Microsoft 365 Saisie Combobox et recupération valeur

eric72

XLDnaute Accro
Bonjour à tous,

Je vous fais part d'un petit souci avec une combobox nommée "NomPlante", celle-ci est alimentée j'aimerais par la colonne "y" dela feuille "Données", j'aimerais que, lorsque une valeur saisie ne fait pas partie de la liste, cette valeur vienne à la suite de la liste et que celle-ci soit triée par ordre alphabétique, j'ai essayé pas mal de code récupéré de ci de là, mais rien y fait.
Est-ce possible et l'un d'entre vous a-t-il la solution.
Merci une nouvelle fois à tous les experts présents sur ce forum, vous êtes géniaux.
Eric
 

Pièces jointes

  • Fiche Produit test.xlsm
    310.7 KB · Affichages: 11

job75

XLDnaute Barbatruc
Bonsoir eric72,
Oups je crois que j'ai posé une colle, serait-ce impossible?
vous êtes géniaux.
Pas du tout impossible mais ça a fait fuir tous ceux qui ne le sont pas :
VB:
Private Sub NomPlante_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim nom$, P As Range
nom = Trim(NomPlante)
If nom = "" Then Exit Sub
Set P = Sheets("Données").Range("Nom")
If Application.CountIf(P, nom) = 0 Then
    If MsgBox("Voulez-vous enregistrer dans la base le nom '" & nom & "' ?", 4) = 6 Then
        NomPlante.RowSource = ""
        P(P.Rows.Count + 1, 1) = nom
        P.CurrentRegion.Sort P, xlAscending, Header:=xlYes 'tri
        NomPlante.RowSource = "Nom"
    End If
    Exit Sub
End If
GenrePlante = Application.VLookup(nom, Sheets("Données").Range("BasePlante"), 3, 0)
GammePlante = Application.VLookup(nom, Sheets("Données").Range("BasePlante"), 4, 0)
End Sub
A+
 

Pièces jointes

  • Fiche Produit test(1).xlsm
    262.5 KB · Affichages: 14

Dudu2

XLDnaute Barbatruc
Bonjour Aladin, @job75
vous êtes géniaux.
Pas du tout impossible mais ça a fait fuir tous ceux qui ne le sont pas :
1632565335577.gif

Je dois admettre que ce code est parfait
1632566048823.gif
et me permets d'en tirer quelques enseignements en vue de ma géniefication future
1632565992105.gif
.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
La seule subtilité c'est qu'il faut effacer la propriété RowSource avant de modifier la base.
Et oui. Je me suis demandé pourquoi tu remettais le RowSource à vide avant d'ajouter une ligne dans le tableau structuré.
Que se passe-t-il si tu ne le fais pas ? Il ne réactualise pas la liste qu'il ne construit qu'une fois au départ sur le RowSource défini ?
 

Discussions similaires

Réponses
5
Affichages
258