Problème de macro

Résolu
Bonjour,

J'ai un petit souci avec ma macro qui fonctionne bien mais ne tient pas compte de la désactivation de protection et remise en protection à la fin :
Private Sub Workbook_Open()

ActiveSheet.Unprotect
For Each work In Worksheets
work.Activate
With work
If work.Name <> "Accueil" And work.Name <> "MDG" Then
selection.AutoFilter
selection.AutoFilter Field:=6, Criteria1:="1"
selection.AutoFilter Field:=4, Criteria1:="=A", Operator:=xlOr, _
Criteria2:="<>0"
End If
End With
Next work
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowSorting:=True, _
AllowFiltering:=True

End Sub

En effet, je reçois un message d'erreur 1004 me demandant d'enlever la protection de la feuille....

y a t'il une erreur dans ma macro ???

Merci de votre aide.

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour

    Il faut mettre cette ligne avant de remettre la protection

    llowFiltering = True

    Je ne suis pas anglophone mais je pense que c'est le problème
    1. Merci pour la réponse mais il faut également déplacer la demande de désactivation de la protection de feuille de cette façon :

      For Each work In Worksheets
      work.Activate
      With work
      If work.Name <> "Accueil" And work.Name <> "MDG" Then
      Range("AK1").Select
      ActiveSheet.Unprotect
      selection.AutoFilter Field:=6, Criteria1:="1"
      selection.AutoFilter Field:=4, Criteria1:="=A", Operator:=xlOr, _
      Criteria2:="<>0"
      End If
      End With
      ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
      AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
      :=True, AllowInsertingHyperlinks:=True, AllowSorting:=True, _
      AllowFiltering:=True
      Next work
      End Sub

      Maintenant ça fonctionne bien !!!