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.