Accéder au contenu principal

Comment masquer des colonnes en temps réel en fonction de la saisie utilisateur dans Excel ?

Author: Xiaoyang Last Modified: 2025-08-06

Masquer des colonnes dans Excel peut être une tâche courante, mais avez-vous déjà essayé de masquer automatiquement des colonnes en fonction de valeurs d'entrée spécifiques ? Par exemple, lorsque j'entre le texte "AA" dans une cellule, la colonne A est masquée ; lorsque j'entre "BB", les colonnes B et C sont masquées ; en entrant "CC", les colonnes D et E sont masquées ; en entrant "DD", la colonne F est masquée, comme illustré dans la démonstration ci-dessous. Cet article fournira un code VBA pour résoudre ce problème dans Excel.

Utiliser un code VBA pour masquer ou afficher des colonnes en temps réel en fonction de la saisie utilisateur

Utiliser un code VBA pour masquer ou afficher certaines colonnes en fonction de la saisie utilisateur


Utiliser un code VBA pour masquer ou afficher des colonnes en temps réel en fonction de la saisie utilisateur

Pour masquer des colonnes spécifiques en temps réel en fonction des valeurs d'entrée, veuillez appliquer le code VBA ci-dessous :

1. Dans la feuille de calcul où vous souhaitez masquer des colonnes, faites un clic droit sur l'onglet de la feuille, puis cliquez sur "Affichage du code" dans le menu contextuel, voir capture d'écran.

A screenshot showing how to open the Visual Basic for Applications window in Excel by right-clicking the sheet tab

2. Dans la fenêtre "Microsoft Visual Basic for Applications" qui s'ouvre, copiez et collez le code VBA suivant dans la fenêtre "Feuille (Code)".

Code VBA : Masquer des colonnes en temps réel en fonction de la saisie utilisateur

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby ExtendOffice
xcell = Range("K1").Value
Select Case xcell
Case "AA": Columns("A").EntireColumn.Hidden = False
Columns("A").EntireColumn.Hidden = True
Case "BB": Columns("B:C").EntireColumn.Hidden = False
Columns("B:C").EntireColumn.Hidden = True
Case "CC": Columns("D:E").EntireColumn.Hidden = False
Columns("D:E").EntireColumn.Hidden = True
Case "DD": Columns("F").EntireColumn.Hidden = False
Columns("F").EntireColumn.Hidden = True
Case Else
Columns("A:G").EntireColumn.Hidden = False
End Select
End Sub
Remarque : Dans le code ci-dessus, "K1" est la cellule où vous entrez le texte spécifique. Vous devez ajuster le texte et les noms de colonnes pour qu'ils correspondent à vos besoins. De plus, vous pouvez ajouter d'autres critères simplement en ajoutant les scripts ci-dessous :
  • Case "AA": Columns("A").EntireColumn.Hidden = False
  • Columns("A").EntireColumn.Hidden = True

A screenshot of the VBA code window in Excel with code pasted to hide columns based on user input

3. Ensuite, fermez la fenêtre de code. Maintenant, lorsque vous entrez "AA" dans la cellule K1 et appuyez sur la touche "Entrée", la colonne A est masquée ; lorsque vous entrez "BB" et appuyez sur la touche "Entrée", les colonnes B et C sont masquées, et ainsi de suite. Si vous saisissez une autre valeur ou supprimez le contenu, les colonnes masquées seront immédiatement affichées, voir la démonstration ci-dessous :


Utiliser un code VBA pour masquer ou afficher certaines colonnes en fonction de la saisie utilisateur

Dans cet exemple, je vais filtrer une plage de données en fonction d'un nom de produit saisi. Lorsque j'entre "Hoodie", seules les informations concernant "Hoodie" sont affichées et les autres colonnes sont immédiatement masquées ; et lorsque j'entre "Tout", toutes les colonnes seront affichées comme le montre la démonstration ci-dessous :

1. Dans la feuille de calcul où vous souhaitez masquer des colonnes, faites un clic droit sur l'onglet de la feuille, puis cliquez sur "Affichage du code" dans le menu contextuel, voir capture d'écran :

A screenshot showing how to open the Visual Basic for Applications window in Excel by right-clicking the sheet tab

2. Dans la fenêtre "Microsoft Visual Basic for Applications" qui s'ouvre, copiez et collez le code VBA suivant dans la fenêtre "Feuille (Code)".

Code VBA : Masquer ou afficher des colonnes pour filtrer des données en fonction de la saisie utilisateur

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby ExtendOffice
    Dim x As Variant, y As String
     If Target.Address = "$K$1" Then
        y = Target.Value
        With Range("B1:H1")
            Application.ScreenUpdating = False
            .EntireColumn.Hidden = (y <> "All")
            If y <> "All" Then
                For Each x In .Cells
                    If x = y Then x.EntireColumn.Hidden = False
                Next
            End If
            Application.ScreenUpdating = True
        End With
    End If
End Sub
Remarque : Dans le code ci-dessus, "K1" est la cellule où vous entrez le texte spécifique, "B1:H1" sont les en-têtes de ligne contenant les noms de produits que vous souhaitez filtrer.

3. Ensuite, fermez la fenêtre de code. Maintenant, si vous entrez le nom du produit dans la cellule K1, seules les colonnes correspondantes seront affichées, les autres seront masquées ; et si vous entrez le texte "Tout", toutes les colonnes apparaîtront comme le montre la démonstration ci-dessous :

Meilleurs outils de productivité Office

🤖 Kutools AI Aide : Révolutionnez l'analyse de données grâce à : Exécution intelligente   |  Générer du code  |  Créer des Formules personnalisées  |  Analyser des données et générer des graphiques  |  Appeler les Fonctions améliorées
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons   |  Supprimer les lignes vides   |  Combiner les colonnes ou cellules sans perdre de données   |  Arrondir...
Super RECHERCHEV : Recherche multi-critères    Recherche multi-valeurs  |   Recherche multi-feuilles   |   Correspondance floue ....
Liste déroulante avancée : Créer rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante avec sélection multiple ....
Gestionnaire de colonnes : Ajouter un nombre spécifique de colonnes  |  Déplacer des colonnes  |  Basculer l’état de visibilité des colonnes masquées  |  Comparer les plages & colonnes ...
Fonctionnalités à la une : Mise au point de la grille   |  Affichage de conception   |   Barre de formule améliorée    Gestionnaire de classeur & de feuille de calcul   |  Bibliothèque dAutoTexte (Auto Text)   |  Sélecteur de date   |  Fusionner les données   |  Chiffrer/Déchiffrer les cellules    Envoyer un e-mail par liste   |  Super Filtre   |   Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...) ...
Top15 des ensembles d’outils12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...)   |   Plus de50 types de graphiques (Diagramme de Gantt, ...)   |   Plus de40 formules intelligentes (Calculer lâge en fonction de la date de naissance, ...)   |   19 outils dinsertion (Insérer un code QR, Insérer une image depuis le chemin, ...)   |  12 outils de conversion (Convertir en mots, Conversion de devises, ...)   |  7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...)   |   ... et bien plus encore
Utilisez Kutools dans votre langue préférée: compatible avec l’anglais, l’espagnol, l’allemand, le français, le chinois et plus de40 autres langues !

Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...


Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail

  • Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, au lieu d’ouvrir de nouvelles fenêtres.
  • Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!