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-05-27

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é pour Office

🤖 Kutools AI Aide : Révolutionner l'analyse des données basée sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les Fonctions améliorées
Fonctionnalités populaires : Trouver, mise en évidence ou marquer les doublons   |  Supprimer les lignes vides   |  Consolider les colonnes ou les cellules sans perdre de données   |   Arrondir sans formule ...
Super RECHERCHEV : RECHERCHEV avec critères multiples    RECHERCHEV avec valeurs multiples  |   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 multi-sélection ....
Gestionnaire de colonnes : Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages & colonnes ...
Fonctionnalités en vedette : Mise au point de la grille   |  Affichage de conception   |   Barre de formule améliorée    Gestionnaire de classeur & feuille de calcul   |  Bibliothèque dAutoTexte (Auto Text)   |  Sélecteur de date   |  Fusionner les données   |  Crypter/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 ensembles d'outils12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...)   |   50+ types de graphiques (Diagramme de Gantt, ...)   |   40+ formules pratiques (Calculer lâge en fonction de la date de naissance, ...)   |   19 outils d'insertion (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 plus

Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


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, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !