Comment alimenter des TextBox à partir d'une saisie faite via une ComboBox

Bonjour à tous,

Tout d'abord je tiens à présenter tous mes voeux pour cette nouvelle année à l'ensemble de la communauté.

Je me permet de vous demander de l'aide car je suis débutant en vba et, bien que j'ai pu effectuer des recherches sur le net, je reste confronté à quelques problématiques.

Vous allez, pour certains, trouver ma requête des plus banales mais j'insiste sur le fait que je sois débutant.

Voici mon problème majeur :

J'ai créé un userform pour faire de la saisi, et que le tout soit récupérer dans une base de données dont je pourrais ensuite extraire les informations.

Je voudrais qu'en utilisant ma ComboBox : "cboIdentité" et en cliquant sur un nom de personne, je puisse alimenter ma TextBox : "TextBoxNom" d'après le tableau figurant en feuille "personnels".

Je ne sais pas si je me suis bien fais comprendre.....

Je joins le fichier.

Si un ou des âmes charitables voulaient bien me porter main forte je vous serais reconnaissant.

A bientôt.

Stéphane,

Bonjour,

Mettre :

Private Sub cboIdentité_Click()
   If WorksheetFunction.CountIf(Sheets("personnels").Range("A:A"), Me.cboIdentité.Value) = 0 Then
   MsgBox "Vous n'avez saisi aucun critère de choix", vbInformation + vbOKOnly, "Identité non saisi"
   End If
   With Me
   TextBoxNom = [Feuil1].Cells(cboIdentité.ListIndex + 3, 2)
   End With
End Sub

Conseil : Au lieu de TextBoxNom etc... Mettre tbNom, tbMatricule... etc

... et éviter les accents dans les noms de contrôle : cboIdent suffit grandement, tbPren également...

A+

Bonjour, il vous faut un autre code quand votre combox "change" et non clic

Private Sub cboIdentité_Click()
   If WorksheetFunction.CountIf(Sheets("personnels").Range("A:A"), Me.cboIdentité.Value) = 0 Then
   MsgBox "Vous n'avez saisi aucun critère de choix", vbInformation + vbOKOnly, "Identité non saisi"
   End If 
End Sub

Private Sub cboIdentité_Change()
Dim NUMLIGNE As Long
NUMLIGNE = cboIdentité.ListIndex + 3
TextBoxNom.Value = Worksheets("personnels").Range("B" & NUMLIGNE).Value
TextBoxPrénom.Value = Worksheets("personnels").Range("C" & NUMLIGNE).Value
TextBoxMatricule.Value = Worksheets("personnels").Range("D" & NUMLIGNE).Value
TextBoxContrat.Value = Worksheets("personnels").Range("E" & NUMLIGNE).Value
TextBoxHoraires.Value = Worksheets("personnels").Range("F" & NUMLIGNE).Value
End Sub

Oops Galopin plus rapide bonjour Galopin

Bonjour Galopin,

Merci pour ta réactivité.

Tu as entièrement raison, j'ai tendance à me compliquer la vie, des nominations plus courtes vont aussi bien, et en effet j'ai hésité à utiliser des lettres avec accent alors que ce n'est pas une nécessité absolue.

En tout cas un grand merci pour tout.

******************

Bonjour X-men,

Merci également car tu as aussi fait preuve de rapidité, et je t'en suis très reconnaissant.

Merci pour le fichier, il me faut désormais décortiquer le code afin de comprendre et apprendre sa mise en application.

Un très grand merci à tous les deux, à bientôt.

Stéphane,

Re bonjour,

En fait le code est similaire à celui de Galopin sauf que dans ma version je l'ai utilisé dans une Variable appelée NUMLIGNE.

Le principe :

- On utilise le numéro indéxé trouvé par la combobox lors de son utilisation.

-On Pourrait dire que La liste de votre combobox est numérotée de 0 à 115 car vous avez 116 "noms-prénoms"

Vous remarquerez que le 1er noms-prénom de la liste correspond donc au zéro de votre combobox.

Sachant que votre Tableau liste commence à la ligne 3 on ajoutera donc +3 afin d'effectuer le décalage de ligne nécessaire.

Le contenu de votre textboxNom est donc égale a une info de la colonne B à la ligne précédemment trouvé par le "Listindex" de la combobox + 3

TextBoxNom.Value = Worksheets("personnels").Range("B" & cboIdentité.ListIndex +3).Value

Alors que galopin utilise la méthode "Cells" qui implique que l'on indique le numéro de ligne en premier puis le numéro de colonne

Cells(ligne , colonne).value

TextBoxNom = [Feuil1].Cells(cboIdentité.ListIndex + 3, 2)

Re-bonjour X-men,

Merci pour ces explications, j'y vois désormais plus clair. 😊😊😊

Le code fonctionne parfaitement, je l'ai déployé sur la ComboBox suivant "ComboBoxRéférences", et cela fonctionne également. Ceci dit, quel critère puis-je utiliser afin d'avoir comme condition ET de sorte que lorsque je saisi une donnée dans les : ComboBoxRéférences ET ComboBoxGamme, j'obtienne un résultat dans la TextBoxDésignation.

Heu !!!! Pas sûr d'être très explicite.....🤔

Rechercher des sujets similaires à "comment alimenter textbox partir saisie faite via combobox"