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
- 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.
- 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
- Appuyez simultanément sur les touches
Alt+F11pour ouvrir l'éditeur VBA (Visual Basic Editor). - 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
- 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 parSet KeyCells = Range("C5:C15"). - 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
- Fermez l'éditeur VBA.
- Enregistrez votre fichier Excel au format
.xlsm(classeur Excel prenant en charge les macros). Si vous ne le faites pas, votre macro sera perdue. - 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 plageKeyCells.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:
- Sélectionnez la cellule: Choisissez la cellule où vous souhaitez insérer les cases à cocher.
- Insertion > Case à cocher: Insérez une case à cocher.
- Répétez: Insérez autant de cases à cocher que d'options souhaitées, une par ligne ou colonne adjacente à la cellule principale.
- 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.Valuepour 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
DECALERpour 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 macroset 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.