Remplir une liste à plusieurs colonnes et calculer la moyenne des nombres sélectionnés dans un formulaire personnalisé ou Userform, Excel VBA

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.

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