Demander le mot de passe à l'ouverture

Bonjour le forum,

J'essaye de faire un fichier ou l'on demanderait un mot de passe pour ouvrir celui-ci, j'ai donc écris ce petit bout de code ci-joint :

Private Sub Workbook_Open()
Dim mdp As String, Verifmdp As Boolean
mdp = "azerty"
While Verifmdp <> True
    result = InputBox("Veuillez saisir le mot de passe pour accéder au fichier :", "Ouverture du fichier")
    If result = mdp Then
        Verifmdp = True
    'ElseIf result.Value = False Then
        'ThisWorkbook.Close
    Else
        Verifmdp = False
    End If
Wend
End Sub

Cependant pas moyen de sortir de la boucle, la partie en commentaire ne marchant pas correctement...

J'aimerais que si l'utilisateur:

- clique sur le bouton annuler, le fichier ce ferme (pas réussi avec mon code, partie en commentaire)

- si le mot de passe entrée n'est pas le bon, la boite de dialogue se re-ouvre (réussi avec mon code)

- si le mot de passe entrée est le bon, le fichier s'ouvre (réussi avec mon code)

Au plaisir de vous lire, et en vous remerciant par avance pour votre aide.

Cordialement.

Ps: je ne joins pas de fichier volontairement car sinon vous devrez taper le mot de passe à l'ouverture, cette partie la marchant ^^

Bonjour,

pas besoin de macro pour ça, excel le fait tout seul.
D'autant plus qu'il est possible d'ouvrir un fichier sans activer les macros.

Fait comme ça :
'Enregistrer sous...', cliquer Outils / Options générales...
Tu mets 2 mots de passes pour autoriser Lecture seule ou Modification
N'oublie pas tes mots de passes, personnes ne pourra rien pour toi, c'est beaucoup trop solide comme protection.
eric

Bonjour Eriiic,

Merci pour ta réponse, effectivement j'ai vu que l'on pouvait enregistrer de cette façon un fichier, cependant j'aimerais ajouter une "fausse" protection comme décrit précédemment afin de freiner certain utilisateur plutôt que de protéger réellement mon fichier.

Rebonjour,

J'avais mal lu la documentation sur les inputbox, elles renvoient "empty" et non "False" lorsque vous appuyez sur annuler, en corrigeant de cette façon :

Private Sub Workbook_Open()
Dim mdp As String, Verifmdp As Boolean
mdp = "azerty"
While Verifmdp <> True
    result = InputBox("Veuillez saisir le mot de passe pour accéder au fichier :", "Ouverture du fichier")
    If result = mdp Then
        Verifmdp = True
    ElseIf result = Empty Then
        ThisWorkbook.Close SaveChanges:=False
    Else
        MsgBox "Le mot de passe saisie n'est pas correct"
        Verifmdp = False
    End If
Wend
End Sub

Le code marche comme je le souhaitais, merci a Eriiic de s'être pencher sur mon problème tout de même.

Cordialement.

Bonjour,

tu as bien compris que si on fait Fichier / Ouvrir, qu'on appuie sur Shift en cliquant le fichier voulu, il s'ouvre sans lancer les macros et que ça n'arrêtera donc personne ?
eric

Bonjour eriiic,

Oui, comme je précisais en bas, les personnes à qui je veux éviter la consultation de mon fichier ne sont pas du tout ou très peu sensibiliser à excel. Cette fausse protection fera l'affaire pour le moment, si je m'aperçois que cela n'est pas suffisant j'enregistrerais comme tu me l'as décrit

Rechercher des sujets similaires à "demander mot passe ouverture"