Liaison combobox et textbox

Bonjour,

Depuis mon formulaire je cherche comment faire pour afficher le nom de la ville dans ma textbox après avoir sélectionné le code postal dans le combobox.

Mes données sont dans les colonnes A et B de la Feuil2

Colonne A : Code postal

Colonne B : Nom Ville

En vous remerciant.

P.

Bonjour,

En supposant que les éléments en question s'appellent TextBox1 et ComboBox1 dans le même UserForm :

Private Sub Combobox1_AfterUpdate()
  Dim ville As String: ville = "Code postal introuvable!"
  On Error Resume Next
  ville = WorksheetFunction.VLookup( _
    Me.Combobox1.Value, _
    ThisWorkbook.Worksheets("Feuil2").Range("A:B"), 2, False)
  On Error GoTo 0
  Me.Textbox1.Value = ville
End Sub

On error permet d'afficher "Code postal introuvable" si la valeur n'est pas trouvée dans le classeur.

Bonjour,

Essaie :

Private Sub ComboBox1_Change()
  Me.TextBox1 = Application.VLookup(CLng(Me.ComboBox1.Value), [Feuil2!A:B], 2, 0)
End Sub

Adapte le nom des contrôles.

Daniel

Les données de ma colonne A ne s’affichent pas dans ma combobox

Les données de ma colonne A ne s’affichent pas dans ma combobox

Veuillez joindre un fichier. On ne peut pas deviner ce qui ne va pas.

Ce code fonctionne aussi très bien :

Dim référence As String
If ComboBox1.Value <> Empty Then
référence = Split(ComboBox1.Value, "_")(0)
Set cell = Range("Tableau4").Columns(1).Find(référence)
If Not cell Is Nothing Then Me.TextBox2.Text = cell.Offset(, 1)
End If

_____

Sauf que le combobox1 n’affiche pas les données de mon tableau

EDIT MODO : merci d'utiliser les balises de codes lorsque vous postez un code en cliquant sur l'icône </> dans la barre de menu et en collant votre code dans la fenêtre

Pierr974, il y a autant de manières de faire que de personnes sur ce forum, là n'est pas la question.

Si vous voulez une solution à votre problème, puisqu'apparemment vous n'arrivez pas à adapter les propositions que nous vous avons fournies, veuillez joindre un fichier.


Ci-joint un exemple simple :

5book1.xlsm (24.63 Ko)

Bonjour à tous,

Sauf que le combobox1 n’affiche pas les données de mon tableau

Bien il faut initialiser votre liste déroulante au chargement du formulaire :

Pour se faire transformer vos données en tableau structuré. Sélection des données puis Accueil/Styles/Mettre sous forme de tableau. Et ajouter ce code en l'adaptant.

Private Sub UserForm_Initialize()
    ComboBox1.List = Range("Tableau1[Code postal]").Value
EndSub

Par contre je vois les limitations qui pointent leurs nez. Plusieurs villes doivent avoir le même code postal non ?

Au lieu de :

référence = Split(ComboBox1.Value, "_")(0)

Mets :

référence = Clng(Split(ComboBox1.Value, "_")(0))

Note: l'instruction Split n'est indispensable que si les codes postaux sont suivis d'un "_", au moins certains d'entre eux.

Daniel

Bonjour,

Merci à tous pour votre aide. J’ai pu avancer sur mon formulaire.

Vous allez dire que je demande beaucoup 😁

Mais je souhaiterais savoir comment afficher aussi le contenu de ma TextBox2 qui est 'la date' dans mon formulaire Userform1.

C’est à dire quand je sélectionne la réf dans mon Combobox, je veux afficher les données de la même ligne de mon Tableau1 dans TextBox1 le contenu colonne B et Textbox2 le contenu Colonne C

En espérant d’avoir été clair. En pj mon fichier

Merci

P

Bonjour,

Mets :

Private Sub ComboBox1_Change()
Dim référence As String
If ComboBox1.Value <> Empty Then
  référence = Split(ComboBox1.Value, "_")(0)
  Set cell = Range("Tableau1").Columns(1).Find(référence)
  If Not cell Is Nothing Then
    Me.TextBox1.Text = cell.Offset(, 1)
    Me.TextBox2.Text = cell.Offset(, 2)
  End If
End If
End Sub

Daniel

bonjour le fil,

un essai

Private Sub ComboBox1_Change()
     Dim reference As String
     If ComboBox1.Value <> Empty Then
          reference = Split(ComboBox1.Value, "_")(0)     'accents sont souvant ambetant dans VBA
          With Range("Tableau1") 'avec ce tableau
               r = Application.IfError(Application.Match(reference, .Columns(1), 0), 0)     'ligne qui correspond avec ce reference, si erreur, alors 0
               If r = 0 Then
                    MsgBox "erreur, reference inconnu"
               Else
                    TextBox1.Text = .Cells(r, 2).Value
                    TextBox2.Text = Format(.Cells(r, 3).Value2, "dd/mm/yyyy")
               End If
          End With
     End If
End Sub

Bonjour,

Malgré que je change la donnée dans le combox, c’est toujours les données de la 1ere ligne de mon tableau qui s’affiche dans la textbox.

merci

re,

voici le fichier

Merci Bart

Maintenant j’ai le message d’erreur qui s’affiché quand le combobox change.

Et si je supprime les lignes de code pour le MsgBox, c’est les en-tête de colonne de mon tableau qui s’affichent dans mes textbox.

En vous remerciant

Pierre

que faites-vous exactement ? C'est avec mon fichier, sinon, pouvez-vous télécharger votre fichier et décrire les manipulations que vous faites ?

Bonjour à tous.

Bonjour la Réunion.

pierr974, si je peux me permettre un conseil, si tu veux une aide qui répond au mieux à tes besoins, mets ton vrai fichier anonymiser en pièces jointe.

Sinon on va tourner en rond, et cela sera d'aucune utilité.

Cordialement.

Bonjour à tous.

J’ai résolu le problème. Vos codes étaient bon, c’est moi qui avait mis un caractère "_" qui provoquait le message d’erreur dans mes données de la combobox.

Merci pour votre aide

Pierre

Rechercher des sujets similaires à "liaison combobox textbox"