Partager via

Excel VBA quelles différences entre syntaxe .Protect Password:= ou .Protect Password =

Anonyme
2024-11-26T15:57:41+00:00

Bonjour

mon fichier est constitué d'une feuille excel de données et de plusieurs feuilles de saisie pour alimenter les données ou les modifier partiellement. Les utilisateur.trice.s n'étant pas des spécialistes excel, je dois tout protéger.

A chaque feuille de saisie (ajout de données, modification de données) correspond une macro, qui doit déprotéger avec mot de passe (une variable MDP incluse dans le code, je n'utilise pas InputBox puisque l'utilisateur ne doit pas connaitre le mot de passe) la feuille de données, enregistrer les ajouts ou modifications, puis reprotéger, avec le mot de passe MDP.

j'ai régulièrement des bogues soit parce que j'ai écrit " .Unprotect password:=MDP " soit parce que j'ai écrit ".Unprotect Password = MDP". Pour corriger il suffit que je passe d'une écriture à l'autre, jusqu'à la prochaine fois, ce qui ne permet évidemment pas des macros fiables. A priori le prb est le même avec .Protect.

La même macro fonctionne de manière répétitive, puis quand j'utilise une autre macro (saisie différente) celle-ci plante car la protection n'a pas été enlevée.

J'ai fait toute une série de test, j'ai compris qu'un mot de passe saisi manuellement (hors VBA) n'était pas équivalent au même mot de passe dans une variable, mais quelqu'un peut-il m'aider à comprendre les différences entre les deux syntaxes ?

Merci d'avance

Microsoft 365 et Office | Excel | Pour les entreprises | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

  1. Anonyme
    2024-11-26T16:43:16+00:00

    Bonjour,

    Pour Protect

    expressionProtect (PasswordDrawingObjectsContentsScenariosUserInterfaceOnlyAllowFormattingCellsAllowFormattingColumnsAllowFormattingRowsAllowInsertingColumnsAllowInsertingRowsAllowInsertingHyperlinksAllowDeletingColumnsAllowDeletingRowsAllowSortingAllowFilteringAllowUsingPivotTables)

    On peut voir que l'on peut préciser beaucoup de chose/attributs/paramètres mais tout n'est pas obligatoire ( [ crochets ] => facultatif)

    Si je veux indiquer seulement le 4ème (Scenarios), je vais de voir indiquer que ceux d'avant ne sont pas précisés

    On écrit

    ....Protect , , , True

    => on peut vite se tromper d'une virgule !

    Il est plus sur et plus lisible d'écrire

    ....Protect Scenarios**: = True**

    donc := c'est pour préciser l'attribut/paramètre "utilisé"

    L'attribut Password est en 1ère position donc on peut écrire

    Protect "MonMotDePasse"

    Protect MaVariablePassWord

    Protect Password:= "MonMotDePasse"

    Protect Password:= MaVariablePassWord

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire

1 réponse supplémentaire

  1. Anonyme
    2025-01-10T16:18:52+00:00

    merci pour ces explications. tous mes problèmes ont disparu

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire