XL 2016 Macro, ne pas imprimer les lignes suivant une valeur

cardi

XLDnaute Junior
Bonjour,

J'ai trouvé une macro pour ne pas imprimer les lignes vide :

VB:
Sub ImprimeSansVide()

Dim Plage As Range
On Error Resume Next
Application.ScreenUpdating = False
  With ActiveSheet
    Set Plage = .Range("B1:B1002").Cells.SpecialCells(xlCellTypeBlanks)
      If Not Plage Is Nothing Then Plage.Rows.Hidden = True
    .PrintPreview 'pour voir sans imprimer
    '.PrintOut ' pour imprimer directement
    .Rows.Hidden = False
  End With
End Sub

J'aimerai modifier ce code pour que si dans la colonne B, on a la valeur 1, on imprime la ligne, si la valeur est = 0, on n'imprime pas la ligne.

Que faudrait-il modifier pour cela?

Merci d'avance,

Cardi
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Cardi, bonjour le forum,

Essaie comme ça :

VB:
Sub ImprimeSansVide()
Dim Plage As Range
Dim CEL As Range

Application.ScreenUpdating = False
With ActiveSheet
    Set Plage = .Range("B1:B1002")
    For Each CEL In Plage
        If CEL.Value = 0 Then Rows(CEL.Row).Hidden = True
     Next CEL
     .PrintPreview 'pour voir sans imprimer
        '.PrintOut ' pour imprimer directement
    .Rows.Hidden = False
End With
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re,

À mon avis il bloque pas mais il est très long à s'exécuter car il travaille cellule après cellule sur 1002 lignes... Laisse le tourner un jour ou deux :p puis tu vois... Je t'avoue que je n'ai pas testé, j'ai juste retravaillé ton code.

[Édition]
Testé. Ça marche chez moi en quelques secondes (<3)
 

Discussions similaires

Réponses
6
Affichages
129
Réponses
2
Affichages
142

Statistiques des forums

Discussions
312 145
Messages
2 085 762
Membres
102 966
dernier inscrit
InitialPP