Filtre et Macro

Le
Lepaic07
Bonjour,

J'ai placé des filtres automatiques dans un classeur.
Je voudrais continuer un macro si l'un d'entre "filtre"

Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
papou
Le #4444681
Bonjour
S'il s'agit de déclencher une macro dès qu'un filtre est activé, tu peux
utiliser l'évènement
Worksheet_Calculate
et tester la propriété Filtermode de la feuille qui doit renvoyer True si le
filtre est actif sur la feuille.
Cordialement
Pascal

"Lepaic07" news:
Bonjour,

J'ai placé des filtres automatiques dans un classeur.
Je voudrais continuer un macro si l'un d'entre "filtre"...

Merci d'avance


Lepaic07
Le #4444661
Non
Le but de la manoeuvre est de savoir si un filtre est actif avant de
continuer une macro,
La suite de la macro dépend si un filtre est "actif" ou non


Bonjour
S'il s'agit de déclencher une macro dès qu'un filtre est activé, tu peux
utiliser l'évènement
Worksheet_Calculate
et tester la propriété Filtermode de la feuille qui doit renvoyer True si le
filtre est actif sur la feuille.
Cordialement
Pascal

"Lepaic07" news:
Bonjour,

J'ai placé des filtres automatiques dans un classeur.
Je voudrais continuer un macro si l'un d'entre "filtre"...

Merci d'avance







papou
Le #4444641
Re
Dans ce cas propriété AutoFilterMode, ex:
If Worksheets("Feuil1").AutoFilterMode Then

Cordialement
Pascal

"Lepaic07" news:
Non
Le but de la manoeuvre est de savoir si un filtre est actif avant de
continuer une macro,
La suite de la macro dépend si un filtre est "actif" ou non


Bonjour
S'il s'agit de déclencher une macro dès qu'un filtre est activé, tu peux
utiliser l'évènement
Worksheet_Calculate
et tester la propriété Filtermode de la feuille qui doit renvoyer True si
le
filtre est actif sur la feuille.
Cordialement
Pascal

"Lepaic07" de
news:
Bonjour,

J'ai placé des filtres automatiques dans un classeur.
Je voudrais continuer un macro si l'un d'entre "filtre"...

Merci d'avance









Lepaic07
Le #4444621
Merci Papou mais
Ce n'est toujours pas ce que je cherches, mes filtes sont déjà présent sur
le classeur, je veux juste tester si l'un d'entre eu filtre ou non


Re
Dans ce cas propriété AutoFilterMode, ex:
If Worksheets("Feuil1").AutoFilterMode Then

Cordialement
Pascal

"Lepaic07" news:
Non
Le but de la manoeuvre est de savoir si un filtre est actif avant de
continuer une macro,
La suite de la macro dépend si un filtre est "actif" ou non


Bonjour
S'il s'agit de déclencher une macro dès qu'un filtre est activé, tu peux
utiliser l'évènement
Worksheet_Calculate
et tester la propriété Filtermode de la feuille qui doit renvoyer True si
le
filtre est actif sur la feuille.
Cordialement
Pascal

"Lepaic07" de
news:
Bonjour,

J'ai placé des filtres automatiques dans un classeur.
Je voudrais continuer un macro si l'un d'entre "filtre"...

Merci d'avance














papou
Le #4444591
Et bien c'est donc ma première réponse qui t'intéresse !
La propriété FilterMode prend la propriété True si la feuille est filtrée
(et qu'il y a donc par conséquent des lignes masquées).

Cordialement
Pascal

"Lepaic07" news:
Merci Papou mais
Ce n'est toujours pas ce que je cherches, mes filtes sont déjà présent sur
le classeur, je veux juste tester si l'un d'entre eu filtre ou non


Re
Dans ce cas propriété AutoFilterMode, ex:
If Worksheets("Feuil1").AutoFilterMode Then

Cordialement
Pascal

"Lepaic07" de
news:
Non
Le but de la manoeuvre est de savoir si un filtre est actif avant de
continuer une macro,
La suite de la macro dépend si un filtre est "actif" ou non


Bonjour
S'il s'agit de déclencher une macro dès qu'un filtre est activé, tu
peux
utiliser l'évènement
Worksheet_Calculate
et tester la propriété Filtermode de la feuille qui doit renvoyer True
si
le
filtre est actif sur la feuille.
Cordialement
Pascal

"Lepaic07" message
de
news:
Bonjour,

J'ai placé des filtres automatiques dans un classeur.
Je voudrais continuer un macro si l'un d'entre "filtre"...

Merci d'avance
















Lepaic07
Le #4444531
Le quiproquo viens du fais que tu as utilisé "des que" au lieu de "si" dans
ta première réponse, et déjà si l'explication n'est pas bonne, j'en déduis
que la macro n'est pas bonne...
et en programmation, la différence entre "des que" et "si" est grande !
Mais apres test, la macro fonctionne merci pour ton aide


Et bien c'est donc ma première réponse qui t'intéresse !
La propriété FilterMode prend la propriété True si la feuille est filtrée
(et qu'il y a donc par conséquent des lignes masquées).

Cordialement
Pascal

"Lepaic07" news:
Merci Papou mais
Ce n'est toujours pas ce que je cherches, mes filtes sont déjà présent sur
le classeur, je veux juste tester si l'un d'entre eu filtre ou non


Re
Dans ce cas propriété AutoFilterMode, ex:
If Worksheets("Feuil1").AutoFilterMode Then

Cordialement
Pascal

"Lepaic07" de
news:
Non
Le but de la manoeuvre est de savoir si un filtre est actif avant de
continuer une macro,
La suite de la macro dépend si un filtre est "actif" ou non


Bonjour
S'il s'agit de déclencher une macro dès qu'un filtre est activé, tu
peux
utiliser l'évènement
Worksheet_Calculate
et tester la propriété Filtermode de la feuille qui doit renvoyer True
si
le
filtre est actif sur la feuille.
Cordialement
Pascal

"Lepaic07" message
de
news:
Bonjour,

J'ai placé des filtres automatiques dans un classeur.
Je voudrais continuer un macro si l'un d'entre "filtre"...

Merci d'avance





















papou
Le #4444501
Oui excuse moi pour le manque de précision.
Je ne prétends pas maîtriser le langage de programmation VBA d'Excel.
Je ne le pratique humblement que depuis 9 ans et j'ai encore tellement de
choses à découvrir.

Cordialement
Pascal

"Lepaic07" news:
Le quiproquo viens du fais que tu as utilisé "des que" au lieu de "si"
dans
ta première réponse, et déjà si l'explication n'est pas bonne, j'en déduis
que la macro n'est pas bonne...
et en programmation, la différence entre "des que" et "si" est grande !
Mais apres test, la macro fonctionne merci pour ton aide


Et bien c'est donc ma première réponse qui t'intéresse !
La propriété FilterMode prend la propriété True si la feuille est filtrée
(et qu'il y a donc par conséquent des lignes masquées).

Cordialement
Pascal

"Lepaic07" de
news:
Merci Papou mais
Ce n'est toujours pas ce que je cherches, mes filtes sont déjà présent
sur
le classeur, je veux juste tester si l'un d'entre eu filtre ou non


Re
Dans ce cas propriété AutoFilterMode, ex:
If Worksheets("Feuil1").AutoFilterMode Then

Cordialement
Pascal

"Lepaic07" message
de
news:
Non
Le but de la manoeuvre est de savoir si un filtre est actif avant de
continuer une macro,
La suite de la macro dépend si un filtre est "actif" ou non


Bonjour
S'il s'agit de déclencher une macro dès qu'un filtre est activé, tu
peux
utiliser l'évènement
Worksheet_Calculate
et tester la propriété Filtermode de la feuille qui doit renvoyer
True
si
le
filtre est actif sur la feuille.
Cordialement
Pascal

"Lepaic07" message
de
news:
Bonjour,

J'ai placé des filtres automatiques dans un classeur.
Je voudrais continuer un macro si l'un d'entre "filtre"...

Merci d'avance























Lepaic07
Le #4443331
En complément à la première macro, est il possible de détecter si un filtre
ou un autre est actif, et si oui alors déployer le filtre ?
Merci d'avance...
AV
Le #4443121
Pour résumer ...

Savoir si un filtre est présent sur la feuille active :
If Not ActiveSheet.AutoFilter Is Nothing Then MsgBox "Un filtre a été créé sur
la feuille"

Savoir si un filtre est présent ET s'il y a des données filtrées :
If ActiveSheet.FilterMode Then MsgBox "Il y a des données filtrées "

AV
Lepaic07
Le #4443061
Et maintenant pur savoir Si un filtre est présent ET activé ET lequel ?
But de la manoeuvre, eviter de déployer un à un tout les filtres :
Voici ma macro actuelle, le but est d'ouvrir les filtres avant la
sauvegarde, mais vu comme ca ce n'est pas sélectif...

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)

If ActiveSheet.FilterMode = True Then
Answers = MsgBox("Voulez vous déployer les filtres avant
l'enregistrement ?" + Chr(10) + Chr(13) + "La procédure risque d'être
lente...", vbYesNo + vbExclamation)

'déploie TOUT les filtres avant la sauvegarde
If Answers = vbYes Then
Application.ScreenUpdating = False
For i = 1 To 30
Selection.AutoFilter Field:=i
Next
Application.ScreenUpdating = True
End If

End If


Pour résumer ...

Savoir si un filtre est présent sur la feuille active :
If Not ActiveSheet.AutoFilter Is Nothing Then MsgBox "Un filtre a été créé sur
la feuille"

Savoir si un filtre est présent ET s'il y a des données filtrées :
If ActiveSheet.FilterMode Then MsgBox "Il y a des données filtrées "

AV





Publicité
Poster une réponse
Anonyme