Autoriser les filtres apres protection feuilles

tourmarc Messages postés 9 Statut Membre -  
Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour Chers tous

La macro ci après sert à protéger les formules dans les feuilles de mon classeur
Le problème qui semble se poser est que les filtres automatiques sont impossibles après protection
Comment faire ? Merci

sub protect()
Dim sh As Worksheet

Application.ScreenUpdating = False

For Each sh In ThisWorkbook.Worksheets
With sh
.Visible = xlSheetVisible
.Unprotect Password:="mdp"
.EnableAutoFilter = True
.EnableOutlining = True
.Cells.Locked = False
On Error Resume Next
.Cells.SpecialCells(xlCellTypeFormulas, 23).Locked = True
On Error GoTo 0
.Protect Password:="mdp", _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingColumns:=True, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=True, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True, _
UserInterfaceOnly:=True
If .Name <> "Menu" Then
.Visible = xlSheetHidden
End If
End With
Next sh

End Sub

1 réponse

  1. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    le code lors de la protection sous VBA est
    AllowFiltering:=True

    si tu n'as qu'une feuille à traiter, à l'ouverture tu identifie ta feuille et tu saisis la ligne de code

    Private Sub Workbook_Open()
    Sheets("Feuil 1").Protect Password:="ton mot de passe"
    Sheets("Feuil 1").AllowFiltering:=True

    et si tu as plusieurs onglets tu fais une boucle du genre
    Dim Wb As Worksheet
    For Each Wb In Sheets
    Wb.Protect Password:="open", DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowFiltering:=True
    Next Wb
    A+
    Mike-31

    Je suis responsable de ce que je dis, pas de ce que tu comprends...
    0