Grouper degrouper sur classeur protégé

Fermé
Jeannedg - 17 oct. 2016 à 14:27
 Jeannedg - 17 oct. 2016 à 15:33
bonjour,

j'ai vu de nombreux forum la dessus, j' ai bien recopié le code VBA. Ca fonctionne direct mais après que je ferme puis ré-ouvre le fichier, plus possible de grouper dégrouper... sauriez-vous me dire où se trouve mon erreur ? merci pour votre aide !

Private Sub Workbook_Open()
With Worksheets("Analysis")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="", UserInterfaceOnly:=True
End With
End Sub

2 réponses

Raymond PENTIER Messages postés 58430 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 13 mai 2024 17 106
17 oct. 2016 à 15:13
Bonjour.

Un classeur protégé est destiné à ne pas être modifiable ...
0
En effet il s'agit d'un fichier avec beaucoup de formules à protéger, mais aussi avec beaucoup de colonnes car nous devons couvrir des chiffres sur 5 années, pour faciliter l'analyse, il serait justement bien que nous puissions utiliser les commandes grouper/degrouper afin d'avoir des visions par trimestre/année - seulement si nous devons a chaque fois déverrouiller pour grouper, les formules ne sont plus protégées.
0
PHILOU10120 Messages postés 6371 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 5 mai 2024 798
17 oct. 2016 à 15:20
Bonjour jeannedg

Si le fichier est protégé il faut ôter la protection au début du code
une fois sur la feuille

ActiveSheet.Unprotect Password:="mot de passe"

Puis remettre la protection avant de quitter la feuille

ActiveSheet.Protect "mot de passe"

0
Merci Philou10120,
Mais je rencontre le même problème, je rentre le code sur mon fichier Excel, je teste, ca fonctionne, j'enregistre et ferme mon fichier puis ca ne fonctionne plus....

Private Sub Workbook_Open()
With Worksheets("Historical")
ActiveSheet.Unprotect Password:="xx"
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="", UserInterfaceOnly:=True
ActiveSheet.Protect "xx"
End With
End Sub
0