Conflit entre mot de passe crypté et texte défilant

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Voilà, avec l’aide incontournable du forum, j’avais réalisé une USF dans laquelle on rentre un mot de passe. Si le mot de passe est bon, un événement se déclenche automatiquement, si le mot de passe est erroné, dans le TextBox où l’on rentre le mot de passe apparaît un message défilant stipulant que l’on s’est planté.

Pour faire « plus Pro », j’ai voulu, pour être dans l’air du temps (NSA oblige…), substituer les caractères entrés pour le mot de passe par des « * » (comme c'est en général le cas lors de toute entrée de mot de passe). Le problème c’est que là ça plante, dans le sens que le message défilant, au cas où l’on se serait planté dans le mot de passe, devient, disons, « bègue ».

Un simple essai dans le fichier ci-joint :
- bouton « Mot de passe non crypté » --> ça marche quand on se plante
- bouton « Mot de passe crypté » --> ça ne marche pas quand on se plante

Le mot de passe est « zaza ».
S’il est bien entré --> l’USF disparaît.
Si erreur --> texte défilant.
On annule le texte défilant en cliquant sur le « champignon atomique » pour écrire par la suite le bon mot de passe.

Merci d’avance pour m’aider à solutionner ce problème si tant est que ce soit possible.
 

Pièces jointes

  • Mot de Passe Crypté.xlsm
    21.9 KB · Affichages: 55
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Conflit entre mot de passe crypté et texte défilant

Bonjour Magic,

voici le code modifié
la modif concerne: TextBoxMotPasse.PasswordChar = "" (14ème ligne en partant du bas)
Code:
Private Sub UserForm_Initialize()
'            Élimination du bouton de fermeture de la barre de titre de l'UserForm
'************************************************************************************************
Me.Caption = " Impitoyable Mot de Passe"
Dim hwnd As Long
hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D") & "Frame", Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
'************************************************************************************************
Me.TextBoxMotPasse.SetFocus 'sélectionne, dès l'ouverture de l'USF, le TextBox "TextBoxMotPasse"
Me.TextBoxMotPasse.PasswordChar = "*" 'cryptage du mot de passe
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Stop_Code = True 'arrète le défilement du texte dans le TextBox "TextBoxMotPasse"
End Sub
Private Sub CommandButton1_Click() 'CommandButton "OK"
If TextBoxMotPasse = "zaza" Then
    Unload USF_MotDePasse2 'ferme l'USF "USF_MotDePasse2"
ElseIf TextBoxMotPasse = "" Then
    Me.TextBoxMotPasse.SetFocus
Else 'on s'est planté dans le mot de passe
    Dim phrase As String, phrase1 As String, phrase2 As String, w As Double, temp As Double
    phrase = "! ! ! Code définitivement erroné, coquin de sort  !  ~  Au 3ème essai infructueux, le terriblissime virus " & Chr$(34) & "Armageddon-ZZ Top 666" & Chr$(34) & " détruira irréversiblement votre PC et, par la même occasion, anihilera ipso facto fissa votre belle-mère... ! ! !  "
    TextBoxMotPasse.ForeColor = &HFF& 'le texte du message défilant dans le TextBox "TextBoxMotPasse" est rouge
    Stop_Code = False
    Do
        TextBoxMotPasse.Value = phrase
        TextBoxMotPasse.PasswordChar = ""
        w = 0.1
        temp = Timer
        Do While Timer < temp + w
            If Stop_Code = True Then Exit Do
            DoEvents
        Loop
        phrase1 = Right(phrase, Len(phrase) - 1)
        phrase2 = Left(phrase, 1)
        phrase = phrase1 & phrase2
    Loop Until Stop_Code = True
    TextBoxMotPasse.ForeColor = 0 'le texte dans le TextBox "TextBoxMotPasse" redevient noir
End If
End Sub
à+
Philippe
 

stefan373

XLDnaute Occasionnel
Re : Conflit entre mot de passe crypté et texte défilant

Bonjour Magic_Doctor, phlaurent55 et le forum,

Pour compléter la protection et pour empécher la fermeture de l'userform par Alt + F4, je vous propose de rajouter une ligne de code. :)

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Stop_Code = True 'arrète le défilement du texte dans le TextBox "TextBoxMotPasse"

  'Empêche la fermeture par Alt + F4
    If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

A+ Stéfan
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Conflit entre mot de passe crypté et texte défilant

Re,

je viens de me rendre compte qu'il y avait lieu de modifier le code ci-dessous pour (re)crypter le mot de passe à partir du deuxième essai
Code:
Private Sub Image2_Click() 'Efface le texte dans le TextBox "TextBoxMotPasse"
    Stop_Code = True 'arrète le défilement du texte dans le TextBox "TextBoxMotPasse"
    TextBoxMotPasse = "" 'efface le mot de passe entré
    Me.TextBoxMotPasse.SetFocus 'resélectionne le TextBox "TextBoxMotPasse"
    TextBoxMotPasse.PasswordChar = "*"
End Sub

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    23.7 KB · Affichages: 54
  • 111.xlsm
    23.7 KB · Affichages: 67
  • 111.xlsm
    23.7 KB · Affichages: 63

Magic_Doctor

XLDnaute Barbatruc
Re : Conflit entre mot de passe crypté et texte défilant

Bonjour à tous,

Merci phlaurent55 pour avoir réglé le problème.
Merci aussi à stefan373 pour ce petit complément que je ne connaissais pas et que j'ai rajouté. Du reste, je ne savais même pas que l'on pouvait fermer un USF par "Alt + F4".

Bonne journée à tous.
 

Si...

XLDnaute Barbatruc
Re : Conflit entre mot de passe crypté et texte défilant

salut

comment gères-tu la limite de 3 ?

Un essai pour le fun. A noter qu'ici, le bandeau sans croix ne reste pas ainsi. Elle réapparait mais en étant inactive.

As-tu pris connaissance des dernières propositions faites ?
 

Pièces jointes

  • MdPCrypté.xlsm
    22.9 KB · Affichages: 58

Magic_Doctor

XLDnaute Barbatruc
Re : Conflit entre mot de passe crypté et texte défilant

Bonjour,

Pas pu répondre avant.
Tu as raison, j'aurais dû songer à gérer la limite de 3. Merci de me l'avoir rappelé.
Je me suis inspiré de ton exemple et ai réussi à virer définitivement la croix du bandeau qui, ici, est tout à fait inutile.
Concernant ta dernière question, je réponds dans le fil correspondant.

Bonne journée.
 

Pièces jointes

  • Mot de Passe Crypté (2).xlsm
    59.5 KB · Affichages: 62

Discussions similaires

Réponses
5
Affichages
408
Compte Supprimé 979
C
Réponses
2
Affichages
167
Réponses
4
Affichages
628

Statistiques des forums

Discussions
312 232
Messages
2 086 462
Membres
103 222
dernier inscrit
2BS