OVH Cloud OVH Cloud

Pensez-vous que ce dode soit sécurisé

5 réponses
Avatar
Fred
Bonjour,

Je ne suis pas expert en VBA, mais on me fait la demande suivante:
Pouvoir masquer une feuille et la réafficher via un mot de passe, en une
manipulation.
J'ai trouvé la solution suivante et souhaiterais savoir si elle est pour
vous sécure:

A la fermeture du classeur, dans "this workbook":

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Feuil2").visible = xlSheetVeryHidden

End Sub

Dans un module, avec affectation de bouton à "Sub TestPW()"


Sub TestPW()
Dim Message, Title, Default, MyValue
' Définit le message.
Message = "Entrez un mot de passe"
Title = "AFFICHAGE DE VOTRE FEUILLE" ' Définit le titre.
Default = "*****"
' Affiche le message, le titre et la valeur par défaut et
' lance la macro Test si le mot de passe est MyPW
If InputBox(Message, Title, Default) = "xyz" Then
visible

Else
End If

End Sub

Private Sub visible()
Sheets("Feuil2").visible = xlSheetVisible
End Sub

Private Sub Hidden()
Sheets("Feuil2").visible = xlSheetVeryHidden
End Sub

Dans "Visual Basic Editor", j'ai fait un clic droit sur "VBAProject_le nom
de mon classeur" / "propriété" / "protection" / "vérouiller le projet pour
affichage" / "mot de passe pour l'affichage..." / j'ai rentré un mot de
passe afin que l'on ne puisse pas visualiser le mot de passe en clair sous
"Visual Basic Editor"


Merci de vos commentaires,

FRED.

5 réponses

Avatar
Vincnet.
A mon avis, on ne peut pas faire mieux ! La limite vient du fait que les mots
de passe peuvent être contournés mais l'utilisateur moyen ne saura pas faire,
et ne pourra pas voir la feuille cachée dans Format/Feuille/Afficher...
puisque tu l'as masquée en xlSheetVERYHidden.
Comme en plus tu as verrouillé le projet VBA à l'affichage, les propriétés
de la feuille ne sont pas accessible via VBE ou une autre macro.
Mais des gens plus compétents que moi trouveront peut-être une faille à ton
code.
--
A+

V.




Bonjour,

Je ne suis pas expert en VBA, mais on me fait la demande suivante:
Pouvoir masquer une feuille et la réafficher via un mot de passe, en une
manipulation.
J'ai trouvé la solution suivante et souhaiterais savoir si elle est pour
vous sécure:

A la fermeture du classeur, dans "this workbook":

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Feuil2").visible = xlSheetVeryHidden

End Sub

Dans un module, avec affectation de bouton à "Sub TestPW()"


Sub TestPW()
Dim Message, Title, Default, MyValue
' Définit le message.
Message = "Entrez un mot de passe"
Title = "AFFICHAGE DE VOTRE FEUILLE" ' Définit le titre.
Default = "*****"
' Affiche le message, le titre et la valeur par défaut et
' lance la macro Test si le mot de passe est MyPW
If InputBox(Message, Title, Default) = "xyz" Then
visible

Else
End If

End Sub

Private Sub visible()
Sheets("Feuil2").visible = xlSheetVisible
End Sub

Private Sub Hidden()
Sheets("Feuil2").visible = xlSheetVeryHidden
End Sub

Dans "Visual Basic Editor", j'ai fait un clic droit sur "VBAProject_le nom
de mon classeur" / "propriété" / "protection" / "vérouiller le projet pour
affichage" / "mot de passe pour l'affichage..." / j'ai rentré un mot de
passe afin que l'on ne puisse pas visualiser le mot de passe en clair sous
"Visual Basic Editor"


Merci de vos commentaires,

FRED.







Avatar
Fred
Merci pour ta réponse.
Effectivement je suis dans l'attente de savoir si l'on peut le contourner
(je ne parle bien entendu pas des spécialiste du piratage ou autre
hackers!).

FRED.


"Vincnet." a écrit dans le message de news:

A mon avis, on ne peut pas faire mieux ! La limite vient du fait que les
mots
de passe peuvent être contournés mais l'utilisateur moyen ne saura pas
faire,
et ne pourra pas voir la feuille cachée dans Format/Feuille/Afficher...
puisque tu l'as masquée en xlSheetVERYHidden.
Comme en plus tu as verrouillé le projet VBA à l'affichage, les propriétés
de la feuille ne sont pas accessible via VBE ou une autre macro.
Mais des gens plus compétents que moi trouveront peut-être une faille à
ton
code.
--
A+

V.




Bonjour,

Je ne suis pas expert en VBA, mais on me fait la demande suivante:
Pouvoir masquer une feuille et la réafficher via un mot de passe, en une
manipulation.
J'ai trouvé la solution suivante et souhaiterais savoir si elle est pour
vous sécure:

A la fermeture du classeur, dans "this workbook":

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Feuil2").visible = xlSheetVeryHidden

End Sub

Dans un module, avec affectation de bouton à "Sub TestPW()"


Sub TestPW()
Dim Message, Title, Default, MyValue
' Définit le message.
Message = "Entrez un mot de passe"
Title = "AFFICHAGE DE VOTRE FEUILLE" ' Définit le titre.
Default = "*****"
' Affiche le message, le titre et la valeur par défaut et
' lance la macro Test si le mot de passe est MyPW
If InputBox(Message, Title, Default) = "xyz" Then
visible

Else
End If

End Sub

Private Sub visible()
Sheets("Feuil2").visible = xlSheetVisible
End Sub

Private Sub Hidden()
Sheets("Feuil2").visible = xlSheetVeryHidden
End Sub

Dans "Visual Basic Editor", j'ai fait un clic droit sur "VBAProject_le
nom
de mon classeur" / "propriété" / "protection" / "vérouiller le projet
pour
affichage" / "mot de passe pour l'affichage..." / j'ai rentré un mot de
passe afin que l'on ne puisse pas visualiser le mot de passe en clair
sous
"Visual Basic Editor"


Merci de vos commentaires,

FRED.









Avatar
Vincnet.
Tout de même : si à la fermeture, l'utilisateur décide de ne pas enregistrer,
la prochaine ouverture du fichier se fera avec la feuille affichée. Donc :
écrire une procédure qui masque à l'ouverture du fichier la feuille en
question.
Restera le point suivant. J'ouvre le fichier. J'appuie sur le bouton qui
m'affiche la page cachée. J'enregistre. Je ferme sans enregistrer. Je rouvre
en désactivant les macros. Là, il n'y a rien à faire : la feuille est
affichée.
Une solution mais qui a une autre limite : forcée l'enregistrement du
fichier à la fermeture :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

ThisWorkbook.Worksheets("Feuil2").visible = xlSheetVeryHidden
ThisWorkbook.Save

End Sub

La limite, c'est que si l'utilisateur ne voulait pas enregistrer des
modifs... c'est raté pour lui. A toi de voir où seront tes priorités !
--
A+

V.



Merci pour ta réponse.
Effectivement je suis dans l'attente de savoir si l'on peut le contourner
(je ne parle bien entendu pas des spécialiste du piratage ou autre
hackers!).

FRED.


"Vincnet." a écrit dans le message de news:

A mon avis, on ne peut pas faire mieux ! La limite vient du fait que les
mots
de passe peuvent être contournés mais l'utilisateur moyen ne saura pas
faire,
et ne pourra pas voir la feuille cachée dans Format/Feuille/Afficher...
puisque tu l'as masquée en xlSheetVERYHidden.
Comme en plus tu as verrouillé le projet VBA à l'affichage, les propriétés
de la feuille ne sont pas accessible via VBE ou une autre macro.
Mais des gens plus compétents que moi trouveront peut-être une faille à
ton
code.
--
A+

V.




Bonjour,

Je ne suis pas expert en VBA, mais on me fait la demande suivante:
Pouvoir masquer une feuille et la réafficher via un mot de passe, en une
manipulation.
J'ai trouvé la solution suivante et souhaiterais savoir si elle est pour
vous sécure:

A la fermeture du classeur, dans "this workbook":

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Feuil2").visible = xlSheetVeryHidden

End Sub

Dans un module, avec affectation de bouton à "Sub TestPW()"


Sub TestPW()
Dim Message, Title, Default, MyValue
' Définit le message.
Message = "Entrez un mot de passe"
Title = "AFFICHAGE DE VOTRE FEUILLE" ' Définit le titre.
Default = "*****"
' Affiche le message, le titre et la valeur par défaut et
' lance la macro Test si le mot de passe est MyPW
If InputBox(Message, Title, Default) = "xyz" Then
visible

Else
End If

End Sub

Private Sub visible()
Sheets("Feuil2").visible = xlSheetVisible
End Sub

Private Sub Hidden()
Sheets("Feuil2").visible = xlSheetVeryHidden
End Sub

Dans "Visual Basic Editor", j'ai fait un clic droit sur "VBAProject_le
nom
de mon classeur" / "propriété" / "protection" / "vérouiller le projet
pour
affichage" / "mot de passe pour l'affichage..." / j'ai rentré un mot de
passe afin que l'on ne puisse pas visualiser le mot de passe en clair
sous
"Visual Basic Editor"


Merci de vos commentaires,

FRED.














Avatar
ChrisV
Bonjour Fred,

Très bien...!

Seul petit bémol, histoire de...
la visibilité du mot de passe dans la zone de saisie de l'InputBox..

Perso, j'utilise une UserForm avec une zone de texte dont la valeur de la
propriété PasswordChar est • (Alt+0149), les petits curieux plantés derrière
toi étant souvent plus intéressés sur ce qui se passe à l'écran plutôt que
sur ton clavier...


ChrisV


"Fred" a écrit dans le message de news:


Bonjour,

Je ne suis pas expert en VBA, mais on me fait la demande suivante:
Pouvoir masquer une feuille et la réafficher via un mot de passe, en une
manipulation.
J'ai trouvé la solution suivante et souhaiterais savoir si elle est pour
vous sécure:

A la fermeture du classeur, dans "this workbook":

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Feuil2").visible = xlSheetVeryHidden

End Sub

Dans un module, avec affectation de bouton à "Sub TestPW()"


Sub TestPW()
Dim Message, Title, Default, MyValue
' Définit le message.
Message = "Entrez un mot de passe"
Title = "AFFICHAGE DE VOTRE FEUILLE" ' Définit le titre.
Default = "*****"
' Affiche le message, le titre et la valeur par défaut et
' lance la macro Test si le mot de passe est MyPW
If InputBox(Message, Title, Default) = "xyz" Then
visible

Else
End If

End Sub

Private Sub visible()
Sheets("Feuil2").visible = xlSheetVisible
End Sub

Private Sub Hidden()
Sheets("Feuil2").visible = xlSheetVeryHidden
End Sub

Dans "Visual Basic Editor", j'ai fait un clic droit sur "VBAProject_le nom
de mon classeur" / "propriété" / "protection" / "vérouiller le projet pour
affichage" / "mot de passe pour l'affichage..." / j'ai rentré un mot de
passe afin que l'on ne puisse pas visualiser le mot de passe en clair sous
"Visual Basic Editor"


Merci de vos commentaires,

FRED.






Avatar
Fred
Aïe, oui Vincnet, effectivement!
Bon, je corrige donc ce point (mais c'est un peu gênant...)
Ou alors je fais un bouton pour que l'utilisateur qui a les droits puisse
protéger la feuille...

Merci CrhisV: ça fait plus pro!

FRED.




"Vincnet." a écrit dans le message de news:

Tout de même : si à la fermeture, l'utilisateur décide de ne pas
enregistrer,
la prochaine ouverture du fichier se fera avec la feuille affichée. Donc :
écrire une procédure qui masque à l'ouverture du fichier la feuille en
question.
Restera le point suivant. J'ouvre le fichier. J'appuie sur le bouton qui
m'affiche la page cachée. J'enregistre. Je ferme sans enregistrer. Je
rouvre
en désactivant les macros. Là, il n'y a rien à faire : la feuille est
affichée.
Une solution mais qui a une autre limite : forcée l'enregistrement du
fichier à la fermeture :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

ThisWorkbook.Worksheets("Feuil2").visible = xlSheetVeryHidden
ThisWorkbook.Save

End Sub

La limite, c'est que si l'utilisateur ne voulait pas enregistrer des
modifs... c'est raté pour lui. A toi de voir où seront tes priorités !
--
A+

V.



Merci pour ta réponse.
Effectivement je suis dans l'attente de savoir si l'on peut le contourner
(je ne parle bien entendu pas des spécialiste du piratage ou autre
hackers!).

FRED.


"Vincnet." a écrit dans le message de news:

A mon avis, on ne peut pas faire mieux ! La limite vient du fait que les
mots
de passe peuvent être contournés mais l'utilisateur moyen ne saura pas
faire,
et ne pourra pas voir la feuille cachée dans Format/Feuille/Afficher...
puisque tu l'as masquée en xlSheetVERYHidden.
Comme en plus tu as verrouillé le projet VBA à l'affichage, les
propriétés
de la feuille ne sont pas accessible via VBE ou une autre macro.
Mais des gens plus compétents que moi trouveront peut-être une faille à
ton
code.
--
A+

V.




Bonjour,

Je ne suis pas expert en VBA, mais on me fait la demande suivante:
Pouvoir masquer une feuille et la réafficher via un mot de passe, en
une
manipulation.
J'ai trouvé la solution suivante et souhaiterais savoir si elle est
pour
vous sécure:

A la fermeture du classeur, dans "this workbook":

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Feuil2").visible = xlSheetVeryHidden

End Sub

Dans un module, avec affectation de bouton à "Sub TestPW()"


Sub TestPW()
Dim Message, Title, Default, MyValue
' Définit le message.
Message = "Entrez un mot de passe"
Title = "AFFICHAGE DE VOTRE FEUILLE" ' Définit le titre.
Default = "*****"
' Affiche le message, le titre et la valeur par défaut et
' lance la macro Test si le mot de passe est MyPW
If InputBox(Message, Title, Default) = "xyz" Then
visible

Else
End If

End Sub

Private Sub visible()
Sheets("Feuil2").visible = xlSheetVisible
End Sub

Private Sub Hidden()
Sheets("Feuil2").visible = xlSheetVeryHidden
End Sub

Dans "Visual Basic Editor", j'ai fait un clic droit sur "VBAProject_le
nom
de mon classeur" / "propriété" / "protection" / "vérouiller le projet
pour
affichage" / "mot de passe pour l'affichage..." / j'ai rentré un mot
de
passe afin que l'on ne puisse pas visualiser le mot de passe en clair
sous
"Visual Basic Editor"


Merci de vos commentaires,

FRED.