Autoriser les tris : Private Sub Workbook_Open

Bonjour à tous,

je planche sur ce problème depuis des heures sans trouver des réponses sur les forums pouvant m'aider réellement.

Je protège des feuilles de mon classeur grâce à une private sub dans le Thisworkbook, ça marche nickel mais je ne peut pas trier (ordre croissant, de A à Z...) seuls les filtres fonctionnent. J'ai mis en place ce code pour que mes autres codes fonctionnent malgré les protections. Voici mon code:

Private Sub Workbook_Open()
    With Worksheets("Source")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="xxx", UserInterfaceOnly:=True
  End With
  With Worksheets("Données propres")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="xxx", UserInterfaceOnly:=True
  End With
   With Worksheets("Données blablabla")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="xxx", UserInterfaceOnly:=True
  End With
    With Worksheets("Logs")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="xxx", UserInterfaceOnly:=True
  End With
      With Worksheets("Base Non Retenue")
    .EnableAutoFilter = True
    .EnableOutlining = True
    .Protect Contents:=True, Password:="xxx", UserInterfaceOnly:=True
  End With
End Sub

Merci beaucoup pour votre aide.

Bonne soirée

Salut

Dans l'évenement Workbook_Open , tu saisie le code suivente :

Private Sub Workbook_Open()
    Protect_All
End Sub

Et dans un module tu saisie les deux codes suiventes :

- 1 ) Ce code pour protégé les feuilles

Sub Protect_All()

Application.DisplayAlerts = False
    Dim Sh As Worksheet
    For Each Sh In Sheets(Array("Source", "Données propres", "Données blablabla", "Logs", "Base Non Retenue"))
    With Sh
    .Select: .Protect ("xxx")
    End With
    Next
Application.DisplayAlerts = True

End Sub

- 2 ) Ce code pour trier les données dans la feuille nommé : "Source"

Sub Trier()

Application.DisplayAlerts = False
    Dim Sh As Worksheet
        Set Sh = Sheets("Source")
        With Sh
.Unprotect ("xxx")
    LR = .Cells(Rows.Count, 1).End(xlUp).Row
    .Range("A2:H" & LR).Sort Key1:=.Range("A2"), Order1:=xlAscending 'xlDescending
.Protect ("xxx")
        End With
Application.DisplayAlerts = True

End Sub

Bonjour,

Merci de m'avoir répondu, ça ne marche pas cette fois ci la flèche du filtre n'est plus du tout accessible.

Une autre solution?

Merci du coup de main

Bonjour,

Merci de joindre un classeur à ta demande.

Histoire de ne pas perdre de temps.

Cdlt.

Rechercher des sujets similaires à "autoriser tris private sub workbook open"