Masquer des lignes lorsque elles sont vides

  • Initiateur de la discussion Initiateur de la discussion Clem
  • 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 !

Clem

XLDnaute Nouveau
Bonjour tout le monde !

Je cherche comment masquer les lignes d'un tableau automatiquement lorsque certaines cellules lui appartenant sont vides. Les cellules en question comportent des formules qui font apparaître ou non un résultat. Le tableau étant grand, je cherche à masquer toutes les lignes ne comportant pas de résultat afin de rendre plus visible le tableau. Il doit y avoir une macro qui permetten ça mais je ne maoitrise pas très bien VBA... Quelqu'un pourrait-il me guider ? Merci d'avance !
 
Bonjour Clem, le Forum

Si par exemple tu dois vérifier les cellules dans la colonne 'B' qui seraient vides, auquel cas on masque la ligne, voici ce qu'il te faut :

Option Explicit

Sub CacheCacheRows()
Dim Cell As Range
Dim Plage As Range

   
With Sheets('NomDeTaFeuille')
       
Set Plage = .Range('B1:B' & .Range('B35000').End(xlUp).Row)
       
           
For Each Cell In Plage
               
If Cell = '' Then
                    .Rows(Cell.Row).Hidden =
True
               
End If
           
Next
   
   
End With
End Sub


Si par contre tu veux vérifier que les cellules Vides soient (par exemple) en colonne 'A' ET 'D' ET 'G' (etc) tu peux t'y prendre comme ceci :

Sub CacheCacheRows()
Dim Cell As Range
Dim Plage As Range
Dim TempConcatenation As String

   
With Sheets('NomDeTaFeuille')
       
Set Plage = .Range('A1:A' & .Range('A35000').End(xlUp).Row)
       
           
For Each Cell In Plage
            TempConcatenation = Cell & Cell.Offset(0, 3) & Cell.Offset(0, 6)
               
If TempConcatenation = '' Then
                    .Rows(Cell.Row).Hidden =
True
               
End If
           
Next
   
   
End With
End Sub


Pour tout remettre en ordre :

Sub PlusCacheCache()
Sheets('NomDeTaFeuille').Rows.Hidden =
False
End Sub


Bon Appétit
@+Thierry


EDITION !!!

Je viens de me rendre compte que tu parlais de formules, alors si ces formules retournent '0' ce n'est pas 'rien' tu dois tester comme ceci :

Sub CacheCacheRows()
Dim Cell As Range
Dim Plage As Range

   
With Sheets('NomDeTaFeuille')
       
Set Plage = .Range('B1:B' & .Range('B35000').End(xlUp).Row)
       
           
For Each Cell In Plage
               
If Cell = 0 Then
                    .Rows(Cell.Row).Hidden =
True
               
End If
           
Next
   
   
End With
End Sub

Message édité par: _Thierry, à: 14/07/2005 13:06
 
- 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

Retour