Tutoriels

Comment Créer un Menu Déroulant à Choix Multiple sur Excel ?

15 janvier 2026 5 vues

Vous en avez assez de saisir manuellement les mêmes informations répétitives dans vos feuilles de calcul Excel ? Un menu déroulant à choix multiple est la solution idéale ! Il vous permet de sélectionner plusieurs options à partir d'une liste préétablie, simplifiant ainsi la saisie de données, réduisant les erreurs et améliorant l'ergonomie de vos tableaux. Dans cet article, nous vous guiderons pas à pas pour créer facilement ce type de menu, même si vous êtes débutant sur Excel. Préparez-vous à gagner en efficacité !

Créer un Menu Déroulant à Choix Multiple dans Excel : Guide Complet

Excel, l'outil de tableur par excellence, offre de nombreuses fonctionnalités pour faciliter la gestion et l'analyse des données. Parmi celles-ci, la possibilité de créer des menus déroulants à choix multiple est particulièrement utile pour standardiser la saisie et éviter les erreurs. Contrairement aux menus déroulants classiques qui ne permettent de sélectionner qu'une seule option, les menus à choix multiple offrent une flexibilité accrue.

Pourquoi Utiliser un Menu Déroulant à Choix Multiple ?

  • Standardisation des données: Assurez-vous que les données saisies sont conformes à un format prédéfini.
  • Réduction des erreurs: Évitez les fautes de frappe et les incohérences.
  • Gain de temps: Accélérez la saisie en sélectionnant des options plutôt qu'en les tapant.
  • Amélioration de l'ergonomie: Rendez vos feuilles de calcul plus conviviales.

Méthode 1: Utiliser une Macro VBA (Recommandée)

La méthode la plus robuste et la plus flexible pour créer un menu déroulant à choix multiple dans Excel consiste à utiliser une macro VBA (Visual Basic for Applications). Bien que cela puisse sembler intimidant au premier abord, suivez ces étapes simples et vous serez surpris de la facilité avec laquelle vous pouvez y parvenir.

Étape 1: Préparer Votre Feuille de Calcul

  1. Créez une liste d'options: Dans une colonne de votre feuille de calcul (par exemple, la colonne A), saisissez les différentes options que vous souhaitez inclure dans votre menu déroulant. Assurez-vous que chaque option est sur une ligne distincte.
  2. Choisissez la cellule cible: Sélectionnez la cellule (ou les cellules) où vous souhaitez insérer le menu déroulant à choix multiple. C'est dans cette cellule que les options sélectionnées seront affichées, séparées par une virgule (ou tout autre séparateur de votre choix).

Étape 2: Ouvrir l'Éditeur VBA

  1. Appuyez simultanément sur les touches Alt + F11 pour ouvrir l'éditeur VBA (Visual Basic Editor).
  2. Dans l'éditeur VBA, allez dans Insertion > Module. Une nouvelle fenêtre de code s'ouvrira.

Étape 3: Copier et Coller le Code VBA

Copiez et collez le code VBA suivant dans la fenêtre de code que vous venez d'ouvrir :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Dim Oldvalue As String
    Dim Newvalue As String

    ' Définissez la plage de cellules où le menu déroulant doit fonctionner
    Set KeyCells = Range("B1:B10") 'Modifiez ceci pour votre plage de cellules cible

    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

        Application.EnableEvents = False
        Newvalue = Target.Value
        Application.Undo
        Oldvalue = Target.Value
        Target.Value = Newvalue

        If Target.Value <> "" Then
          If InStr(1, Oldvalue, Target.Value, vbTextCompare) > 0 Then
            Target.Value = Replace(Oldvalue, Target.Value & ", ", "", , 1, vbTextCompare)
            Target.Value = Replace(Target.Value, Target.Value, "", , 1, vbTextCompare)
          Else
            If Oldvalue <> "" Then
              Target.Value = Oldvalue & ", " & Target.Value
            End If
          End If
        End If
        Application.EnableEvents = True
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range("B1:B10") 'Modifiez ceci pour votre plage de cellules cible
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=ListeOptions" 'Assurez-vous que "ListeOptions" correspond à votre plage nommée
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = "Choisissez une ou plusieurs options:"
            .ErrorTitle = "Erreur de sélection"
            .InputMessage = "Sélectionnez une ou plusieurs options dans la liste."
            .ErrorMessage = "Vous ne pouvez choisir que les options proposées."
            .ShowInput = True
            .ShowError = True
        End With
    End If
End Sub

Étape 4: Adapter le Code à Votre Feuille de Calcul

  1. Modifier la plage de cellules cible: Dans le code VBA, repérez la ligne Set KeyCells = Range("B1:B10"). Remplacez "B1:B10" par la plage de cellules où vous souhaitez que le menu déroulant fonctionne. Par exemple, si vous voulez que le menu déroulant s'applique aux cellules C5 à C15, remplacez la ligne par Set KeyCells = Range("C5:C15").
  2. Définir la plage nommée pour la liste d'options: Sélectionnez la plage de cellules contenant votre liste d'options (par exemple, la colonne A). Dans la zone de nom (en haut à gauche de la fenêtre Excel), tapez un nom pour cette plage (par exemple, ListeOptions) et appuyez sur Entrée. Assurez-vous que le nom est sans espaces. Dans le code VBA, repérez la ligne .Formula1:="=ListeOptions" et assurez-vous que le nom correspond bien au nom que vous avez donné à votre plage.

Étape 5: Enregistrer et Tester le Code

  1. Fermez l'éditeur VBA.
  2. Enregistrez votre fichier Excel au format .xlsm (classeur Excel prenant en charge les macros). Si vous ne le faites pas, votre macro sera perdue.
  3. Sélectionnez une des cellules où vous avez configuré le menu déroulant (par exemple, une cellule de la plage C5:C15 si vous avez utilisé cet exemple). Un menu déroulant devrait apparaître. Sélectionnez plusieurs options. Elles devraient s'afficher dans la cellule, séparées par une virgule.

Explication du Code VBA:

  • Worksheet_Change: Cette procédure se déclenche chaque fois qu'une cellule est modifiée dans la feuille de calcul.
  • Worksheet_SelectionChange: Cette procédure se déclenche chaque fois qu'une cellule est sélectionnée dans la feuille de calcul.
  • KeyCells: Définit la plage de cellules où le menu déroulant est actif.
  • Application.Intersect: Vérifie si la cellule modifiée se trouve dans la plage KeyCells.
  • Application.EnableEvents = False/True: Désactive et réactive les événements pour éviter une boucle infinie.
  • Oldvalue/Newvalue: Stockent les anciennes et nouvelles valeurs de la cellule.
  • InStr: Recherche une chaîne de caractères dans une autre chaîne.
  • Replace: Remplace une chaîne de caractères par une autre.
  • With Selection.Validation: Configure la validation des données pour créer le menu déroulant.

Méthode 2: Utiliser une Solution Alternative avec Google Sheets (Si applicable)

Bien qu'Excel soit le plus souvent utilisé, si votre contexte le permet, Google Sheets offre une fonctionnalité native pour créer des listes de validation avec cases à cocher, ce qui simule un choix multiple plus intuitivement. Cependant, cette méthode n'est pas directement transposable à Excel sans l'utilisation de macros ou de compléments.

Étapes pour Google Sheets:

  1. Sélectionnez la cellule: Choisissez la cellule où vous souhaitez insérer les cases à cocher.
  2. Insertion > Case à cocher: Insérez une case à cocher.
  3. Répétez: Insérez autant de cases à cocher que d'options souhaitées, une par ligne ou colonne adjacente à la cellule principale.
  4. Formule: Utilisez une formule pour concaténer les options sélectionnées. Par exemple, si vos cases à cocher sont en A1, B1 et C1, et vos options correspondantes sont "Option 1", "Option 2" et "Option 3", utilisez la formule suivante dans une autre cellule: =JOIN(", ",FILTER({"Option 1", "Option 2", "Option 3"}, {A1, B1, C1})) Cette formule concatène les options dont la case à cocher correspondante est cochée, séparées par une virgule.

Conseils et Astuces

  • Personnaliser le séparateur: Dans le code VBA, vous pouvez modifier le séparateur utilisé pour séparer les options sélectionnées (par défaut, une virgule suivie d'un espace). Modifiez la ligne Target.Value = Oldvalue & ", " & Target.Value pour utiliser un autre séparateur.
  • Gérer les doublons: Le code VBA proposé empêche l'ajout de doublons. Si vous souhaitez autoriser les doublons, supprimez les lignes qui gèrent la suppression des options existantes.
  • Ajouter une option "Tout sélectionner": Vous pouvez ajouter une option "Tout sélectionner" à votre liste. Le code VBA devra être modifié pour gérer cette option spécifique.
  • Utiliser des plages dynamiques: Pour que votre menu déroulant s'adapte automatiquement à l'ajout ou à la suppression d'options dans votre liste, utilisez des plages nommées dynamiques. Vous pouvez définir une plage nommée avec la fonction DECALER pour qu'elle s'étende automatiquement à mesure que vous ajoutez des éléments à votre liste.

Erreurs Courantes à Éviter

  • Oublier d'enregistrer le fichier au format .xlsm: Si vous ne le faites pas, votre macro sera perdue lorsque vous fermerez le fichier.
  • Ne pas adapter le code VBA à votre feuille de calcul: Assurez-vous de modifier la plage de cellules cible et le nom de la plage contenant la liste d'options.
  • Erreurs de syntaxe dans le code VBA: Vérifiez attentivement le code VBA pour détecter les erreurs de syntaxe. L'éditeur VBA vous signalera généralement les erreurs.
  • Activation des macros: Assurez-vous que les macros sont activées dans Excel. Allez dans Fichier > Options > Centre de gestion de la confidentialité > Paramètres du Centre de gestion de la confidentialité > Paramètres des macros et choisissez une option qui autorise l'exécution des macros (l'option recommandée est "Désactiver toutes les macros avec notification").

En conclusion, la création d'un menu déroulant à choix multiple dans Excel est une compétence précieuse pour améliorer l'efficacité et la qualité de vos feuilles de calcul. Bien que la méthode VBA puisse sembler complexe au début, elle offre une flexibilité inégalée. N'hésitez pas à expérimenter et à adapter le code à vos besoins spécifiques. Avec un peu de pratique, vous maîtriserez rapidement cette technique et vous pourrez l'appliquer à de nombreux projets.

Questions fréquentes

Est-il possible de créer un menu déroulant à choix multiple sans utiliser de macro VBA ?

Bien qu'il existe des solutions alternatives, l'utilisation d'une macro VBA est la méthode la plus fiable et la plus flexible pour créer un menu déroulant à choix multiple dans Excel. Les autres méthodes peuvent être limitées en termes de fonctionnalités et de personnalisation.

Comment puis-je modifier le séparateur utilisé pour séparer les options sélectionnées ?

Dans le code VBA, repérez la ligne `Target.Value = Oldvalue & ", " & Target.Value` et remplacez `", "` par le séparateur de votre choix. Par exemple, pour utiliser un point-virgule suivi d'un espace, remplacez la ligne par `Target.Value = Oldvalue & "; " & Target.Value`.

Pourquoi mon menu déroulant ne fonctionne-t-il pas après avoir enregistré le fichier ?

Assurez-vous d'avoir enregistré le fichier au format `.xlsm` (classeur Excel prenant en charge les macros). Si vous l'avez enregistré au format `.xlsx`, la macro sera perdue. Vérifiez également que les macros sont activées dans Excel.

Mots-clés associés :

liste déroulante excel validation de données excel macro excel vba excel menu déroulant multiple excel

Partager cet article :