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
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
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 ?
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
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 ^^
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
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é
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.
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
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.