Tableaux Excel

Créer une Zone de Liste Déroulante dans Excel avec VBA

×

Recommandés

Guide : Consolidation des données Excel
La consolidation des données dans Excel...
En savoir plus
Comment extraire les chiffres d'une cellule dans...
Extraire uniquement les chiffres d'une cellule...
En savoir plus
Guide : Suivi et Calcul des Écarts...
La composition des ventes fait référence...
En savoir plus
Guide : Astuces pour Maîtriser les Formules...
Les formules d'Excel sont des outils...
En savoir plus
Calculer la Valeur Marchande : Modèle Excel...
La valeur marchande est le prix...
En savoir plus
Créez un Tableau de Bord Automatique avec...
Dans cet article, nous explorons...
En savoir plus

Une zone de liste déroulante (ou ComboBox) permet à l’utilisateur de sélectionner une valeur prédéfinie dans une liste. Voici un guide étape par étape pour créer une telle zone de liste déroulante à l’aide de VBA dans Excel.


1. Activer l’onglet Développeur

Pour travailler avec VBA, l’onglet Développeur doit être activé dans Excel.

  1. Cliquez sur l’onglet Fichier > Options.
  2. Dans la boîte Options Excel, sélectionnez Personnaliser le ruban.
  3. Cochez la case Développeur et cliquez sur OK.

2. Ajouter une Zone de Liste Déroulante (ComboBox)

  1. Allez dans l’onglet Développeur.
  2. Cliquez sur Insertion > Contrôles ActiveX > Zone de liste déroulante (ComboBox).
  3. Dessinez la Zone de liste déroulante sur votre feuille de calcul.

3. Accéder à l’Éditeur VBA

  1. Faites un clic droit sur la Zone de liste déroulante créée.
  2. Cliquez sur Afficher le code. Cela ouvrira l’éditeur VBA.

4. Ajouter une Liste d’Éléments à la ComboBox

Pour remplir la liste déroulante, insérez du code VBA dans l’éditeur VBA. Voici un exemple simple pour remplir une ComboBox :

Code VBA

Private Sub Workbook_Open()
    With Sheets("Feuil1").ComboBox1
        .Clear ' Efface les anciennes entrées
        .AddItem "Option 1"
        .AddItem "Option 2"
        .AddItem "Option 3"
        .AddItem "Option 4"
    End With
End Sub

Instructions :

  • ComboBox1 est le nom de la zone déroulante. Vous pouvez vérifier son nom dans la fenêtre Propriétés.
  • Sheets(« Feuil1 ») représente la feuille contenant votre ComboBox.
  • Les lignes .AddItem "Option X" ajoutent les éléments à la liste déroulante.

5. Remplir la ComboBox depuis une Plage de Données

Si les éléments à afficher se trouvent dans une plage de cellules (par exemple A1:A10), utilisez le code suivant :

Code VBA :

Private Sub Workbook_Open()
    Dim i As Range
    With Sheets("Feuil1").ComboBox1
        .Clear
        For Each i In Sheets("Feuil1").Range("A1:A10")
            .AddItem i.Value
        Next i
    End With
End Sub

6. Ajouter une Action lors de la Sélection d’une Valeur

Pour exécuter une action lorsque l’utilisateur sélectionne une valeur dans la ComboBox, utilisez l’événement Change :

Exemple de Code VBA :

Private Sub ComboBox1_Change()
    MsgBox "Vous avez sélectionné : " & ComboBox1.Value
End Sub

7. Tester le Code VBA

  1. Enregistrez votre fichier Excel en format .xlsm (classeur prenant en charge les macros).
  2. Fermez et rouvrez le fichier.
  3. Testez la Zone de liste déroulante en sélectionnant une valeur.

8. Personnaliser la Zone de Liste Déroulante

  • Sélectionnez la ComboBox.
  • Accédez à la fenêtre Propriétés dans l’onglet Développeur pour ajuster les paramètres (exemple : LinkedCell pour lier la sélection à une cellule).

Pour appliquer automatiquement le code VBA dès l’ouverture du fichier Excel ou à un événement précis (comme sélectionner une cellule, ou activer une feuille), suivez les étapes ci-dessous.


1. Automatisation à l’ouverture du fichier Excel

Si vous voulez que la zone de liste déroulante soit remplie ou configurée automatiquement dès l’ouverture du fichier, utilisez l’événement Workbook_Open.

Étapes :

  1. Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
  2. Dans l’éditeur VBA :
    • Double-cliquez sur ThisWorkbook (dans le volet de gauche sous VBAProject).
  3. Collez le code suivant dans la fenêtre :
Private Sub Workbook_Open()
    With Sheets("Feuil1").ComboBox1
        .Clear
        .AddItem "Option 1"
        .AddItem "Option 2"
        .AddItem "Option 3"
        .AddItem "Option 4"
    End With
End Sub

Explication :

  • Le code est déclenché par l’événement Workbook_Open.
  • À l’ouverture du fichier, les éléments seront ajoutés automatiquement à la ComboBox.

2. Automatisation à l’activation de la feuille

Si vous souhaitez que le code VBA s’exécute automatiquement dès qu’une feuille spécifique est activée, utilisez l’événement Worksheet_Activate.

Étapes :

  1. Dans l’éditeur VBA, double-cliquez sur la feuille concernée (par exemple Feuil1) dans le volet de gauche.
  2. Collez le code suivant :
Private Sub Worksheet_Activate()
    With Me.ComboBox1
        .Clear
        .AddItem "Option 1"
        .AddItem "Option 2"
        .AddItem "Option 3"
        .AddItem "Option 4"
    End With
End Sub

Explication :

  • Le code s’exécute automatiquement dès que la feuille est activée.
  • Me fait référence à la feuille sur laquelle le code est placé.

3. Automatisation via un événement de sélection

Pour exécuter automatiquement le VBA lorsque l’utilisateur sélectionne une cellule spécifique, utilisez Worksheet_SelectionChange.

Exemple de Code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
        With Me.ComboBox1
            .Clear
            .AddItem "Option 1"
            .AddItem "Option 2"
            .AddItem "Option 3"
        End With
    End If
End Sub

Explication :

  • Ce code s’exécute lorsque la cellule A1 est sélectionnée.
  • La liste déroulante est remplie automatiquement.

4. Enregistrer le fichier correctement

Pour que les macros fonctionnent :

  1. Enregistrez votre fichier au format .xlsm (Classeur Excel prenant en charge les macros).
    • Cliquez sur Fichier > Enregistrer sous.
    • Sélectionnez Classeur Excel prenant en charge les macros (.xlsm).
  2. Fermez et rouvrez le fichier.

5. Activer les macros

Lors de l’ouverture du fichier, Excel vous demandera d’autoriser les macros :

  • Cliquez sur Activer le contenu dans la barre de notification.

Résumé des méthodes automatiques

ÉvénementDéclenchementOù placer le code
Workbook_OpenÀ l’ouverture du fichierThisWorkbook
Worksheet_ActivateÀ l’activation d’une feuilleFeuille VBA concernée
Worksheet_SelectionChangeÀ la sélection d’une celluleFeuille VBA concernée

Avec ces options, vous pouvez automatiser votre VBA pour remplir la zone de liste déroulante selon vos besoins.

Pour lier une ComboBox à plusieurs feuilles, vous pouvez utiliser du code VBA permettant d’accéder aux différentes feuilles, lire des données dans des plages spécifiques et les remplir dans une ComboBox.

Voici plusieurs méthodes pour gérer une ComboBox (zone de liste déroulante) liée à plusieurs feuilles dans Excel.


1. Remplir la ComboBox avec des données issues de plusieurs feuilles

Étapes :

  1. Créez une ComboBox sur une feuille spécifique via l’onglet Développeur (contrôle ActiveX).
  2. Accédez à l’éditeur VBA en appuyant sur Alt + F11.
  3. Collez le code suivant dans ThisWorkbook ou dans un module standard.

Code VBA :

Private Sub Workbook_Open()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim i As Range, j As Range

    ' Définir les feuilles
    Set ws1 = ThisWorkbook.Sheets("Feuil1")
    Set ws2 = ThisWorkbook.Sheets("Feuil2")

    ' Effacer les éléments existants de la ComboBox
    With ws1.ComboBox1
        .Clear
        ' Remplir depuis Feuil1 (plage A1:A10)
        For Each i In ws1.Range("A1:A10")
            .AddItem i.Value
        Next i

        ' Remplir depuis Feuil2 (plage B1:B5)
        For Each j In ws2.Range("B1:B5")
            .AddItem j.Value
        Next j
    End With
End Sub

Explication :

  1. Définition des feuilles : Set ws1 et Set ws2 permettent de sélectionner les feuilles à utiliser.
  2. Lecture des plages :
    • La boucle For Each parcourt les cellules d’une plage définie (ex. : A1:A10 dans Feuil1).
    • Les valeurs trouvées sont ajoutées à la ComboBox avec .AddItem.
  3. Effacement préalable : .Clear supprime les anciennes entrées de la ComboBox avant d’en ajouter de nouvelles.

2. Dynamiser la sélection des feuilles

Si vous voulez que le code ajoute automatiquement des données de toutes les feuilles dans le classeur, utilisez cette version :

Code VBA :

Private Sub Workbook_Open()
    Dim ws As Worksheet
    Dim cell As Range

    ' Effacer les éléments existants
    With ThisWorkbook.Sheets("Feuil1").ComboBox1
        .Clear

        ' Parcourir toutes les feuilles
        For Each ws In ThisWorkbook.Sheets
            ' Parcourir les cellules dans une plage spécifique (par exemple A1:A10)
            For Each cell In ws.Range("A1:A10")
                If Not IsEmpty(cell.Value) Then
                    .AddItem cell.Value
                End If
            Next cell
        Next ws
    End With
End Sub

Explication :

  1. Toutes les feuilles : La boucle For Each ws In ThisWorkbook.Sheets parcourt chaque feuille du classeur.
  2. Ajout conditionnel : Seules les cellules non vides sont ajoutées à la ComboBox (If Not IsEmpty(cell.Value)).
  3. Plage commune : Le code utilise une plage commune (ici A1:A10) dans toutes les feuilles.

3. Liaison dynamique pour mise à jour en temps réel

Si vous voulez que la ComboBox se mette à jour à chaque activation d’une feuille ou modification, utilisez Worksheet_Activate :

Code VBA :

Private Sub Worksheet_Activate()
    Dim ws As Worksheet
    Dim cell As Range

    ' Effacer les anciennes entrées
    With Me.ComboBox1
        .Clear

        ' Ajouter des données depuis toutes les feuilles
        For Each ws In ThisWorkbook.Sheets
            For Each cell In ws.Range("A1:A10")
                If Not IsEmpty(cell.Value) Then
                    .AddItem ws.Name & " - " & cell.Value ' Ajouter le nom de la feuille
                End If
            Next cell
        Next ws
    End With
End Sub

Ajout d’une référence au nom de la feuille

  • Avec ws.Name & " - " & cell.Value, vous pouvez voir dans la ComboBox d’où provient chaque donnée.

4. Enregistrer et activer les macros

  1. Enregistrez le fichier en format .xlsm.
  2. À l’ouverture du fichier, assurez-vous d’activer les macros.
  3. Testez la ComboBox pour vérifier qu’elle récupère bien les données des feuilles.

Résumé des options

MéthodeAvantage
Feuilles fixes (Feuil1, Feuil2)Personnalisation précise des feuilles ciblées
Toutes les feuilles dynamiquementAutomatisation complète pour tout le classeur
Mise à jour à l’activationSynchronisation en temps réel

Recommandés

Guide : Calculer une moyenne avec un...
Excel offre plusieurs méthodes pour calculer...
En savoir plus
Série d'exercices corrigés sur les listes déroulantes...
Créer une liste déroulante dans Excel...
En savoir plus
Guide : Exercices Corrigés sur Excel avec...
Ce guide propose une série d'exercices...
En savoir plus
Guide : Formules de Calculs Financiers dans...
Les formules financières d’Excel permettent d’automatiser...
En savoir plus
Créer et utiliser un fichier Excel de...
La gestion efficace des opérations de...
En savoir plus
Le Tableau de Bord Excel : Aperçu...
Les tableaux de bord Excel sont...
En savoir plus
AZ

Recent Posts

Classification des Documents : Organiser et Automatiser la Gestion Documentaire

Dans toute organisation moderne — entreprise, association, service administratif ou bureau de projet — la…

21 heures ago

Modèle de Bilan Actif Passif sur Excel : Concevoir un tableau comptable clair et automatisé

Dans la pratique comptable, le bilan constitue l’un des documents les plus fondamentaux pour comprendre…

24 heures ago

Fiche Méthode analyse linéaire + guide complet pour la réussir

L’analyse linéaire impressionne souvent plus qu’elle ne le devrait. Au moment d’aborder l’oral du bac…

2 jours ago

Analyse linéaire au bac français : méthode complète, exemples et conseils pour réussir l’oral

L’analyse linéaire occupe une place centrale à l’oral du bac français. C’est l’exercice qui permet…

2 jours ago

Créer une fiche de suivi en ligne : générateur personnalisable à imprimer

Créer une fiche de suivi claire et adaptée à son activité prend souvent plus de…

2 jours ago

Préparation physique football avec ballon : Fiche Word utile

Comment améliorer sa condition physique tout en travaillant la technique Quand on parle de préparation…

2 jours ago

This website uses cookies.