Masquer des cellules automatiquement

Fermé
steph - 1 févr. 2013 à 08:37
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 - 1 févr. 2013 à 14:23
Bonjour tout le monde,

Je suis bloque sur quelque chose de tres simple, j'ai besoin de votre aide. Dans la colonne F de mon classeur, j'ai des donnees par exemple de la ligne 13 a 25, puis la case 26 vide, puis des donnees a nouveau etc.
Je souhaite simplement parcourir la colonne F et masquer toutes les lignes pour lesquelles la cellule est non-vide. Seulement si je fais ca ligne par ligne, etant donne qu'il y en a 10 000, la macro est longue et fait planter mon ordi.
Donc j'ai ecrit le texte ci-dessous mais il ne marche pas:

Sub hiderows()
For k = 11 To Worksheets("Output").[C1048576].End(xlUp).Row
If ActiveSheet.Range("F" & k) <> Empty Then

With Worksheets("Output")
j = k
CelDep = j
CelFin = .Columns("F").Find("", .Cells(CelDep, "F"), , xlPart).Row
ActiveSheet.Range("F" & j & ":" & "F" & CelFin).Select
End With

Selection.EntireRow.Hidden = True
End If
Next k
End Sub

Pourriez-vous m'aider a comprendre ce qui ne va pas ?

Merci mille fois !

1 réponse

f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
1 févr. 2013 à 14:23
Bonjour,

'Code inspire du code a Jacques33
'http://forum.excel-pratique.com/excel/selection-de-cellules-non-vides-t28649.html
Sub hiddenrows()
  Dim P1 As Range
  Dim P2 As Range

  On Error Resume Next
   With Worksheets("Output")
      'derniere ligne colonne F
      derlig = Range("F" & Rows.Count).End(xlUp).Row
      'Defintions plages cellules nonvides type constantes et formules (si besoin)
      Set P1 = .Range("F11:F" & derlig).SpecialCells(xlCellTypeConstants, derlig)
      Set P2 = .Range("F11:F" & derlig).SpecialCells(xlCellTypeFormulas, derlig)
      On Error GoTo 0
      If Not P1 Is Nothing And Not P2 Is Nothing Then
        'masque le lignes dont les cellules F contiennent des constantes ou des fomules
        Union(P1, P2).EntireRow.Hidden = True
      ElseIf Not P1 Is Nothing Then
        'masque le lignes dont les cellules F contiennent des constantes
        P1.EntireRow.Hidden = True
      ElseIf Not P2 Is Nothing Then
        'masque le lignes dont les cellules F contiennent des fomules
        P2.EntireRow.Hidden = True
      End If
   End With

End Sub


Bonne suite
0