Autoriser les filtres apres protection feuilles

Fermé
tourmarc Messages postés 7 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 30 janvier 2019 - 9 nov. 2018 à 13:50
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 9 nov. 2018 à 14:13
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

Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
Modifié le 9 nov. 2018 à 14:16
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