Masquer et afficher des lignes ou des colonnes, Excel VBA

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 de ligneDebut à 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.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x