OVH Cloud OVH Cloud

Je relance (ScrollArea), excusez mon impolitesse......

3 réponses
Avatar
Stéphan DuQuébec
Bonjour à vous tous,

Je sais que ce n'est pas bien vu, mais je me permets de relancer ma ficelle
qui est demeurée sans réponse il y a 2 jours.....

J'ai une macro qui limite la navigation (Scroll) dans ma feuille (voir
ci-bas). Elle s'adapte, en longueur, au fur et à mesure que des lignes sont
saisies par l'utilisateur. Elle fonctionne à merveille jusqu'à ce que
l'utilisateur se serve des filtres automatiques.

À ce moment, il n'y a plus de navigation (Scroll) possible. L'utilisateur
demeure pris avec un écran figé sans possibilité de défiler sur des lignes
qui se trouvent plus en bas de ce qu'il a à l'écran.

Y a-t-il un événement quelconque qui puisse détecter l'activation d'un
filtre automatique ? Pourrais-je m'en sortir d'une quelconque façon ??

Merci.

-_-_-_-_-_-_-_-_

With Worksheets("Cumulatif 2006")
.ScrollArea = .Range(.[A26], _
.[A65536].End(3)(4).Offset(0, 30)).Address
End With

3 réponses

Avatar
michdenis
Bonjour Stéphan,

| Y a-t-il un événement quelconque qui puisse détecter l'activation d'un
| filtre automatique ?

Si tu exécutes cette procédure, elle va te dire si tu as un filtre automatique
en opération dans la feuille :

'-------------------------
Sub Test()
With worksheets("Feuil1")
If .FilterMode Then
MsgBox "un filtre auto est actuellement en place."
End If
End with
'-------------------------


Salutations!



"Stéphan DuQuébec" a écrit dans le message de news:

Bonjour à vous tous,

Je sais que ce n'est pas bien vu, mais je me permets de relancer ma ficelle
qui est demeurée sans réponse il y a 2 jours.....

J'ai une macro qui limite la navigation (Scroll) dans ma feuille (voir
ci-bas). Elle s'adapte, en longueur, au fur et à mesure que des lignes sont
saisies par l'utilisateur. Elle fonctionne à merveille jusqu'à ce que
l'utilisateur se serve des filtres automatiques.

À ce moment, il n'y a plus de navigation (Scroll) possible. L'utilisateur
demeure pris avec un écran figé sans possibilité de défiler sur des lignes
qui se trouvent plus en bas de ce qu'il a à l'écran.

Y a-t-il un événement quelconque qui puisse détecter l'activation d'un
filtre automatique ? Pourrais-je m'en sortir d'une quelconque façon ??

Merci.

-_-_-_-_-_-_-_-_

With Worksheets("Cumulatif 2006")
.ScrollArea = .Range(.[A26], _
.[A65536].End(3)(4).Offset(0, 30)).Address
End With
Avatar
AV
| Y a-t-il un événement quelconque qui puisse détecter l'activation d'un
| filtre automatique ? Pourrais-je m'en sortir d'une quelconque façon ??

Il n'y en a pas directement d'évènement capable de gérer mais tu peux te servir,
indirectement, de l'évènement Calculate d'une feuille

Exemple : Tes données sont en "Feuil1" A1:Cxxxx

En A1 de "Feuil2" (feuille qui ne doit servir qu'à ça et à masquer ensuite) :
=SOUS.TOTAL(3;Feuil1!A:A)

Dans le module de "Feuil2" :
Private Sub Worksheet_Calculate()
maMacro
End Sub

Dans un module ordinaire quelconque (ou dans le module de "Feuil2") :
Sub maMacro()
If [Counta(Feuil1!A:A)] > [Feuil2!A1] Then
MsgBox "Filtre mis !"
Else: MsgBox "Filtre enlevé !"
End If
End Sub

AV
Avatar
Stéphan DuQuébec
Merci à vous 2 messieurs.

Ce sont de moyens "détournés" mais qui me seront tout de même utiles.

Merci !


| Y a-t-il un événement quelconque qui puisse détecter l'activation d'un
| filtre automatique ? Pourrais-je m'en sortir d'une quelconque façon ??

Il n'y en a pas directement d'évènement capable de gérer mais tu peux te servir,
indirectement, de l'évènement Calculate d'une feuille

Exemple : Tes données sont en "Feuil1" A1:Cxxxx

En A1 de "Feuil2" (feuille qui ne doit servir qu'à ça et à masquer ensuite) :
=SOUS.TOTAL(3;Feuil1!A:A)

Dans le module de "Feuil2" :
Private Sub Worksheet_Calculate()
maMacro
End Sub

Dans un module ordinaire quelconque (ou dans le module de "Feuil2") :
Sub maMacro()
If [Counta(Feuil1!A:A)] > [Feuil2!A1] Then
MsgBox "Filtre mis !"
Else: MsgBox "Filtre enlevé !"
End If
End Sub

AV