Créer des listes déroulantes, Excel VBA

Créer des listes déroulantes, Excel VBA

Voici un code VBA détaillé pour créer une liste déroulante dans Excel, avec une explication complète en français. 

Code VBA pour créer une liste déroulante dans Excel 

Ce code permet de : 

  1. Définir une plage de cellules contenant les options de la liste déroulante. 
  2. Remplir cette plage avec des valeurs prédéfinies. 
  3. Appliquer une validation des données pour créer la liste déroulante dans une cellule cible. 
Sub CreerListeDeroulante() 
    Dim ws As Worksheet 
    Dim rng As Range 
    Dim celluleCible As Range 
    Dim plageListe As Range 
    ' Définir la feuille de travail 
    Set ws = ThisWorkbook.Sheets("Feuil1") ' Remplacez "Feuil1" par le nom de votre feuille 
    ' Définir la plage contenant les options de la liste déroulante 
    Set rng = ws.Range("A1:A5") 
    ' Remplir la plage avec les options 
    rng.Value = WorksheetFunction.Transpose(Array("Option 1", "Option 2", "Option 3", "Option 4", "Option 5")) 
    ' Définir la cellule cible où la liste déroulante sera appliquée 
    Set celluleCible = ws.Range("C1")  
    ' Appliquer la validation des données pour créer la liste déroulante 
    With celluleCible.Validation 
        ' Supprimer toute validation existante 
        .Delete 
        ' Ajouter la validation avec une liste 
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
        xlBetween, Formula1:="=" & rng.Address 
        ' Optionnel : afficher un message d'entrée lors de la sélection de la cellule 
        .InputTitle = "Sélectionnez une option" 
        .InputMessage = "Choisissez une valeur dans la liste déroulante." 
        ' Optionnel : personnaliser le message d'erreur 
        .ErrorTitle = "Sélection invalide" 
        .ErrorMessage = "Veuillez sélectionner une option valide dans la liste déroulante." 
        .ShowInput = True 
        .ShowError = True 
    End With 
    ' Afficher une notification pour l'utilisateur 
    MsgBox "Liste déroulante créée dans la cellule " & celluleCible.Address, vbInformation, "Succès" 
End Sub

Explication 

1. Définition de la feuille et des plages 

  • Le script fonctionne sur Feuil1, mais vous pouvez modifier ce nom en fonction de votre fichier Excel. 
  • rng (A1:A5) contient les valeurs de la liste déroulante. 
  • celluleCible (C1) est la cellule où la liste déroulante sera insérée. 

2. Remplissage de la liste déroulante 

  • rng.Value = WorksheetFunction.Transpose(Array(…)) remplit la plage de cellules avec les options. 

3. Application de la validation des données 

  • .Delete supprime toute validation existante pour éviter les conflits. 
  • .Add Type:=xlValidateList crée une liste déroulante. 
  • Formula1:= »= » & rng.Address lie la liste déroulante à la plage définie. 
  • .InputTitle et .InputMessage affichent un message d’aide lors de la sélection de la cellule. 
  • .ErrorTitle et .ErrorMessage affichent un message d’erreur personnalisé en cas de saisie incorrecte. 

4. Notification à l’utilisateur 

  • MsgBox affiche un message confirmant que la liste déroulante a bien été créée. 

Avec ce code, vous pourrez automatiser la création de listes déroulantes dans vos projets Excel VBA.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x