Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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+
 
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+
 
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
588
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…