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.