Microsoft 365 [VBA] Formulaire de saisie avec choix parmi des occurrences retournées

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ralph45

XLDnaute Impliqué
Bonjour ami.e.s Xlien.ne.s,

Afin de pouvoir éditer des adresses postales avec un gabarit "propre", j'ai créé un formulaire de saisie.
Dans le fichier joint, 2 onglets :
- Un qui sert à la saisie de listes d'adresses ("SAISIE")
- Un autre qui contient les bases de mon formulaire ("BASES") avec des tableaux intelligents

Là où je coince, c'est dans la partie droite de mon formulaire :

Je désirerai quand on commence à saisir le nom d'une commune dans la TextBox "GS_COMM_SAISIE"
S'affichent enTextBox "GS_COMM_RESULTAT" les occurrences rencontrées dans la matrice "BD_IDF", sur le champ "Commune (CP) [INSEE] Département"
Exemple : pour PARIS, j'aurai 20 occurrences (les 20 arrondissements de Paris)
Une fois cette liste générée dans le TextBox "GS_COMM_RESULTAT" et en sélectionnant (exemple) : PARIS (75011) | [75111] PARIS
Je voudrai que les TextBoxes "GS_COMM_NOM_OK", "GS_COMM_CP_OK" et "GS_COMM_INSEE_OK" soient renseignés de facto.

Merci de vos lumières dominicales... 😉
 

Pièces jointes

Bonjour Ralph,
Un essai en PJ avec :
VB:
'Gestion saisie intuitive dans GS_COMM_SAISIE
Private Sub GS_COMM_RESULTAT_Click()
Dim Choix, L%
Choix = Me.GS_COMM_RESULTAT.Value
With Sheets("BASES")
    L = Application.Match(Choix, .[D:D], 0)
    Me.GS_COMM_NOM_OK = .Cells(L, "A")
    Me.GS_COMM_CP_OK = .Cells(L, "B")
    Me.GS_COMM_INSEE_OK = .Cells(L, "C")
End With
End Sub
'Gestion remplissage de Frame1
Private Sub GS_COMM_SAISIE_Change()
Dim DL%, i%
Chaine = UCase(GS_COMM_SAISIE)
GS_COMM_RESULTAT.Clear
DL = Sheets("BASES").Cells(Rows.Count, "A").End(xlUp).Row
Tablo = Sheets("BASES").Range("A2:D" & DL)
For i = LBound(Tablo) To UBound(Tablo)
    If Tablo(i, 1) Like Chaine & "*" Then
        GS_COMM_RESULTAT.AddItem Tablo(i, 4)
    End If
Next i
End Sub
Ce qui donne, si j'ai bien compris :

Test5.gif
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour