Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA : Masquer toutes les lignes sauf 3

  • Initiateur de la discussion Initiateur de la discussion cibleo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cibleo

XLDnaute Impliqué
Bonsoir le forum,

Le tableau présenté comporte 5040 lignes et j'aimerais par macro (pas d'événementielle) masquer toutes les lignes sauf 2.

2 cas se présentent :

1er cas : la cellule active se trouve entre la ligne 1 et 2520 ( la 1ère partie de mon tableau )
Devront rester visibles la ligne de la cellule active + celle située 2520 lignes plus bas.
Exemple : cellule active en ligne 100, seules les lignes 100 et 2620 devront rester visibles (100 + 2520)

2ème cas : la cellule active se trouve entre la ligne 2521 et 5040 ( la 2ème partie de mon tableau )
Devront rester visibles la ligne de la cellule active + celle située 2520 lignes plus haut.
Exemple : cellule active en ligne 3000, seules les lignes 3000 et 480 devront rester visibles. (3000 -2520)

Pouvez vous m'aider à résoudre ce petit problème 😱

Merci Cibleo
 

Pièces jointes

Re : VBA : Masquer toutes les lignes sauf 2

Bonsoir Cibleo,

Voici un code que tu peux utiliser pour répondre à ta demande :
VB:
Sub Masquer()
    Dim i
    i = ActiveCell.Row
    If i < 2521 Then
        If i > 1 Then
            Range("1:" & i - 1 & "," & i + 1 & ":" & 2519 + i & "," & 2521 + i & ":5040").EntireRow.Hidden = True
        Else
            Range("2:2520,2522:5040").EntireRow.Hidden = True
        End If
    ElseIf i < 5041 Then
        If i > 2521 Then
            Range("1:" & i - 2521 & "," & i - 2519 & ":" & i - 1 & "," & i + 1 & ":5040").EntireRow.Hidden = True
        Else
            Range("2:2520,2522:5040").EntireRow.Hidden = True
        End If
    End If
End Sub

A+
 
Re : VBA : Masquer toutes les lignes sauf 2

Bonsoir Fred0o et merci

C'est presque ça mais ça cloche dans les 2 cas suivants :
Quand je me place en ligne 2520 ou 5040 (soit les 2 extrémités) cela ne fonctionne pas.

Placé en 2520 ou 5040 seule la ligne 2520 est visible 😕 au lieu de 2520 et 5040

En complément j'aimerais que la ligne 1 soit toujours visible.
Cibleo
 
Dernière édition:
Re : VBA : Masquer toutes les lignes sauf 2

Bonjour cibleo,

Voici le code modifié :
VB:
Sub Masquer()
    Dim i
    i = ActiveCell.Row
    If i < 2521 Then
        If i > 2 Then
            If i = 2520 Then
                Range("2:2519,2521:5039").EntireRow.Hidden = True
            Else
                Range("2:" & i - 1 & "," & i + 1 & ":" & 2519 + i & "," & 2521 + i & ":5040").EntireRow.Hidden = True
            End If
        Else
            Range("3:2520,2522:5040").EntireRow.Hidden = True
        End If
    ElseIf i < 5041 Then
        If i > 2521 Then
            If i = 5040 Then
                Range("2:2519,2521:5039").EntireRow.Hidden = True
            Else
                Range("2:" & i - 2521 & "," & i - 2519 & ":" & i - 1 & "," & i + 1 & ":5040").EntireRow.Hidden = True
            End If
        Else
            Range("3:2520,2522:5040").EntireRow.Hidden = True
        End If
    End If
End Sub

A+
 
Re : VBA : Masquer toutes les lignes sauf 2

Bonjour à tous,
Bonjour Fred0o,

J'ai remis le fichier avec un bouton bascule (Afficher/Masquer) pour un dernier petit ajustement.

- Placé en ligne 1, seule la ligne 1 et 2521 doivent rester visibles, or la ligne 2 reste visible aussi. (c'est le seul cas ou 2 lignes doivent rester visibles)

- Placé en ligne 2, seules les lignes 1, 2 et 2522 doivent rester visibles mais c'est la ligne 2521 qui apparaît à la place de 2522.

Sinon c'est exactement le résultat souhaité.

Un dernier coup de pouce.
Merci Cibleo
 

Pièces jointes

Re : VBA : Masquer toutes les lignes sauf 2

Bonsoir cibleo,

Franchement, t'aurais bien pu essayer de faire la correction par toi même, cela t'aurais permis de progresser dans la compréhension du code. Surtout que ce n'était pas bien compliqué...

A+
 

Pièces jointes

Re : VBA : Masquer toutes les lignes sauf 3

Bonsoir Fred0o,

Je commençais à m'empêtrer au milieu de toutes ces conditions 🙁

Mille mercis, c'est parfait 🙂

Au plaisir Cibleo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
564
  • Question Question
XL 2019 Code VBA
Réponses
12
Affichages
939
F
Réponses
72
Affichages
7 K
FloASF63
F
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…