Masquer et afficher des lignes ou des colonnes, Excel VBA
Voici une explication détaillée et un exemple de code pour masquer et afficher des lignes ou des colonnes à l’aide de VBA dans Excel.
Objectif :
Nous allons écrire un code VBA qui permet de masquer et d’afficher des lignes ou des colonnes selon des critères spécifiques (par exemple, numéro de ligne/colonne ou conditions particulières). Le code comprendra des exemples pour :
- Masquer des lignes ou des colonnes spécifiques.
- Afficher des lignes ou des colonnes spécifiques.
- Utiliser une approche dynamique où le code identifie les lignes ou colonnes à masquer/afficher.
Exemple de code Excel VBA :
Étape 1 : Ouvrir l’éditeur VBA
Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA dans Excel.
Étape 2 : Insérer un module
Dans l’éditeur VBA, cliquez sur Insertion puis Module pour insérer un nouveau module.
Étape 3 : Ajouter le code VBA
Voici le code VBA pour masquer et afficher des lignes et des colonnes :
Sub MasquerAfficherLignesColonnes() ' Déclaration des variables Dim ws As Worksheet Dim ligneDebut As Long, ligneFin As Long Dim colDebut As Long, colFin As Long ' Définir la référence de la feuille (feuille active dans ce cas) Set ws = ThisWorkbook.ActiveSheet ' Masquer les lignes 3 à 5 ligneDebut = 3 ligneFin = 5 ws.Rows(ligneDebut & ":" & ligneFin).Hidden = True Debug.Print "Les lignes " & ligneDebut & " à " & ligneFin & " sont masquées." ' Afficher les lignes 3 à 5 ws.Rows(ligneDebut & ":" & ligneFin).Hidden = False Debug.Print "Les lignes " & ligneDebut & " à " & ligneFin & " sont affichées." ' Masquer les colonnes B à D (2e à 4e colonnes) colDebut = 2 colFin = 4 ws.Columns(colDebut & ":" & colFin).Hidden = True Debug.Print "Les colonnes " & colDebut & " à " & colFin & " sont masquées." ' Afficher les colonnes B à D ws.Columns(colDebut & ":" & colFin).Hidden = False Debug.Print "Les colonnes " & colDebut & " à " & colFin & " sont affichées." End Sub
Explication détaillée :
Examinons le code étape par étape.
1. Déclaration des variables :
Dim ws As Worksheet Dim ligneDebut As Long, ligneFin As Long Dim colDebut As Long, colFin As Long
- ws est une variable qui représente une feuille de travail (cela permet d’effectuer des actions sur une feuille spécifique).
- ligneDebut, ligneFin, colDebut et colFin sont des variables de type Long. Elles représentent les points de départ et de fin des lignes et colonnes que vous souhaitez masquer ou afficher.
2. Définir la feuille de travail :
Set ws = ThisWorkbook.ActiveSheet
- ThisWorkbook fait référence au classeur où le code est exécuté.
- ActiveSheet fait référence à la feuille active dans le classeur.
3. Masquer les lignes :
ws.Rows(ligneDebut & ":" & ligneFin).Hidden = True
ws.Rows(ligneDebut & ":" & ligneFin)
fait référence à une plage de lignes allant deligneDebut
àligneFin
.Hidden = True
permet de masquer ces lignes.
Par exemple, si ligneDebut = 3
et ligneFin = 5
, cela masquera les lignes 3, 4 et 5.
4. Afficher les lignes :
ws.Rows(ligneDebut & ":" & ligneFin).Hidden = False
- Cette ligne va afficher les lignes de
ligneDebut
àligneFin
en définissant la propriétéHidden
sur False.
5. Masquer les colonnes :
ws.Columns(colDebut & ":" & colFin).Hidden = True
ws.Columns(colDebut & ":" & colFin)
fait référence à une plage de colonnes allant de colDebut à colFin.Hidden = True
masque ces colonnes.
Par exemple, si colDebut = 2 et colFin = 4, cela masquera les colonnes B, C et D.
6. Afficher les colonnes :
ws.Columns(colDebut & ":" & colFin).Hidden = False
- Cette ligne affichera les colonnes de colDebut à colFin en définissant la propriété Hidden sur False.
7. Sortie de débogage :
Debug.Print "Les lignes " & ligneDebut & " à " & ligneFin & " sont masquées."
- La commande Debug.Print affiche un message dans la fenêtre Immediate de l’éditeur VBA, ce qui permet de vérifier les actions qui ont été réalisées (par exemple, si les lignes ou colonnes ont été masquées ou affichées).
Exécution du code :
Une fois que vous avez inséré le code dans le module, vous pouvez exécuter la macro MasquerAfficherLignesColonnes
en appuyant sur F5 dans l’éditeur VBA ou en l’assignant à un bouton ou un événement dans Excel.
Cas d’utilisation supplémentaires :
1. Masquer en fonction d’une condition : Vous pouvez également masquer ou afficher des lignes ou des colonnes en fonction d’une condition. Voici un exemple où nous masquons les lignes si la valeur dans la colonne A est inférieure à 5 :
Sub MasquerLignesCondition() Dim ws As Worksheet Dim ligne As Long Set ws = ThisWorkbook.ActiveSheet ' Boucle à travers chaque ligne de la feuille For ligne = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row If ws.Cells(ligne, 1).Value < 5 Then ws.Rows(ligne).Hidden = True End If Next ligne End Sub
Dans cet exemple, toute ligne ayant une valeur inférieure à 5 dans la colonne A sera masquée.
2. Masquer ou afficher en fonction de l’entrée de l’utilisateur : Vous pouvez demander à l’utilisateur d’entrer quel numéro de ligne ou de colonne masquer ou afficher. Voici un exemple :
Sub MasquerLigneParSaisieUtilisateur() Dim ws As Worksheet Dim numLigne As Long Dim saisieUtilisateur As String Set ws = ThisWorkbook.ActiveSheet ' Demander à l'utilisateur le numéro de ligne à masquer saisieUtilisateur = InputBox("Entrez le numéro de la ligne à masquer :") numLigne = CLng(saisieUtilisateur) ' Masquer la ligne spécifiée par l'utilisateur ws.Rows(numLigne).Hidden = True MsgBox "La ligne " & numLigne & " a été masquée." End Sub
Conclusion :
Cet exemple vous donne un aperçu détaillé de la manière de masquer et d’afficher des lignes et des colonnes dans Excel à l’aide de VBA. Vous pouvez personnaliser ce code pour diverses situations, telles que masquer/afficher des lignes ou des colonnes de manière dynamique en fonction de conditions spécifiques ou de l’entrée de l’utilisateur. Les concepts clés sont la manipulation des propriétés Rows et Columns et l’utilisation de la propriété Hidden pour masquer ou afficher.