Proteger Une feuille avec un mot de passe

Bonjour à tous,

J'aimerai savoir s'il est possible de proteger l'ouverture d'une feuille avec un mot de passe.

Mon tableau contient plusieurs feuilles mais une d'entre elles ne doit etre visible que si l'utilisateur qui clique sur l'onglet a un mot de passe.

merci à vous.

Le nom de ma feuille "FraisSansPro"

dans l'attente de vous lire. merci

Bonjour,

Il te faut la masquer avec la valeur xlSheetVeryHidden de sa propriété Visible, ce qui la rend inaccessible manuellement, elle ne peut être réaffichée que par code VBA.

Ensuite tu utilises un Userform pour réclamer et recueillir l'identifiant et mot de passe lorsque l'affichage en est demandé (dispositif de demande à prévoir également). Et après vérification, tu donnes cours ou non à l'affichage.

Il te faudra aussi border ça par un masquage systématique à l'enregistrement du fichier, de façon que la feuille ne soit jamais visible à l'ouverture du classeur, et protéger le code VBA...

Mais pas d'illusion si c'est pour des motifs de sécurité, cela reste contournable...

Cordialement.

bonjour et merci de ta réponse mais mon utilisateur ne saura pas bidouiller du code vba.

Ce que j'aimerai c'est juste voir l'onglet et que lorsque l'on clique dessus pour ouvrir la page lors cela demande un mot de passe.

On peut intercepter l'activation, l'annuler, et demander un mot de passe avant de donner cours à une nouvelle activation...

Je veux bien produire le code, mais pas le fichier, avec un Userform muni d'une TextBox pour recueillir le mot de passe et d'un bouton de validation...

Cordialement.

bonjour,

je ne suis pas certaine de comprendre ta réponse .

De vois le nom de l'onglet et avoir un mot de passe a mettre quand on clique dessus pour ouvrir la feuille C'est possible ou pas ?

bien a toi

Une version, hyper simplifiée correspondant à ta demande.

Mais au final, il faudra protéger le code VBA et masquer le contenu de la feuille pendant la saisie du mot de passe.

L'inconvénient est que si les macros ne sont pas activées, on pourra y accéder !

Donc une autre façon de faire est de créer un bouton pour aller vers la page privée et demander le mot de passe, en la déclarant en xlSheetVeryHidden comme indiqué plus haut.

C'est donc un peu plus complexe que ta demande qui risque d'être vite contournée.

edit : fichier supprimé au profit de la version suivante

ou comme ceci

227mdp.xlsm (20.65 Ko)

Bonjour, Salut Steelson !

je ne suis pas certaine de comprendre ta réponse .

Elle est pourtant tout à fait simple et claire !

Une contribution de ta part pour répondre à ta propre question, de façon à matérialiser la réponse, me paraît pleinement logique.

J'ai bien d'autres choses à faire en ce moment que produire un fichier pour pouvoir répondre à une question, et même si je n'avais rien d'autre à faire, il me paraît légitime que le demandeur s'implique en fournissant le modèle support de la réponse qu'il attend... Sans fichier, ayant fourni deux méthodes, auxquelles on peut adjoindre facilement diverses variantes, je considère avoir répondu à hauteur de l'implication du demandeur...

Cordialement.

Hello MFerrand

J'espère que tu n'as pas fait fuir le client ... sur le principe tu as raison, la réponse est proportionnelle à la question.

Ici je me suis pris au jeu d'utiliser le clic sur l'onglet comme demandé, c'est original.

Pour labartho , voici l'idée :

1- Créer une feuille sans les données qui est le clone de la feuille à protéger

  • - même nom en ajoutant un espace à la fin
  • - contenu neutre : on peut reproduire la même structure sans les données, mettre tout à blanc, mettre un message ...

2- créer le code VBA

-- sur la feuille clonée, avec le mot de passe choisi, cela permettra d'ouvrir la feuille protégée "à la place" de la feuille clonée qui est fermée

Private Sub Worksheet_Activate()
mdp = InputBox("Merci de saisir votre mot de passe ...", "Mot de Passe")
If mdp <> "abracadabra" Then
    Sheets("accueil").Select
Else
    Sheets("privé").Visible = True
    Sheets("privé").Select
    Sheets("privé ").Visible = False
End If
End Sub

-- sur le workbook, ce qui aura pour effet à la fermeture de rendre invisible la feuille protégée par xlVeryHidden

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("accueil").Select
Sheets("privé ").Visible = True
Sheets("privé").Visible = xlVeryHidden
ActiveWorkbook.Close True
End Sub

3- verrouiller le code VBA par mot de passe

Salut Steelson !

Ici je me suis pris au jeu d'utiliser le clic sur l'onglet comme demandé, c'est original.

C'est vrai !... Il va revenir...

Salut Steelson !

Ici je me suis pris au jeu d'utiliser le clic sur l'onglet comme demandé, c'est original.

C'est vrai !...

cela permet du coup d'avoir l'équivalent d'un bouton accessible de n'importe quel onglet sans voir à le dupliquer.

Il va revenir...

hum ... rien à l'horizon !

Toujours pas revenu !

je continue à y travailler pour l'améliorer ...cela pourra toujours servir à quelqu'un

il est peut-être passé incognito ramasser son pécule

Rechercher des sujets similaires à "proteger feuille mot passe"