Masquer / afficher lignes sur plusieurs feuilles.

niepce26

XLDnaute Junior
Bonjour,

Je souhaite masquer et afficher des lignes dont le résultat est 0, pour cela j'utilise cette macro (merci le forum).
----------------------------------------------------------------------------------
Sub Macro1()
Application.ScreenUpdating = False
For i = Range("A65535").End(xlUp).Row To 1 Step -1
If Cells(i, 38).Value = 0 Then
Rows(i).Select
Selection.EntireRow.Hidden = True
End If
Next i
Application.ScreenUpdating = True
End Sub
Sub Macro2()


Macro2 Macro
Rows("1:65535").EntireRow.Hidden = False
End Sub
----------------------------------------------------------------------------------

Ces macros ne fonctionnent que sur la feuille où est installé le bouton, comment faut il faire pour que cette macro s'applique à la feuil2 puis à la feuil3 puis à la feuil5 dans un ordre définis sans concerner toutes les feuilles .

Merci de vos pistes.

Niepce26
 
G

Guest

Guest
Re : Masquer / afficher lignes sur plusieurs feuilles.

Bonjour,

Cela pourrait être quelque chose comme ceci.
Code:
Sub Macro1()
    Dim sh As Worksheet
    Application.ScreenUpdating = False
    For Each sh In Sheets(Array("Feuil2", "Feuil3", "Feuil5"))
        With sh
            For i = .Range("A65535").End(xlUp).Row To 1 Step -1
                .Rows(i).Hidden = .Cells(i, 38).Value = 0
            Next i
        End With
    Next
    Application.ScreenUpdating = True
End Sub

Si tu as beaucoup de lignes dans tes tableaux on peut accélérer la méthode

A+
 

niepce26

XLDnaute Junior
Re : Masquer / afficher lignes sur plusieurs feuilles.

Bonjour,

Merci Hasco, ta méthode me va à merveille. Je traite 5 feuilles de 1000 lignes chacune, cela prend 10 secondes.

Le principal c'est que sa fonctionne et sa fonctionne très bien...

Bonne soirée.

Niepce26
 

Staple1600

XLDnaute Barbatruc
Re : Masquer / afficher lignes sur plusieurs feuilles.

Bonsoir tout le monde

Pour le plaisir (et pour le varier) de croiser Hasco
Une autre voie avec l'AutoFilter
Code:
Sub t()
Dim s As Worksheet
For Each s In Worksheets
On Error Resume Next
s.AutoFilterMode = Not s.AutoFilterMode
s.Activate
With s
.[AL1].Resize(s.[AL65536].End(xlUp).Row).AutoFilter Field:=1, Criteria1:="<>0", Operator:=xlAnd
End With
Next
End Sub
 

Discussions similaires

Réponses
12
Affichages
289

Membres actuellement en ligne

Statistiques des forums

Discussions
312 845
Messages
2 092 770
Membres
105 531
dernier inscrit
Fidele Lebeni