Optimiser une macro

Bonsoir le forum!

J'ai une macro qui me permet de retirer les filtres sur mes 3 feuilles et de faire un retour en haut de feuilles sur ces 3 dernières:

Sub EffacerFiltre()
    For Each ws In Sheets(Array("Téléchargements", "Prévisions", "Sommaire"))
    On Error Resume Next
    ws.TextBox1.Value = ""
    ws.ShowAllData
    Cells.EntireRow.Hidden = False
    Rows("17:17").EntireRow.Hidden = True
    ws.Activate
    ws.Range("A16").Select
    Next ws
    End Sub

Le problème étant que quand je l'utilise mon fichier galère un max donc je me demandais si ce n'était pas du au fait qu'il y ai trop de choses à traiter... Peut-on la raccourcir pour qu'elle ne fasse pas a moitié planter mon classeur?

A savoir que:

Cells.EntireRow.Hidden = False

: Pour filtrer sur 3 colonne sur ma troisième feuille je doit rajouter cela pour pouvoir enlever le triple filtre qu'on m'a donnée

Rows("17:17").EntireRow.Hidden = True

: Il faut que mes lignes 17 sur mes 3 feuilles reste tout le temps dissimulée car c'est la ligne ou il y a les flèche de filtre

    ws.Activate
    ws.Range("A16").Select

: Pour remontrer en haut de page sur les 3

Voila voila, en espérant avoir une aide. Je pense pas qu'un fichier test soit utile étant donnée que le soucis viens de la formule et que je vous l'ai fourni mais si besoin hésitez pas à demander! A très vite!

Salut,

Une photo vaut 1000 mots.

Un fichier en vaut 10 000

En tout cas c'est toujours utile aux gens moins compétents afin de pouvoir essayer, tâtonner, tester, tenter, tripatouiller, ......

Cordialement.

bonjour,

à tester sur ton fichier

Sub EffacerFiltre()
    For Each ws In Sheets(Array("Téléchargements", "Prévisions", "Sommaire"))
    On Error Resume Next
    ws.TextBox1.Value = ""
    ws.cells.autofilter
    ws.Rows("17:17").EntireRow.Hidden = True
    ws.Activate
    ws.Range("A16").Select
    Next ws
    End Sub

Bon j'ai raccourci mon fichier pour pouvoir le partager.

Il y a la solution de h2so4 dans le fichier mais avec, la ligne une deviens la ligne de filtrage et les flèches y apparaissent.

Il y a également ma macro à moi qui ralenti pas mal mon fichier.

Si au passage vous pouvez regarder dans mes "macros faites maison" si il y a des choses en trop qui peuvent être enlever ou optimiser je suis preneur aussi :p

9test.xlsm (109.09 Ko)

Bonsoir,

ne disposant pas de ton fichier, je ne peux pas tester. Essaie ceci.

Sub EffacerFiltre()
    For Each ws In Sheets(Array("Téléchargements", "Prévisions", "Sommaire"))
    On Error Resume Next
    ws.TextBox1.Value = ""
    ws.cells.autofilter=false
    ws.Rows("17:17").EntireRow.Hidden = True
    ws.Activate
    ws.Range("A16").Select
    Next ws
    End Sub

Je viens tout juste de changer mon message pour y mettre mon fichier

Zayx a écrit :

Je viens tout juste de changer mon message pour y mettre mon fichier

Bonjour,

ma dernière proposition semble ok.

Effectivement ça m'a l'air tout bon, plus de ralentissement avec la macro pour retirer les filtres

Je vous remercie et merci h2so4 pour tes réponses! Bonne soirée

Autant pour moi, avec ton dernier code, si j'ai le malheur de cliquer deux fois sur le bouton pour effacer les filtres avec ta macro et bien les flèches de filtrage apparaissent en haut en ligne 1...

Une idée? :s

EDIT: de plus ton code ne me permet pas d'enlever le filtre de mon bouton vert en feuille 3...

Rechercher des sujets similaires à "optimiser macro"