Comment masquer des colonnes en temps réel en fonction de la saisie utilisateur dans Excel ?
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
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.
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
- Case "AA": Columns("A").EntireColumn.Hidden = False
- Columns("A").EntireColumn.Hidden = True
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 :
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
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
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 !