? sur un doc @+Thierry

  • Initiateur de la discussion Jocelyn
  • Date de début
J

Jocelyn

Guest
Bonsoir!

Je vous lis depuis de nombreuses heures.
C'est SUPER intéressant.

Dans le fichier @+Thierry Rejoint...

Ou est cette HidenSheet ?

Je la vois dans l'exploreur de VBA, mais c'est tout.

Comment la fabrique-t-on ?

Comment faire pour la faire apparaître dans le Worbook ?

Juste cette feuille, pourrait constituer une protection pour un novice tel que moi LOL!

Merci pour tout vos infos.
 
J

Jocelyn

Guest
Pour Agrémenter le poste, j'ai copié-collé ces explication...

Auteur: @+Thierry (---.monaco377.com)
Date: 27-01-04 16:09

Re noon,

Disons que dans cette démo, il y a des petits secrets (héhéhé) je vais te montrer...

Le PassWord "Thierry-XLD" est composé de deux choses... la première est très simple, il s'agit d'un label "X" (nommé X) qui est en dehors de la zone du UserForm d'affichage "USFPass"... Son "Caption" dans les Propriétés est "-XLD"

Donc cette méthode est déjà largement suffisante pour permettre de "cacher" le mot de passe plutôt que de l'écrire en dûr dans le Code...(à l'époque j'ai fait "enrager" pas mal de forumeurs sur une autre démo avec cette astuce lol)

Je récapitule, en Mode Design du UserForm, (celui qui contient la TextBox avec "PasswordChar") tu l'élargis, dans une zone non affichablle, tu dessines un Label, où tu inscrit ton Passworld, dans la propriété de ce Label tu le nommes "X" (ou ce que tu veux)... Dans le Code çà donnera ceci :

Private Sub CommandButton1_Click()
With Me.TextBox1
If .Value = X Then
Sheets("variable").Select
.Value = ""
Unload Me '<<<<<< pas Hide comme tu fais ;-)
Else
MsgBox "Vous n'avez pas accès à cette Feuille"
Sheets("Menu").Select
.Value = ""
Unload Me
End If


Maintenant dans ma démo, la seconde partie du PassWord vient de "Y" et là çà vient d'un cellule dans une feuille cachée et c'est la concaténation des deux (MDP = Y & X) qui forme le Password (tordu hein lol)... mais je pense que ta question n'est pas là...

Ce que tu ne comprends pas c'est comment j'arrive à faire ou non l'action sur le bouton suite à l'affichage du USFPass... A cette fin, j'utilise une Variable Boolean Publique (pour tout le projet) nommée "BadPass" (Voir Module Standard "Commun") Les Variables de type Boolean sont une sorte "d'interrupteur", elles ne peuvent avoir pour valeur que True ou False... (Par défaut False, tant qu'elle ne sont pas initialisées)

Si le User ne tape pas le bon mot de passe cette variable est initialisée à True dans cette ligne de Code dans le USFPass :
If Me.TextBox1 <> MDP Then BadPass = True

Par conséquent, dans le UserForm1 quand on click sur le "CommandButton1" on lance d'abord le USFPass puis on vérifie cette Boolean :
If BadPass Then
MsgBox "Mauvais Mot de Passe"
Exit Sub '<<<<<< ICI on est viré du reste du code...
End If

Ok tu me suis ? Si BadPass est True le reste du code du CommandButton1 ne s'exécutera pas... Voilà Grosso-Modo le déroulement...

Il y a aussi un truc important à comprendre sur le USFPass... c'est le contrôle de sortie de ce UserForm avec "UserForm_QueryClose" pour éviter que le User sorte par la Croix... La Variable "Cancel" déclarée d'origine pour cet évènement empêche la fermeture si elle est initialisée à True... Par conséquent je déclare publique (au niveau de ce module uniquement) une autre variable Boolean "Sortie" par ma déclaration "Dim Sortie As Boolean" en top du module de USFPass...
Quand on lance le USFPass Sortie est initialisée à True, mais, quand on click sur le bouton OK, elle est initialisée à False, ce qui permet de sortir... Un peu compliqué peut-être ?

Enfin voilà en grandes lignes... Si tu as des questions plus précises ...

Bon Aprèm
@+Thierry
 
@

@+Thierry

Guest
Bonsoir Jocelyne, le Forum

Alors tout va bien ? j'ai l'impression que tu t'amuses bien avec mes démos !!!

Je pense que si tu as découvert tout ceci, tu es prète pour "the VBA's World !!!" lol

Bonne soirée (et nuits blanches en perpective !! lol)
@+Thierry
Take it Easy Just For The Fun​
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 019
dernier inscrit
BenKmc