Les Trucs et Astuces Informatiques de Michel.excel userform créer une liste via un userform...liste déroulante..

Retour Page Accueil Excel VBA


- Créer une liste déroulante dans un userform

  1. Ouvrez un nouveau Classeur Excel
  2. Sélectionnez le Menu Outil Macro Visual basic Editor [ou appuyez sur les touches CTRL + F11]
  3. Sélectionnez le Menu Affichage Boîte à outils [Afin d'avoir les outils nécessaires à la constitution de notre Userform]
  4. Sélectionnez le Menu Insertion Userform [Dès lors, une Userform vierge s'affiche - Cette Userform est est nommée Userform1 défaut]
  5. Cliquez sur l'outil Zone de liste modifiable

  6. Dessinez votre zone de liste déroulante

  7. Cliquez-droit sur le bouton sélectionnez l'option Propriétés
  8. Tapez les références de la feuille et des cellules concernées [Dans notre exemple : Feuil3!A1:A10]

  9. Double-cliquez sur la liste déroulante saisissez le code suivant :
     
     [A1] = UserForm1.ComboBox1
    

    A NOTER : Pour attribuer un Valeur par défaut sur une liste délourante, renseignez le champ Value par la valeur par défaut souhaitée

    Autre solution : Initialiser une liste de choix dès l'ouverture du Userform

    1. Cliquez-droit sur le Userform concerné Tapez le code suivant :
       
      Private Sub UserForm_Initialize()
       
        ComboBox1.ColumnCount = 1
        ComboBox1.List() = Array("", "Pommes", "Poires", "Bananes")
       
      End Sub

    Autre solution : Initialiser une liste de choix dès l'ouverture du Userform avec une liste issue d'une feuille Excel

    1. Créez votre liste dans une Feuille Excel
    2. Sélectionnez le Menu Insertion Nom Définir
    3. Attribuez un nom à cette liste
    4. Dessinez votre zone de liste déroulante sur le Userform concerné

    5. Double-cliquez sur la liste déroulante Entrez le code suivant
       
      Private Sub UserForm_Initialize()
      ComboBox1.RowSource = ("NomdelaListe")
      End Sub
      

    Autre solution : Inserer les cellules A1:A10 dès l'ouverture du Userform dans un combobox

    1. Créez votre liste dans une Feuille Excel dans les cellules A1 à A10
    2. Dessinez votre zone de liste déroulante sur le Userform concerné

    3. Double-cliquez sur la liste déroulante Entrez le code suivant
       
      Private Sub UserForm_Initialize()
      Dim i
          For i = 1 To 10
              ComboBox1.AddItem Sheets("Feuil1").Cells(i, 1)
          Next
      End Sub
      
    4. A Savoir : Pour récupérer la valeur choisie dans la cellule A1 : [A1] = ComboBox1.Value ou [A1] = ComboBox1

    Autre solution : Initialiser les données de la liste déroulante directment via VBA

     
    Private Sub UserForm_initialize()
     
      With ComboBox1
         .AddItem "Pommes"
         .AddItem "Poires"
         .AddItem "Bananes"
         .AddItem "Fraises"
         .AddItem "Oranges"
     End With
     
    End Sub

    Autre solution : Initialiser les données de la liste déroulante directment via VBA en prenant une colonne précise jusqu'à la dernière cellule non vide

     
    Set FL = ThisWorkbook.Sheets("Feuil1")  'Identification de la feuille concernée 
    Ligne = FLRange("D65536").End(xlUp).Row  Positionnement de la dernière cellule à récupérer
     
     
    For i = 7 To Ligne            'Démarre à la ligne 7 jusqu'à la ligne définit dans la variable Ligne 
        With Me.ComboBox1          
             .AddItem FL.Range("H" & i) 
        End With
    Next i                    
     
    End Sub