Protéger une feuille : Autorisations ne se conservent pas

Fermé
cyril-182 - Modifié le 9 janv. 2019 à 12:25
cyril-182 Messages postés 8 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 17 janvier 2019 - 17 janv. 2019 à 17:03
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://forums.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
A voir également:

2 réponses

m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
9 janv. 2019 à 14:10
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
1
cyril-182 Messages postés 8 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 17 janvier 2019
9 janv. 2019 à 14:32
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.
0
cyril-182 Messages postés 8 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 17 janvier 2019
Modifié le 17 janv. 2019 à 15:37
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?
0
cyril-182 Messages postés 8 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 17 janvier 2019
17 janv. 2019 à 17:03
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
0