Masquer des lignes

bonjour

ci joint le code pour pour me masquer les lignes dont la colonne I est vide sa fonctionne sauf que quand je mais quelque chose dans la colonne I par exemple un chiffre il m'affiche bien la ligne sauf que si je veut mettre un X la sa ne fonctionne pas ??

merci

Option Explicit

Private Sub Imprimer()
  Dim rw As Long
  Dim rng As Range
  Dim rng1 As Range
  Dim cell As Range

  Application.ScreenUpdating = False

  ' Définir la plage qui doit être testée ...
  Set rng1 = ActiveSheet.Range("I13:J54")
  ' Définir la plage Globale...
  Set rng = ActiveSheet.Range("A1:I55")

  ' Tester que les lignes soient vides dans les Colonnes I , J
  ' pour temporairement les masquer ...
    With rng.Columns(9)
        For Each cell In rng
          If Not Intersect(cell, rng1) Is Nothing Then
                If Application.WorksheetFunction.Sum( _
               .Parent.Cells(cell.Row, 1).Range("I1:J1")) = 0 Then _
               .Parent.Rows(cell.Row).Hidden = True
          End If
        Next cell
        ' Imprimer la Plagecompte tenu du test précédent
        ActiveSheet.PageSetup.CenterHorizontally = True
        ActiveSheet.PageSetup.CenterVertically = False
         .Parent.PrintPreview
        ' Retirer le masque des lignes
        .EntireRow.Hidden = False
    End With

  Application.ScreenUpdating = True

End Sub

Bonjour,

Vous utilisez la WorksheetFunction.Sum (SOMME) qui ne prend en compte que les valeurs numériques.

Pour compter les cellules qui contiennent quelque chose, utilisez plutôt la WorksheetFunction.CountA (NBVAL)

A+

merci sa fonctionne.

Rechercher des sujets similaires à "masquer lignes"