Détection filtre auto

criscris11

XLDnaute Accro
Bonsoir,
Existe t'il une instruction qui détecte l'événement filtre automatique ?
Le but serait de pouvoir masquer ou afficher une ligne si un filtre automatique est activé ?
Merci pour vos réponses.
 

vjoug

XLDnaute Junior
Re : Détection filtre auto

Edit . MJ13 est passé en mm tps.
Salut MJ13 et criscris11 tu as ta solution.
cordialement




Salut CRISCRIS11,

Je suis assez mauvais en VB alors je fonctionne souvent par des macros enregistrées.

J'ai crée un macro dans laquelle sur une feuille j'active le filtre auto ( Selection.Autofilter puis le filtre sur la colonne 4 je fais une opération ...

Peut être que faire un test de type selection.Autofliter = true ou machin chose ?

en espérant avoir pu t'aider

Cordialement

VJOUG


Sub test()
'
' test Macro
' Macro enregistrée le 10/04/2009 par Vincent
'

'
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:="n"
Range("F2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
Range("F4").Select
Selection.AutoFilter Field:=4
End Sub
 

criscris11

XLDnaute Accro
Re : Détection filtre auto

Re,
Je n'ai pas réussi à faire ce que je voulais alors je poste un petit fichier en espérant que cela soit faisable.
Merci.
 

Pièces jointes

  • Filtre auto.xls
    19.5 KB · Affichages: 59
  • Filtre auto.xls
    19.5 KB · Affichages: 61
  • Filtre auto.xls
    19.5 KB · Affichages: 58

ERIC S

XLDnaute Barbatruc
Re : Détection filtre auto

Bonsoir

pour le code, à essayer

If AutoFilterMode = True Then
Rows("1").Hidden = False
Rows("2").Hidden = True
Else
Rows("2").Hidden = False
Rows("1").Hidden = True
End If

après, la question est quand déclencher le code?
cela doit pouvoir se faire avec worksheet_calculate mais pour l'instant je ne vois pas comment piéger une sélection manuelle "données filtre..."

question subsidiaire, que veux tu faire avec tes lignes masquées ou démasquées?
 

criscris11

XLDnaute Accro
Re : Détection filtre auto

Bonjour à tous, salut Eric,
Justement c'est bien là la question : quand déclencher le code ? Et bien si l'un des filtres auto est activé justement et c'est bien là le problème à résoudre.
Question subsidiaire, que veux tu faire avec tes lignes masquées ou démasquées ? Eh bien, les deux lignes font des calculs différents : la première compte les données saisies dans la colonne sans les vides ou les 0 mais si je filtre la formule en ligne 1 peut pas compter uniquement les lignes filtrées.
A moins que l'on puisse modifier la formule pour arriver au même résultat.
En espérant avoir été assez concis dans mes explications.
Bon week-end et bonne chasse aux oeufs ;).
 

criscris11

XLDnaute Accro
Re : Détection filtre auto

Re à tous,
J'ai fouiné un peu sur le net et j'ai vu qu'on pouvait imbriquer les formules SOMMEPROD et SOUS.TOTAL mais je n'arrive pas à les combiner pour ce que je souhaite avoir dans le fichier posté précédemment.
Alors si quelqu'un saurait faire, pas de souci je laisse tomber une version VBA.
Merci d'avance et bonnes Pâques.
 

ERIC S

XLDnaute Barbatruc
Re : Détection filtre auto

bonjour
il faudrait mieux préciser ton besoin:

la formule ligne1 compte les lignes non vides et différentes de 0

en ligne 2 seulement les lignes non vides, non masquées

que veux-tu faire?

j'ai vu que tu as lancé un autre fil et que les idées fusent...
 
Dernière édition:

criscris11

XLDnaute Accro
Re : Détection filtre auto

Bonjour Eric, le fil,
Oui effectivement, le nouveau fil que j'ai ouvert a porté ses fruits : j'ai la solution.
Merci pour ton aide mais je crois que la difficulté exposé dans ce fil était de capter l'activation d'un filtre automatique et je ne crois que cela soit réalisable.
C'est pas grave dans un certain sens puisque les formules de Monique ont frappées encore une fois.
Bon lundi de Pâques à toi.
 

tora

XLDnaute Occasionnel
Re : Détection filtre auto

Slt

sais pas si sujet résolu bref une chtite possibilité par gestion d'erreur :

Function AutoF() As Boolean
On Error GoTo VERR
AutoF = True
sheets(1).cells(1,1).AutoFilter Field:=1, Criteria1:="1"
Exit Function
VERR: AutoF = False
End Function


selon ce qu'ont veut faire on sait si AutoF est activé ou non ...

if AutoF then / if Not Autof then .....

@+ ;)

PS :
à toi de voir ou modifier cette ligne ci
sheets(1).cells(1,1).AutoFilter Field:=1, Criteria1:="1"

PS2:
maintenant ça marche plus ... bizarre j'ai dù toucher qu qu chose qu'il fallait pas ...:mad:
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
352

Statistiques des forums

Discussions
311 720
Messages
2 081 924
Membres
101 841
dernier inscrit
ferid87