Formulaire vba
Advan
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
Salut à tous, je viens solliciter votre aide.
J’ai un formulaire qui doit gérer la liste du personnel. Dans ce formulaire, j’ai une ComboBox appelé CB_Matricule qui récupère ces valeurs à partir d’une liste se trouvant dans la colonne A de la feuille PERSONNEL. Notons que dans la colonne B de cette même feuille, on a les noms des personnes correspondants aux matricules qui se trouve dans la colonne A.
je veux qu’en fonction des valeurs de la CB_Matricule, une TextBox appelé TB_Noms se trouvant sur le même formulaire puisse afficher le nom correspondant au matricule s’affiche.
Private Sub CB_ Matricul _Change()
If CB_Matricul.Value = Sheets("PERSONNELS").Range("A5").Value Then
TB_Noms.Value = Sheets("PERSONNELS").Range("B5").Value
ElseIf CB_Matricul.Value = Sheets("PERSONNELS").Range("A6") Then
TB_ Noms.Value = Sheets("PERSONNELS").Range("B6").Value
ElseIf CB_Matricul.Value = Sheets("PERSONNELS").Range("A7") Then
TB_ Noms.Value = Sheets("PERSONNELS").Range("B7").Value
End If
End Sub
Le problème est qu’en procédant ainsi, il sera difficile d’allé jusqu’à la ligne A1000000. Donc j’aimerais trouver un code qui me permettra résumer tout ça.
Quelqu'un peut-il m'aider?
Mercie d'avance.
J’ai un formulaire qui doit gérer la liste du personnel. Dans ce formulaire, j’ai une ComboBox appelé CB_Matricule qui récupère ces valeurs à partir d’une liste se trouvant dans la colonne A de la feuille PERSONNEL. Notons que dans la colonne B de cette même feuille, on a les noms des personnes correspondants aux matricules qui se trouve dans la colonne A.
je veux qu’en fonction des valeurs de la CB_Matricule, une TextBox appelé TB_Noms se trouvant sur le même formulaire puisse afficher le nom correspondant au matricule s’affiche.
Private Sub CB_ Matricul _Change()
If CB_Matricul.Value = Sheets("PERSONNELS").Range("A5").Value Then
TB_Noms.Value = Sheets("PERSONNELS").Range("B5").Value
ElseIf CB_Matricul.Value = Sheets("PERSONNELS").Range("A6") Then
TB_ Noms.Value = Sheets("PERSONNELS").Range("B6").Value
ElseIf CB_Matricul.Value = Sheets("PERSONNELS").Range("A7") Then
TB_ Noms.Value = Sheets("PERSONNELS").Range("B7").Value
End If
End Sub
Le problème est qu’en procédant ainsi, il sera difficile d’allé jusqu’à la ligne A1000000. Donc j’aimerais trouver un code qui me permettra résumer tout ça.
Quelqu'un peut-il m'aider?
Mercie d'avance.
1 réponse
Bonjour
Sans le fichier, difficile de tester, mais je verrai un truc comme ça
Cdlmnt
Sans le fichier, difficile de tester, mais je verrai un truc comme ça
Sub CB_Matricul_Change() Dim obj As Object, liobj As Long, mat As String mat = CB_Matricul.Value ' recherche mat dans la colonne A de la feuille PERSONNELS Set obj = Sheets("PERSONNELS").Columns("A").Find(mat, , , xlWhole) If Not obj Is Nothing Then ' si mat est trouvé liobj est sa ligne liobj = obj.Row TB_ Noms.Value = Sheets("PERSONNELS").Range("B" & liobj).Value End If End Sub
Cdlmnt