Masquer les données dans une zone de liste (ListBox) à plusieurs colonnes dans un Userform, Excel VBA

Si un composant est défini sur zéro dans la valeur de la propriété ColumnWidths, la colonne correspondante est masquée. Nous allons prendre un exemple des employés d’une entreprise, où les informations sur les employés sont entrées dans la liste en fonction de la plage A2: C9 de la feuille de travail Employés.

Figure : Département des Ressources Humaines

Bien que toutes ces données soient chargées dans la liste, seuls les noms de famille sont affichés. Cliquez sur un élément de la liste pour afficher une boîte de dialogue avec le nom de l’employé sélectionné. En sélectionnant la combinaison requise de cases à cocher Poste et Expérience de service affichés sur l’employé sélectionné, les informations peuvent être développées. Pour implémenter ce projet, créez un classeur avec la feuille de calcul Employés, dans la plage A2: C11 dont les données sur les employés sont saisies. Construisez un formulaire sur lequel placer une liste et deux cases à cocher. Dans le module formulaire, saisissez le code suivant :

Private Sub UserForm_Initialize()

   ListBox1.ColumnCount = 3

   ListBox1.ColumnWidths = "80;0;0"

   Me.Caption = "Ressources Humaines"

   ListBox1.RowSource = "Ressources!A2:C11"

   CheckBox1.Caption = "Expérience"

   CheckBox2.Caption = "Poste"

End Sub

Private Sub ListBox1_Click()

   Dim msg As String

   msg = "Nom: " & ListBox1.Text & vbCr

   If CheckBox1.Value Then

      msg = msg & "Poste: " & ListBox1.List(ListBox1.ListIndex, 1) _

          & vbCr

   End If

   If CheckBox2.Value Then

      msg = msg & "Experience: " & ListBox1.List(ListBox1.ListIndex, 2) & vbCr

   End If

   MsgBox msg

End Sub

Private Sub CheckBox1_Change()

   If ListBox1.ListIndex >= 0 Then

      ListBox1_Click

   End If

End Sub

Private Sub CheckBox2_Change()

   If ListBox1.ListIndex >= 0 Then

      ListBox1_Click

   End If

End Sub

 

Commentaires
■ La liste est remplie et la valeur de la propriété Caption des contrôles et des formulaires est définie à l’étape d’initialisation du formulaire.

■ Lorsque vous sélectionnez un élément dans la liste, une ligne dépendant de l’état des cases à cocher est générée et affichée dans la boîte de dialogue. De plus, l’élément de la première colonne est renvoyé par la propriété Text, et les deuxième et troisième, par la propriété List.
■ La modification de l’état de la case à cocher déclenchera également l’exécution de la procédure de traitement de l’événement Click de la liste, à condition qu’il contienne les éléments sélectionnés. Ce dernier est vérifié par la valeur renvoyée par la propriété ListIndex.

■ Le fait est que cette propriété renvoie l’index de l’élément sélectionné. S’il n’y en a pas, il renvoie –1.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x