j'ai besoin de savoir si un filtre automatique est appliqué à mes données.
Avec ActiveSheet.FilterMode j'arrive à savoir si le tableau est filtré ou
non. Mais moi, ce que je veux savoir c'est si la fonctionalité "Filtre
automatique" est en place.
Pourquoi : je veux enlever le filtre existant s'il existe et le remettre
dans tous les cas afin d'éviter que le filtre ne s'applique pas à toutes
les colonnes du tableau (colonne ajoutée à gauche ou à droite du
tableau déjà filtré).
Avec Selection.AutoFilter, j'enlève le filtre s'il existe et je le remets
s'il n'existe pas. Mais comme je ne connais pas l'état de départ, je
ne sais pas si je dois faire Selection.AutoFilter 1x ou 2x.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Si tu veux savoir si les boutons d'un filtre automatique apparaissent sur une feuille de calcul, tu peux utiliser l'une des 2 procédures. Mais celles-ci ne peuvent distinguer si un filtre est en application (une plage filtrée) sur la feuille... détecte seulement la présence des boutons automatiques du filtre.
*************Méthode 1 ************ Sub PrésenceDesBoutonsDuFiltreOuNon()
With Worksheets("Feuil5") If .AutoFilterMode Then MsgBox "Filtre auto. en application." Else MsgBox "Aucun filtre auto. en application." End If End With
End Sub
*************Méthode 2 ************ Sub PrésenceDesBoutonsDuFiltreOuNon()
Dim Rg As Range On Error Resume Next Set Rg = Worksheets("Feuil5").AutoFilter.Range If Err <> 0 Then Err = 0 MsgBox "Les boutons du filtre auto ne sont " & _ "pas affichés dans la feuille" Else MsgBox "boutons du filtre auto. présents dans la feuille" End If
Set Rg = Nothing End sub
************************************
Si tu veux savoir si une plage de cellule de la feuille 1 est présentement appliqué (plage filtrée), tu peux utiliser cette procédure. Tu peux même identifier la colonne (ou les colonnes`) où le filtre est en application. '--------------------------- Sub test() If Feuil1.FilterMode Then MsgBox "Des enregistrements sont filtrés" Else MsgBox "Aucun enregistrement filtré" End If End Sub '---------------------------
"Jac" a écrit dans le message de news: Bonjour à tous,
j'ai besoin de savoir si un filtre automatique est appliqué à mes données. Avec ActiveSheet.FilterMode j'arrive à savoir si le tableau est filtré ou non. Mais moi, ce que je veux savoir c'est si la fonctionalité "Filtre automatique" est en place.
Pourquoi : je veux enlever le filtre existant s'il existe et le remettre dans tous les cas afin d'éviter que le filtre ne s'applique pas à toutes les colonnes du tableau (colonne ajoutée à gauche ou à droite du tableau déjà filtré).
Avec Selection.AutoFilter, j'enlève le filtre s'il existe et je le remets s'il n'existe pas. Mais comme je ne connais pas l'état de départ, je ne sais pas si je dois faire Selection.AutoFilter 1x ou 2x.
Merci d'avance à qui me mettra sur la voie.
Jac
Si tu veux savoir si les boutons d'un filtre automatique apparaissent
sur une feuille de calcul, tu peux utiliser l'une
des 2 procédures. Mais celles-ci ne peuvent distinguer
si un filtre est en application (une plage filtrée) sur la
feuille... détecte seulement la présence des boutons automatiques du filtre.
*************Méthode 1 ************
Sub PrésenceDesBoutonsDuFiltreOuNon()
With Worksheets("Feuil5")
If .AutoFilterMode Then
MsgBox "Filtre auto. en application."
Else
MsgBox "Aucun filtre auto. en application."
End If
End With
End Sub
*************Méthode 2 ************
Sub PrésenceDesBoutonsDuFiltreOuNon()
Dim Rg As Range
On Error Resume Next
Set Rg = Worksheets("Feuil5").AutoFilter.Range
If Err <> 0 Then
Err = 0
MsgBox "Les boutons du filtre auto ne sont " & _
"pas affichés dans la feuille"
Else
MsgBox "boutons du filtre auto. présents dans la feuille"
End If
Set Rg = Nothing
End sub
************************************
Si tu veux savoir si une plage de cellule de la feuille 1
est présentement appliqué (plage filtrée), tu peux utiliser
cette procédure. Tu peux même identifier la colonne
(ou les colonnes`) où le filtre est en application.
'---------------------------
Sub test()
If Feuil1.FilterMode Then
MsgBox "Des enregistrements sont filtrés"
Else
MsgBox "Aucun enregistrement filtré"
End If
End Sub
'---------------------------
"Jac" <Jsansp@mfra.net> a écrit dans le message de news: O1NKy6hBIHA.4476@TK2MSFTNGP06.phx.gbl...
Bonjour à tous,
j'ai besoin de savoir si un filtre automatique est appliqué à mes données.
Avec ActiveSheet.FilterMode j'arrive à savoir si le tableau est filtré ou
non. Mais moi, ce que je veux savoir c'est si la fonctionalité "Filtre
automatique" est en place.
Pourquoi : je veux enlever le filtre existant s'il existe et le remettre
dans tous les cas afin d'éviter que le filtre ne s'applique pas à toutes
les colonnes du tableau (colonne ajoutée à gauche ou à droite du
tableau déjà filtré).
Avec Selection.AutoFilter, j'enlève le filtre s'il existe et je le remets
s'il n'existe pas. Mais comme je ne connais pas l'état de départ, je
ne sais pas si je dois faire Selection.AutoFilter 1x ou 2x.
Si tu veux savoir si les boutons d'un filtre automatique apparaissent sur une feuille de calcul, tu peux utiliser l'une des 2 procédures. Mais celles-ci ne peuvent distinguer si un filtre est en application (une plage filtrée) sur la feuille... détecte seulement la présence des boutons automatiques du filtre.
*************Méthode 1 ************ Sub PrésenceDesBoutonsDuFiltreOuNon()
With Worksheets("Feuil5") If .AutoFilterMode Then MsgBox "Filtre auto. en application." Else MsgBox "Aucun filtre auto. en application." End If End With
End Sub
*************Méthode 2 ************ Sub PrésenceDesBoutonsDuFiltreOuNon()
Dim Rg As Range On Error Resume Next Set Rg = Worksheets("Feuil5").AutoFilter.Range If Err <> 0 Then Err = 0 MsgBox "Les boutons du filtre auto ne sont " & _ "pas affichés dans la feuille" Else MsgBox "boutons du filtre auto. présents dans la feuille" End If
Set Rg = Nothing End sub
************************************
Si tu veux savoir si une plage de cellule de la feuille 1 est présentement appliqué (plage filtrée), tu peux utiliser cette procédure. Tu peux même identifier la colonne (ou les colonnes`) où le filtre est en application. '--------------------------- Sub test() If Feuil1.FilterMode Then MsgBox "Des enregistrements sont filtrés" Else MsgBox "Aucun enregistrement filtré" End If End Sub '---------------------------
"Jac" a écrit dans le message de news: Bonjour à tous,
j'ai besoin de savoir si un filtre automatique est appliqué à mes données. Avec ActiveSheet.FilterMode j'arrive à savoir si le tableau est filtré ou non. Mais moi, ce que je veux savoir c'est si la fonctionalité "Filtre automatique" est en place.
Pourquoi : je veux enlever le filtre existant s'il existe et le remettre dans tous les cas afin d'éviter que le filtre ne s'applique pas à toutes les colonnes du tableau (colonne ajoutée à gauche ou à droite du tableau déjà filtré).
Avec Selection.AutoFilter, j'enlève le filtre s'il existe et je le remets s'il n'existe pas. Mais comme je ne connais pas l'état de départ, je ne sais pas si je dois faire Selection.AutoFilter 1x ou 2x.