VBA Réappliquer filtre sur toutes les feuilles d'un classeur periodiquement

ArQ

XLDnaute Nouveau
Bonjour à la communauté.

J'ai un classeur pour lequel, je veux réappliquer periodiquement, des filtres au préalable défini, sur chacune de mes 50 feuilles du classeur. Cette macro sera lancée à l'ouverture du classeur.

J'ai trouvé plusieurs solutions avec des macros liées à chaque feuille, mais aucune ne me permet de pouvoir changer le nom des feuilles ou de créer de nouvelles pages si le coeur m'en dit.

Je viens donc à vous, pour savoir si vous aviez cette corde à votre arc. Corde que vous voudriez bien partager.

[EDIT] j'ai trouvé ce code qui marche. Il prend 8 secondes à s'appliquer. Avez vous une solution plus rapide pour moi sachant que la ligne de code si-dessous n'est pas efficiente ?
Code:
application.screenupdating=false

Code:
Sub ReapplyFilters()
   Dim wsh As Worksheet
   Dim flt As autofilter
   For Each wsh In Worksheets
     Set flt = wsh.autofilter
     If Not flt Is Nothing Then
       flt.ApplyFilter
     End If
   Next wsh
 End Sub

D'avance, je vous remercie de votre attention et de votre participation,
Bien cordialement,
ArQ
 

Pièces jointes

  • book 1.xlsm
    16.1 KB · Affichages: 43
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : VBA Réappliquer filtre sur toutes les feuilles d'un classeur periodiquement

Bonsoir ArQ,

Essai comme ceci


Code:
Private Sub Workbook_Open()
Dim x As Integer, i As Integer
x = 0
   For i = 1 To 3
   x = x + 1
   Sheets(x).Activate
    ActiveSheet.Range("A1").AutoFilter Field:=3
   Next i
End Sub


A+ :cool:
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : VBA Réappliquer filtre sur toutes les feuilles d'un classeur periodiquement

Re,

une autre façon

Code:
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Activate
ActiveSheet.Range("a1").AutoFilter Field:=3
Next ws
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In Worksheets
ws.Activate
ActiveSheet.AutoFilterMode = False
Next ws
Application.ScreenUpdating = True
Application.DisplayAlerts = False
ActiveWorkbook.Save
End Sub



A+ :cool:
 
Dernière édition:

ArQ

XLDnaute Nouveau
Re : VBA Réappliquer filtre sur toutes les feuilles d'un classeur periodiquement

Pardon pour le faux retard de réponse. Je pense qu'il y a eu un soucis lors de mon premier envoie
Tes formules marchent très bien et m'ont meme permises de gagner un peu de temps.
Merci pour le temps passé
 

Discussions similaires

Réponses
3
Affichages
568

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi