Protection par mot de passe

Bonjour,

J'ai un fichier excel que je souhaite protégé par un mot de passe.

Le premier onglet est celui du mot de passe et je souhaite que mes autre onglet soit caché tant que le mot de passe ne correspond pas.

Je souhaite également mettre un bouton de remise à zéro sur toutes les pages De Janvier à Décembre.

Pouvez vous m'aider.

Merci par avance.

Cordialement

58tresorerie-2.xlsx (116.47 Ko)

Bonjour Esteban72220, le forum,

Pour masquer les feuilles à l'ouverture du classeur:

Code à placer dans ThisWorkbook (ALT + F11)
Private Sub Workbook_Open()

Dim cptr As Byte

For cptr = 1 To ThisWorkbook.Sheets.Count
    If Sheets(cptr).Name <> "ACCES" Then
       Sheets(cptr).Visible = 0
    End If
Next

End Sub

Code pour afficher les feuilles par macro

(ALT + F11 et insertion d'un module, coller le code à l'intérieur du module)
Sub afficher()

Dim cptr As Byte

For cptr = 1 To ThisWorkbook.Sheets.Count

       Sheets(cptr).Visible = 1

Next

End Sub

Ta feuille ACCES contenant une image, comment veux-tu renseigner le mot de passe pour déclencher l'affichage ??

Cordialement,

Bonjour,

En premier lieu merci de prendre du temps pour me venir en aide.

Effectivement il y a une image sur ma page d'accès je ne sais pas comment la figer pour pouvoir entrer le login in et mot de passe.

Cordialement

Bonjour

Idée : en plaçant sur cette image deux textbox ActiveX (rendu flat)

txtuser (utilisateur)

txtpwd (mot de passe )

ci-joint

crdlt,

André

Bonjour Esteban72220, Andre13, le forum,

Un test pour compléter la réponse d'André:

A l'ouverture du classeur, les 2 TextBox sont vides, les feuilles Janvier à Décembre n'apparaissent que si un utilisateur est renseigné et que le mot de passe est correct ( pour l'exemple : ton mot de passe, à modifier par la suite).

Cordialement,

Bonjour à tous ...

N'oublie pas ensuite de protéger ta macro, sinon quelqu'un pourrait rajouter

Sub toutOuvrir()
For Each ws In Worksheets
    ws.Visible = True
Next ws
End Sub

Bonjour Steelson,

Merci pour ton intervention

Bien qu'attribuant un mot de passe à mon VBAproject pour empêcher l'accès au code, lorsque je suis sur ma feuille, en faisant Développeur/Macro, je peux tout de même lancer mes macros sans aucun mot de passe

Comment faire pour corriger cela ?

Cordialement,

MDP vbaProject: azerty

Bien qu'attribuant un mot de passe à mon VBAproject pour empêcher l'accès au code, lorsque je suis sur ma feuille, en faisant Développeur/Macro, je peux tout de même lancer mes macros sans aucun mot de passe

Comment faire pour corriger cela ?

Oh !! c'est vrai ?

Ce n'est pas mon cas

Voici comment je procède

capture d ecran 160 capture d ecran 161

Re,

Merci pour ta réponse, mais mon problème persiste

1 2

Curieux en effet car je n'y ai pas accès après avoir protégé le code VBA comme vu ci-dessus

capture d ecran 162

Bonjour à tous

mdp accès VBA= azerty (inchangé)

Une petite idée : pour ne pas voir les macros ALT+F11

pour désactiver :

Application.OnKey "%{F11}", ""

pour réactiver

Application.OnKey "%{F11}"

ci-joint

crdlt,

André

Re, André13,

Merci pour ta contribution.

J'ai testé ton fichier, toujours pareil, lorsque je suis sur la feuille ACCES, si je fais "Développeur" puis "Macro", mes 2 macros apparaissent, et je peux les lancer sans aucun mot de passe (seul les codes VBA sont protégés).

Re,

en mettant ce code dans le Module3 ( module standard) car, tu as Excel 2010

à tester

ci-joint

crdlt,

André

Toujours pareil....

De plus, je viens de me rendre compte que j'ai le même souci sur d'autres classeurs.....

Un mauvais paramétrage de mon excel ?

Je capitule pour aujourd'hui, il faut préparer la venue du Père Noël

Cela fera sans doute l'objet d'un autre post.....

En tout cas un grand merci !

Amicalement,

Re,

ne désespérons pas, j'ai oublié un truc, en faite, il faut dès lors de l'ouverture du classeur dans le Workbook(activate)

mdp accès VBA= azerty (inchangé)

Private Sub Workbook_Activate()
Application.OnKey "%{F11}", "cache"
End Sub

qui fera appel au Module 3

Sub cache()
Application.OnKey "%{F11}", ""
End Sub

ci-joint

tiens moi informé si cela fonctionne correctement cette fois-ci, merci

Merci pour ta persévérence....

Mais encore un mystère d'excel ......

A bientot

capture

Re,

bonne journée, bizarre en effet, je n'ai pas Excel 2010

quelqu'un trouvera l'astuce de ce mystère, je pense ou j'ai oublié un truc

crdlt,

André

et pourtant ... cela fonctionnait aussi avec XL2007 pour moi !

Bonjour voir le post https://forum.excel-pratique.com/viewtopic.php?f=2&t=102919

astuce par Jean-Eric et MFerrandmerci

Option Private Module

Private Sub CommandButton1_Click()

If txtuser = "" Then

MsgBox "Veuillez renseigner un utilisateur"

Exit Sub

End If

If txtpwd = "" Then

MsgBox "Veuillez renseigner un mot de passe"

Exit Sub

End If

If txtpwd <> "ton mot de passe" Then

MsgBox " Mot de passe erroné, veuillez recommencer"

Call vider

Exit Sub

Else

Call afficher

End If

End Sub

Private Sub afficher()

Dim cptr As Byte

For cptr = 1 To ThisWorkbook.Sheets.Count

Sheets(cptr).Visible = 1

Next

End Sub

Private Sub vider()

Dim OL As OLEObject

With Worksheets("ACCES")

For Each OL In .OLEObjects

If TypeName(OL.Object) = "TextBox" Then

OL.Object.Text = ""

End If

Next

End With

End Sub

Rechercher des sujets similaires à "protection mot passe"