Menu

Protéger une feuille : Autorisations ne se conservent pas

-
Bonjour,

J'ai un fichier excel ou je protège les feuilles les modifications, dans la feuille de dialogue j'autorise :

- Modifier format des lignes
- Ajout de lignes
- Supprimer des lignes
- Modifier les objets

Tout fonctionne parfaitement, je peux modifier la hauteur des lignes et en ajouter, etc..
donc je sauvegarde.

Problème: quand je ferme le fichier et le ré-ouvre, je peux uniquement modifier les objets (zones de texte) mais je ne peux plus ajouter/supprimer des lignes ou en modifier la hauteur...

D'autre part, j'ai une MACRO qui autorise les "grouper/dégrouper", j'ai fait un copier/coller ICI:
https://www.commentcamarche.net/forum/affich-8003320-grouper-dissocier-sur-une-feuille-proteger

Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer

WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
With ActiveWorkbook.Worksheets(I)
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, UserInterfaceOnly:=True
End With
Next I

End Sub



J'ai du mal avec les codes, est ce que cette macro pourrait bloquer la modification des lignes en autorisant les grouper/dégrouper??

Sinon, avez vous une idée d'où cela peut venir?

Merci d'avance...


Configuration: Windows / Firefox 64.0
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
14848
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
17 janvier 2019
11313
1
Merci
Bonjour,

C'est normal. Ta macro a la fonction de protéger tes feuilles, avec les options par défaut. Donc, pratiquement rien n'est autorisé. Il faut ajouter tes propres autorisations à ta macro :

.Protect Contents:=True, UserInterfaceOnly:=True, AllowFormattingCells:=True, _
AllowInsertingRows:=True, AllowDeletingRows:=True, DrawingObjects:=False


m@rina

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 56020 internautes nous ont dit merci ce mois-ci

cyril-182
Messages postés
8
Date d'inscription
lundi 18 février 2008
Dernière intervention
17 janvier 2019
-
C'est exactement ça ! Merci...
Desole mais n'ayant jamais eu les cours de VBA j'ai un peu de la peine...

Sinon j'aurai fait directement quelque chose qui permet d'ajuster automatiquement la hauteur d'une cellule fusionnée mais je n'ai pas trouvé quelque chose de simple.
Ou bien ajustement automatique des la hauteur de ligne en fonction de la zone de texte?

Bref ça fonctionne très bien comme ça donc encore merci pour la réponse claire et rapide.
Commenter la réponse de m@rina
Messages postés
8
Date d'inscription
lundi 18 février 2008
Dernière intervention
17 janvier 2019
0
Merci
Re-Bonjour,

Finalement mon problème n'est pas totalement résolu:

J'ai cette MACRO:

Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer

WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
With ActiveWorkbook.Worksheets(I)
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, UserInterfaceOnly:=True, AllowFormattingRows:=True, _
AllowInsertingRows:=True, AllowDeletingRows:=True, DrawingObjects:=False
End With
Next I

End Sub


Je peux faire / défaire des groupes de lignes, modifier la hauteur, en insérer, mais je ne peux pas les supprimer !

Il me met un message comme quoi je ne peux pas supprimer une cellule verrouillée, alors que c'est justement mon objectif: pouvoir supprimer les lignes dont je n'ai pas besoin même si celles-ci contiennent des cellules verrouillées...

Enfait par "verouillées" je veux juste que les utilisateurs du fichier ne puissent pas modifier/écrire dans n'importe quelle cellule ou modifier la largeur des colonnes, donc peut être qu'il y a mieux...

Encore désolé je suis vraiment une buse en VBA

Avez vous une idée?
cyril-182
Messages postés
8
Date d'inscription
lundi 18 février 2008
Dernière intervention
17 janvier 2019
-
OU ALORS,

Si quelqu'un sait comment ajuster la hauteur des lignes automatiquement en fonction d'une zone de texte... Je le vénère :D
Commenter la réponse de cyril-182