Je voudrais une macro qui remettrait les critères de tous les filtres automatiques du classeur à "Tous"
J'ai essayé avec "ActiveSheet.ShowAllData" mais elle échoue si les filtres sont déjà à "Tous" dans la feuille.
En fait je voudrais dire à Excel, si un filtre n'est pas à "Tous" quelques parts dans le fichier, va le remettre à "Tous".
Pouvez-vous me venir en aide ? Merci ! Merci ! et encore Merci !
MichD
Bonjour,
Essaie ceci :
2 commandes possibles selon ce que tu désires faire!
'------------------------------------------- Sub test() Dim Sh As Worksheet For Each Sh In Worksheets If Sh.AutoFilterMode = True Then 'Cette commande affiche toutes les 'données mais maintient les boutons 'du filtre automatique visible 'Sh.ShowAllData 'enlève l'apostrophe pour l'activer 'OU 'Cette commande annule tout le filtre 'et supprimer les boutons du filtre Sh.Range("_FilterDataBase").AutoFilter End If Next End Sub '-------------------------------------------
2 commandes possibles selon ce que tu désires faire!
'-------------------------------------------
Sub test()
Dim Sh As Worksheet
For Each Sh In Worksheets
If Sh.AutoFilterMode = True Then
'Cette commande affiche toutes les
'données mais maintient les boutons
'du filtre automatique visible
'Sh.ShowAllData 'enlève l'apostrophe pour l'activer
'OU
'Cette commande annule tout le filtre
'et supprimer les boutons du filtre
Sh.Range("_FilterDataBase").AutoFilter
End If
Next
End Sub
'-------------------------------------------
2 commandes possibles selon ce que tu désires faire!
'------------------------------------------- Sub test() Dim Sh As Worksheet For Each Sh In Worksheets If Sh.AutoFilterMode = True Then 'Cette commande affiche toutes les 'données mais maintient les boutons 'du filtre automatique visible 'Sh.ShowAllData 'enlève l'apostrophe pour l'activer 'OU 'Cette commande annule tout le filtre 'et supprimer les boutons du filtre Sh.Range("_FilterDataBase").AutoFilter End If Next End Sub '-------------------------------------------
A ) Si tu veux faire disparaître les filtres et les boutons du filtre automatique, utilise ceci: '------------------------------------------------- Sub test() Dim Sh As Worksheet For Each Sh In Worksheets If Sh.AutoFilterMode = True Then Sh.Range("_FilterDataBase").AutoFilter End If Next End Sub '-------------------------------------------------
B ) Si tu veux, simplement annuler le filtre, mais en conservant les boutons du filtre automatique, utilise cela : '------------------------------------------------- Sub test1() Dim Sh As Worksheet For Each Sh In Worksheets If Sh.FilterMode = True Then Sh.ShowAllData Sh.Range("_FilterDataBase").AutoFilter End If Next End Sub '-------------------------------------------------
Dans le message précédent, si tu utilises la ligne de code sh.showAllData , tu dois ajouter en début procédure On Error Resume next
A ) Si tu veux faire disparaître les filtres et les boutons
du filtre automatique, utilise ceci:
'-------------------------------------------------
Sub test()
Dim Sh As Worksheet
For Each Sh In Worksheets
If Sh.AutoFilterMode = True Then
Sh.Range("_FilterDataBase").AutoFilter
End If
Next
End Sub
'-------------------------------------------------
B ) Si tu veux, simplement annuler le filtre, mais en conservant
les boutons du filtre automatique, utilise cela :
'-------------------------------------------------
Sub test1()
Dim Sh As Worksheet
For Each Sh In Worksheets
If Sh.FilterMode = True Then
Sh.ShowAllData
Sh.Range("_FilterDataBase").AutoFilter
End If
Next
End Sub
'-------------------------------------------------
Dans le message précédent, si tu utilises la ligne de code
sh.showAllData , tu dois ajouter en début procédure
On Error Resume next
A ) Si tu veux faire disparaître les filtres et les boutons du filtre automatique, utilise ceci: '------------------------------------------------- Sub test() Dim Sh As Worksheet For Each Sh In Worksheets If Sh.AutoFilterMode = True Then Sh.Range("_FilterDataBase").AutoFilter End If Next End Sub '-------------------------------------------------
B ) Si tu veux, simplement annuler le filtre, mais en conservant les boutons du filtre automatique, utilise cela : '------------------------------------------------- Sub test1() Dim Sh As Worksheet For Each Sh In Worksheets If Sh.FilterMode = True Then Sh.ShowAllData Sh.Range("_FilterDataBase").AutoFilter End If Next End Sub '-------------------------------------------------
Dans le message précédent, si tu utilises la ligne de code sh.showAllData , tu dois ajouter en début procédure On Error Resume next