2 votes

Rendre le classeur en lecture seule

J'ai un classeur qui est automatiquement mis à jour par une macro VBA.

Pour contourner le problème potentiel qu'un utilisateur ait le classeur ouvert en lecture-écriture lorsque la macro tente de le mettre à jour, je définis l'attribut en lecture seule lorsque la macro l'enregistre, puis je le désactive lorsqu'elle ouvre le classeur pour l'édition.

SetAttr ThisWorkbook.Path & "\booktoupdate.xlsx", vbNormal

'Coller quelques valeurs

SetAttr ThisWorkbook.Path & "\booktoupdate.xlsx", vbReadOnly

Cependant, n'importe quel utilisateur pourrait accéder aux propriétés du fichier et désactiver le mode lecture seule.

Existe-t-il un moyen de protéger le fichier de sorte que le mode lecture seule ne puisse être modifié que par VBA ?

3voto

Dvyn Resh Points 1006

Cela correspondra exactement à votre besoin : lors de l'enregistrement du classeur, vous pouvez activer un mot de passe comme indiqué ci-dessous,

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\booktoupdate.xlsx", _
    WriteResPassword:="entrez votre mot de passe", ReadOnlyRecommended:=True

Lorsqu'un autre utilisateur tente de le modifier, il sera invité à entrer un mot de passe et Excel reste en mode lecture seule.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X