OVH Cloud OVH Cloud

Problème de décompte de lignes visibles

2 réponses
Avatar
Lycaon
Bonjour =E0 tous,

Voil=E0 un petit test que j'ai =E9crit :

Sub test3()
Dim L As Long
Dim C As Long

L =3D
ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Rows.Count
C =3D
ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Columns.Count

End Sub

Il me retourne toujours un nombre de lignes =E9gal =E0 1 sauf quand je
fais un ShowAll sur ma feuille, auquel cas il renvoie une valeur
erronn=E9e (595 au lieu de 660).
Est ce qu'il ne compte que les lignes compl=E8tes ? Est ce qu'une
cellule dans une ligne suffit =E0 lui faire compatbiliser la ligne ?

De plus, j'ai beaucoup de probl=E8mes pour adapter la macro que j'ai
=E9crite pour un fichier comportant un filtre. Comment descendre le long
d'une colonne mais seulement sur les cellules visibles par exemple ?

Merci pour votre aide,

Lycaon

2 réponses

Avatar
Garette
Bonjour,

J'ai l'impression que le problème est lié au zone disconinues générées par
le filtre.
Sub test3()
X = 0
For Each MaZone In
ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Areas
X = MaZone.Rows.Count + X
Next
MsgBox X - 1 'Il faut enlever 1 car la macro compte la ligne d'entetes

MsgBox
ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Range.Columns.Count

End Sub

Pour les colonnes la manipulation est plus simple.
Avatar
papou
Bonjour
Dans le cas d'un filtre appilqué sur une plage de données, voici ce que
j'utilise pour déterminer la dernière ligne :
DerLig = Range("A" &
[A2:A65536].SpecialCells(xlCellTypeVisible).Row).End(xlDown).Row

Cordialement
Pascal

"Lycaon" a écrit dans le message de news:

Bonjour à tous,


Sub test3()
Dim L As Long
Dim C As Long

L ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Rows.Count
C ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Columns.Count

End Sub

Il me retourne toujours un nombre de lignes égal à 1 sauf quand je
fais un ShowAll sur ma feuille, auquel cas il renvoie une valeur
erronnée (595 au lieu de 660).
Est ce qu'il ne compte que les lignes complètes ? Est ce qu'une
cellule dans une ligne suffit à lui faire compatbiliser la ligne ?

De plus, j'ai beaucoup de problèmes pour adapter la macro que j'ai
écrite pour un fichier comportant un filtre. Comment descendre le long
d'une colonne mais seulement sur les cellules visibles par exemple ?

Merci pour votre aide,

Lycaon