Tekst inputbox vervangen door ***

  • Onderwerp starter Onderwerp starter Noro
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Noro

Gebruiker
Lid geworden
6 okt 2014
Berichten
20
Beste,

Wanneer ik een macro in mijn excel file wil activeren komt er allereerst een inputbox met de vraag om een wachtwoord in te geven. Indien deze fout is krijgt hij een bericht "Dit wachtwoord is onjuist" en indien het wachtwoord correct is wordt de macro geactiveerd. Alleen wanneer het wachtwoord ingetypt wordt is het wachtwoord zichtbaar voor iedereen. Nu is mijn vraag of het mogelijk is dat als ik iets in de inputbox type de tekst vervangen wordt door ****, zodat het wachtwoord voor niemand zichtbaar is.

Het betreft de volgende code:

wachtwoord = InputBox("Vul het wachtwoord in om de macro te activeren!")

If wachtwoord <> "wachtwoord" Then
MsgBox "Dit wachtwoord is onjuist"
Exit Sub
End If

If wachtwoord = "wachtwoord" Then

(De code voor de macro)

End if

Kan iemand me helpen met de vraag of de invoertekst in de inputbox vervangen kan worden door ***?

Hopend op reactie,

Met vriendelijke groet,

Noro
 
De inputbox heeft die mogelijkheid niet. Daar zul je dan een tekstveld in een userform voor moeten gebruiken. Daarin kun je de PasswordChar property instellen op bijvoorbeeld een *.

Ik vond het wel leuk om het zelf eens op die manier te doen dus heb een voorbeeld voor je gemaakt. Het wachtwoordschermpje wordt nu gestart door een klik op de knop in Blad1 maar kan vanuit ieder event worden gedaan.

Er is een Userform en een Module met de naam Wachtwoord voor gemaakt. Het eigenlijke wachtwoord staat in het Tag attribuut van het tekstveld op het Userform en is nu 123wachtwoord321. Daar kun je dat dus ook aanpassen. Tijdens het intikken van het wachtwoord door de gebruiker wordt per ingetikt teken niet het teken zelf maar een * getoond.

Wanneer een fout wachtwoord wordt ingetikt zal het formulier Nee schudden en krijgt de gebruiker nog 2x de kans het juiste wachtwoord in te voeren. Als dat het juiste is wordt er een globale variabele PasswordOk op True gezet. Zoniet, staat deze op False. Na 3x een fout wachtwoord wordt het schermpje gesloten en staat de variabele PasswordOk op False.

In vergelijking met de InputBox is dit veel meer uiteraard maar het geeft je ook veel meer mogelijkheden zoals dat Nee schudden en het tonen van de sterretjes in plaats van het eigenlijke ingetikte woord. En dat laatste was dus je vraag.

De code om het formulier te starten en te controleren of het wachtwoord goed of fout is ingetikt blijft wel simpel:
Code:
Sub Knop1_Klikken()
    
    frmPassword.Show
    
    If PasswordOk Then
        MsgBox "Het wachtwoord is goed"
    Else
        MsgBox "Het wachtwoord is fout"
    End If
End Sub

Kijk eens of je daar wat mee kunt.

Bekijk bijlage Wachtwoord.xlsm
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan