Une zone de liste à colonnes peut être remplies à partir d’une plage de données. Nous allons le démontrer avec un exemple qui calcule le score moyen d’un groupe d’étudiants sélectionné à partir d’une liste. La première colonne contient les noms des étudiants et la seconde contient leurs notes.
Figure : Remplir une liste à plusieurs colonnes
Nous allons ainsi créer un formulaire avec une zone de texte, une zone de liste, un bouton de commande et une Intitulé. Dans le module de formulaire, entrez le code suivant :
Private Sub UserForm_Initialize() Dim r As Range Me.Caption = "La moyenne des notes" CommandButton1.Caption = "OK" Label1.Caption = "La moyenne des notes" Set r = Range("A1").CurrentRegion With ListBox1 .ColumnCount = 2 .RowSource = r.Address .MultiSelect = fmMultiSelectMulti End With End Sub Private Sub CommandButton1_Click() Dim s As Double Dim n As Integer, i As Integer n = 0 For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then n = n + 1 Next If n = 0 Then TextBox1.Text = Empty Exit Sub End If s = 0 For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then s = s + ListBox1.List(i, 1) Next s = s / n TextBox1.Text = FormatNumber(s, 2) End Sub
Commentaires
■ Le remplissage de la zone de liste et la définition de la valeur de la propriété Caption des contrôles et des formulaires sont effectués au stade de l’initialisation du formulaire.
■ Appuyez d’abord sur le bouton OK pour vérifier si les éléments sélectionnés sont présents.