Les boîtes de dialogue

Boite de dialogue avec sélection multiple dans liste déroulante.Retour au menu Contrôles divers

        Le Userform (DlgChoixMultiple)

        Les contrôles

 
      Nom de la ListBox = ListeClients
      Nom du CommandButton "OK" = OK
      Nom du CommandButton "Annuler" = Annuler

        Le code

        Code lançant l'ouverture de la boîte de dialogue

 
Sub AfficheListeDeroulanteMultiSelect()
      DlgChoixMutliple.Show
End Sub

        Code d'initialisation du formulaire

 
Private Sub UserForm_Initialize()
' Les données proviennent de la feuille Feuil1 et sont dans les colonnes A et B
       With Sheets("Feuil1").Range("A1")
              Me.ListeClients.RowSource = Range(.Cells, .End(xlDown)(1, 2)).Address(External:=True)
       End With
End Sub

        Code d'activation du formulaire

 
Private Sub UserForm_Activate()
' Effacement des données de la plage qui reçoit les items sélectionnés (colonnes D et E)
       Range("D1:E1", Cells(ListeClients.ListCount, 4)).Clear
' Propriété Multiselect du contrôle ListeClients mis sur fmMultiSelectExtended
       ListeClients.MultiSelect = fmMultiSelectExtended
End Sub

        Code des boutons

       1 / Bouton OK
 
Private Sub OK_Click()
       DlgChoixMultiple.Hide
       j = 1
       With ListeClients
       For i = 0 To .ListCount - 1
              If .Selected(i) = True Then
' Le résultat est placé dans les colonnes D et E de la feuille Feuil1
              Cells(j, 4) = .List(i, 0): Cells(j, 5) = .List(i, 1)
              .Selected(i) = False
              j = j + 1
       End If
       Next
       End With
End Sub
        2 / Bouton Annuler
 
Private Sub Annuler_Click()
      DlgChoixMultiple.Hide
End Sub

        Le résultat par rapport à la sélection dans le formulaire
        (voir image du Userform au début de la page)

Retour au début de document

Retour au début du document