Code pour autoriser ajout de commentaire sur feuille protégée

Gayouxx

XLDnaute Nouveau
Bonjour à tous,

Pour des raisons pratiques je commence à mettre le nez dans le VBA depuis... hier soir !
Donc autant dire que je suis novice et que mes premiers tests ne sont que du copier/coller de codes que j'ai trouvé ici.

Voilà j'ai un classeur qui contient plusieurs feuilles (15), il s'agit de feuilles de temps de collaborateurs que j'ai crée.
J'ai verrouillé certaine cellules d'autres non.

Sur les cellules déverrouillées je souhaite autoriser les collaborateur à insérer un commentaire en plus du temps dans la cellule.

Mais lorsque j'applique le code ci dessous, une fois protégées, il est impossible d'insérer un commentaire. Je me doute qu'il faut autoriser l'action par un code.

Après quelques recherches, il me semble avoir identifié DrawingObjects=False mais je ne suis pas sure et ne sais pas comment et où l'intégrer...

Par avance je vous remercie de votre aide.

Voici mon code actuel :
Pour déprotéger les feuilles:
Code :
Sub non_protege()
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
f.Unprotect
Next
End Sub

Pour les protéger:
Code :
Sub protege()
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
f.Protect
Next
End Sub



Merciiiiii ^^
Céline
 

JCGL

XLDnaute Barbatruc
Re : Code pour autoriser ajout de commentaire sur feuille protégée

Bonjour à tous,

Il me semble que les commentaires peuvent être insérés sur une feuille protégée si tu coches comme cela :

02082011212818.png

Ce qui donne en code :
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False

A+ à tous
 
Dernière édition:

Hippolite

XLDnaute Accro
Re : Code pour autoriser ajout de commentaire sur feuille protégée

Bonsoir et bienvenue sur le forum,

Conseil pour novices qui veulent progresser, il y a trois outils magiques :
- l'enregistreur de macro qui permet de découvrir les appellations des objets
- la touche F1 qui donne accès à l'aide
- l'explorateur d'objets

Fais attention ThisWorkbook désigne le classeur qui contient la macro
ActiveWorkbook désigne le classeur dont la feuille est active

Je t'encourage à utiliser F1 ou l'enregistreur de macro pour découvrir les options de protection

Ajout :
Bonjour JCGL , pas rafraîchi
 
Dernière édition:

Gayouxx

XLDnaute Nouveau
Re : Code pour autoriser ajout de commentaire sur feuille protégée

Bonsoir JCGL,

Merci pour votre réponse rapide !
J'opte pour la solution avec le code puisque j'ai autant de classeur (avec 15 feuilles) que de collaborateur.
Ce code me permet d'enlever et remettre la protection d'un coup pour chaque classeur plutôt que de le faire feuille par feuille.

J'ai bien noté le code : ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False

Etant débutante, je ne sais où l'intégrer dans le code qui réactive la protection :

Sub protege()
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
f.Protect
Next
End Sub

Pourriez-vous m'indiquer exactement où l'intégrer ?

Merci beaucoup de votre aide.
Céline
 

JCGL

XLDnaute Barbatruc
Re : Code pour autoriser ajout de commentaire sur feuille protégée

Bonjour à tous,

Peux-tu essayer

VB:
Sub Protege()
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
f.Protect DrawingObjects:=False, Contents:=True, Scenarios:= False                      
Next
End Sub

A+ à tous
 

Gayouxx

XLDnaute Nouveau
Re : Code pour autoriser ajout de commentaire sur feuille protégée

Bonsoir Hippolite,

Merci pour ces conseils ;)
Je t'avouerais que je me déplace encore avec difficulté dans les outils et options liés aux macros... ca va venir !

Je souhaite en 1 seule fois ôter et remettre la protection (avec autorisation d'ajout de commentaire) sur les 15 feuilles de mon classeur.

Ce qui m'évite un travail fastidieux manuellement, (ôter la protection puis outil\protection\protéger la feuille avec en options : sélectionner cellules déverrouillées + modifier les objets) et ce pour chaque feuille du classeur qui ont les même droits.

Donc si j'ai bien compris, je dois utiliser ThisWorkbook pour que les modifications soient appliquées à TOUT le classeur ?
Par avance merci
Céline
 

Gayouxx

XLDnaute Nouveau
Re : Code pour autoriser ajout de commentaire sur feuille protégée

C'est magique !!!!
Merci pour votre aide !!
Cette première expérience m'encourage à découvrir les avantages qu'offre le code VBA
Je vais essayée de comprendre et de les faire moi meme plutot que faire des copier/coller de codes trouvés sur des forums.
encore merci ^^
 

Hippolite

XLDnaute Accro
Re : Code pour autoriser ajout de commentaire sur feuille protégée

Re,
Ta macro est limitée en portée, elle est utilisable dans le classeur où elle est écrite, si tu veux déprotéger d'autres classeurs à partir de cette macro qui est dans un classeur distinct, il faut pouvoir passer les classeurs en argument :
Code:
Sub Protege(Target as Workbook)
Dim f As Worksheet
For Each f In Target.Worksheets
f.Protect DrawingObjects:=False, Contents:=True, Scenarios:= False                      
Next
End Sub
 

Gayouxx

XLDnaute Nouveau
Re : Code pour autoriser ajout de commentaire sur feuille protégée

Je pensais répéter l'opération pour chaque classeur...
Ce que tu es en train de me dire c'est qu'avec une certaine manip, cette macro s'appliquerait à tous les classeurs que je dupliquerai ?

Sachant que mes classeurs ont déjà été livrés et que les collaborateurs les utilisent actuellement. Je ne peux donc pas refaire de modèle puis le dupliquer au nombre de collaborateur souhaité
 

Hippolite

XLDnaute Accro
Re : Code pour autoriser ajout de commentaire sur feuille protégée

Pour modifier la protection des autres classeurs, il suffit de faire une boucle sur les classeurs qui ouvre le classeur, modifie la protection avec Protege(classeur) puis le referme en enregistrant. Les classeurs ne devront pas être ouverts simultanément par d'autres, sinon prévoir une gestion d'exécution pour savoir ceux qui ont été modifiés ou non.
 

Gayouxx

XLDnaute Nouveau
Re : Code pour autoriser ajout de commentaire sur feuille protégée

Bien... tu m'as trouvé de quoi m'occuper mes soirées... je vais partir en quête du VBA qui me permettra de faire ce que tu as décris ;)
Merci pour votre aide précieuse :cool:


Pour modifier la protection des autres classeurs, il suffit de faire une boucle sur les classeurs qui ouvre le classeur, modifie la protection avec Protege(classeur) puis le referme en enregistrant. Les classeurs ne devront pas être ouverts simultanément par d'autres, sinon prévoir une gestion d'exécution pour savoir ceux qui ont été modifiés ou non.
 

Discussions similaires

Réponses
12
Affichages
252
Réponses
5
Affichages
196
Réponses
3
Affichages
527

Statistiques des forums

Discussions
312 321
Messages
2 087 249
Membres
103 498
dernier inscrit
FAHDE