Accéder au contenu principal

Kutools for Office — Une Suite. Cinq Outils. Accomplissez Plus.

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

Author Xiaoyang Last modified

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évolutionnez l'analyse de données avec : 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 de Kutools
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons | Supprimer les lignes vides | Combinez les colonnes ou les cellules sans perte de données | Arrondir sans formule...
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 à sélection multiple...
Gestionnaire de colonnes : Ajouter un nombre spécifique de Colonnes | Déplacer des Colonnes | Alterner l’état de visibilité des Colonnes masquées | Comparer des plages & Colonnes...
Fonctionnalités phares : Mise au point de la grille | Affichage de conception | Barre de formule améliorée | Gestionnaire de Classeur & Feuille de calcul | Bibliothèque d’AutoTexte | Sélecteur de date | Merge Worksheets | 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’outils :12 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 bien plus encore
Utilisez Kutools dans la langue de votre choix – disponible en Anglais, Espagnol, Allemand, Français, Chinois et plus de40 autres !

Améliorez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité incomparable. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte l’interface par onglets à Office, simplifiant considérablement 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 chaque jour !

Tous les modules complémentaires Kutools. Une seule installation

La suite Kutools for Office regroupe les modules complémentaires pour Excel, Word, Outlook & PowerPoint ainsi qu’Office Tab Pro, idéal pour les équipes travaillant sur plusieurs applications Office.

Excel Word Outlook Tabs PowerPoint
  • Suite tout-en-un — modules complémentaires Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Un installateur, une licence — installation en quelques minutes (compatible MSI)
  • Une synergie optimale — productivité accélérée sur l’ensemble des applications Office
  • Essai complet30 jours — sans inscription, ni carte bancaire
  • Meilleure valeur — économisez par rapport à l’achat d’add-ins individuels