Compter le nombre de ligne masquée ?

Le
sylvie.laurent82
Bonsoir,

Je traite un petit morceau de fichier,

j'ai besoin de vérifier que le filtre auto est enclenché sur la
feuille active, j'utilise donc:

If ActiveSheet.AutoFilterMode = False Then Exit Sub

'si non on sort,

Maintenant je pense qu'il faut vérifier le nombre de ligne masquée,
est si égale ou supérieur à 1 sur la feuille active alors faire le
traitement, sinon Exit sub !!

En fait si le mode filtre auto est enclenché, la macro se déroule m^me
si aucune ligne n'est masquée, alors je pense qu'il faut ajouter ce
test

Qu'en pensez vous ?

Je vous remercie d'avance et je reste attentive aux suggestion(s)

SylVBA
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #19313871
bonjour SylVBA,

x = Application.Subtotal(3, Range("A:A"))
y = Application.CountA(Range("A:A"))
LigneMasquées = y - x

isabelle

a écrit :
Bonsoir,

Je traite un petit morceau de fichier,

j'ai besoin de vérifier que le filtre auto est enclenché sur la
feuille active, j'utilise donc:

If ActiveSheet.AutoFilterMode = False Then Exit Sub

'si non on sort,

Maintenant je pense qu'il faut vérifier le nombre de ligne masquée,
est si égale ou supérieur à 1 sur la feuille active alors faire le
traitement, sinon Exit sub !!

En fait si le mode filtre auto est enclenché, la macro se déroule m^me
si aucune ligne n'est masquée, alors je pense qu'il faut ajouter ce
test

Qu'en pensez vous ?

Je vous remercie d'avance et je reste attentive aux suggestion(s)

SylVBA



sylvie.laurent82
Le #19313961
Merci Isabelle,

N'y a t'il pas une commande du type

msgbox ( nombre de ligne masquée de la feuille active .count)
??

Merci à vous,

SylVBA
MichDenis
Le #19313951
Bonjour Sylvie,

2 lignes de code :

Retourne vrai ou faux ...
x = worksheets("Feuil1").AutoFilterMode
Détermine si les boutons d'un filtre automatique sont présents dans la
feuille, et ce, même si un filtre est en place ou non.

Retourne vrai ou faux...
z = worksheets("Feuil1").FilterMode
selon qu'il y a un filtre appliqué sur la plage. Ici, un filtre doit être en
application sur les données. Cela est vrai pour un filtre automatique ou
élaboré.

Cependant, dans un filtre automatique, tu peux avoir un filtre en
application et que toutes les entrées répondent au critère ... par exemple
>0 , la conséquence est qu'il est possible pour un filtre automatique d'être
en application, mais n'avoir aucune ligne masquée, car toutes les lignes
répondent au critère du filtre. Dans ce cas, même si aucune ligne est
masquée, la ligne de code retourne True.
Dans le cas d'un filtre élaboré, s'il n'y a pas de lignes masquées résultat
de l'application du filtre, la ligne de code retourne False. En
conséquence,, pour un filtre élaboré, si les données ne sont pas filtrées
sur place, la ligne de code retournera toujours false car aucune ligne sera
masquée.

Et si tu préfères compter les lignes masquées, tu peux utiliser la fonction
Sous.Total().




discussion :

Bonsoir,

Je traite un petit morceau de fichier,

j'ai besoin de vérifier que le filtre auto est enclenché sur la
feuille active, j'utilise donc:

If ActiveSheet.AutoFilterMode = False Then Exit Sub

'si non on sort,

Maintenant je pense qu'il faut vérifier le nombre de ligne masquée,
est si égale ou supérieur à 1 sur la feuille active alors faire le
traitement, sinon Exit sub !!

En fait si le mode filtre auto est enclenché, la macro se déroule m^me
si aucune ligne n'est masquée, alors je pense qu'il faut ajouter ce
test

Qu'en pensez vous ?

Je vous remercie d'avance et je reste attentive aux suggestion(s)

SylVBA


MichDenis
Le #19314091
Bonjour Isabellle,

Qu'est-ce qui se passe, si un filtre est vraiment en application mais
que tous les enregistrements répondent au critère. Dans ce cas
aucune ligne sera masquée mais un filtre est quand même en
application. Non ? C'est ce pourquoi, je dis que cette approche
a une limite ... ! Bon, c'est selon ce que le demandeur recherche.




"isabelle" a écrit dans le message de groupe de discussion :

bonjour SylVBA,

x = Application.Subtotal(3, Range("A:A"))
y = Application.CountA(Range("A:A"))
LigneMasquées = y - x

isabelle

a écrit :
Bonsoir,

Je traite un petit morceau de fichier,

j'ai besoin de vérifier que le filtre auto est enclenché sur la
feuille active, j'utilise donc:

If ActiveSheet.AutoFilterMode = False Then Exit Sub

'si non on sort,

Maintenant je pense qu'il faut vérifier le nombre de ligne masquée,
est si égale ou supérieur à 1 sur la feuille active alors faire le
traitement, sinon Exit sub !!

En fait si le mode filtre auto est enclenché, la macro se déroule m^me
si aucune ligne n'est masquée, alors je pense qu'il faut ajouter ce
test

Qu'en pensez vous ?

Je vous remercie d'avance et je reste attentive aux suggestion(s)

SylVBA





isabelle
Le #19314191
bonjour SylVBA,

MsgBox Application.CountA(Range("A:A")) - Application.Subtotal(3,
Range("A:A"))

isabelle

a écrit :
Merci Isabelle,

N'y a t'il pas une commande du type

msgbox ( nombre de ligne masquée de la feuille active .count)
??

Merci à vous,

SylVBA





Excel
Le #19325171
Bonjour Sylvie,

De passage, que penses tu de cette idée:

Pour compter le nombre de ligne masquée :
msgbox Range("A:A").SpecialCells(xlCellTypeVisible).Count

Suivant ta demande:
"Maintenant je pense qu'il faut vérifier le nombre de ligne masquée,
est si égale ou supérieur à 1 sur la feuille active alors faire le
traitement, sinon Exit sub !! "

Si au moins une ligne masquée alors sortir de la procédure:
If ActiveSheet.Rows.Count > Range("A:A").SpecialCells
(xlCellTypeVisible).Count Then Exit Sub

Cela répond t'il à ta demande

Bonne lecture

Pat Rednef



On 11 mai, 23:40, isabelle wrote:
bonjour SylVBA,

MsgBox Application.CountA(Range("A:A")) - Application.Subtotal(3,
Range("A:A"))

isabelle

a écrit :



> Merci Isabelle,

> N'y a t'il pas une commande du type

> msgbox ( nombre de ligne masquée de la feuille active .count)
> ??

> Merci à vous,

> SylVBA- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Publicité
Poster une réponse
Anonyme