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 ! 🚀

S’abonner
Notifier de
0 Commentaires
le plus ancien
le plus récent le plus populaire
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