Voici un code VBA détaillé pour créer une liste déroulante dans Excel, avec une explication complète en français.
Forme
Code VBA pour créer une liste déroulante dans Excel
Ce code permet de :
Définir une plage de cellules contenant les options de la liste déroulante.
Remplir cette plage avec des valeurs prédéfinies.
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
Forme
Explication
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.
Remplissage de la liste déroulante
rng.Value = WorksheetFunction.Transpose(Array(…)) remplit la plage de cellules avec les options.
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.
Notification à l’utilisateur
MsgBox affiche un message confirmant que la liste déroulante a bien été créée.
Forme
Avec ce code, vous pourrez automatiser la création de listes déroulantes dans vos projets Excel VBA ! 🚀