Bonjour Xc2one,
Une méthode consiste à déprotéger, exécuter la macro avec les filtres automatiques puis de reprotéger;
1- s'il y a plusieurs feuilles, la macro est du style :
Sub DeproMacroRepro()
Dim i As Byte
'Passer les feuilles les unes après les autres
For i = 1 To Sheets.Count
Sheets(i).Activate
' Deprotection de la feuille active, le mot de passe est '***'
With ActiveSheet
.EnableSelection = xlNoRestrictions
.Unprotect Password:='***'
End With
'
'Mettre ici la commande de la Macro à exécuter !
'
' Reprotection de la feuille active avec le même mot de passe '***'
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect Password:='***', Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End With
Next i
End Sub
2- S'il n'y a qu'une feuille :
Sub DeproMacroRepro()
' Deprotection de la feuille, le mot de passe est '***'
With ActiveSheet
.EnableSelection = xlNoRestrictions
.Unprotect Password:='***'
End With
'
'Mettre ici la commande de la Macro à exécuter !
'
' Reprotection de la feuille avec le même mot de passe '***'
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect Password:='***', Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End With
End Sub
Cordialement
Bernard