• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA om wachtwoord laten vragen voordat macro wordt uitgevoerd

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

TJ86

Gebruiker
Lid geworden
28 sep 2014
Berichten
127
Goedemorgen,

ik zit met het volgende. Ik heb onderstaande macro welke probleemloos wordt uitgevoerd...

Code:
Private Sub Option42_Click()
'4-wekenprijs vermelden
 If Option42 = True Then Option41 = False
  Sheets("Calculatieblad").Columns(15).Hidden = False
  Sheets("Calculatieblad").Range("A10,A46,A65").RowHeight = 30
End Sub

Nu ben ik op zoek naar een Macro welke eerst om een wachtwoord vraagt alvorens bovenstaande
macro wordt uitgevoerd. Het kan gewon een simpel schermpje met "Wachtwoord:" en een wachtwoord veld zijn..


Wie kan mij helpen?
 
Laatst bewerkt:
zoiets zou kunnen
Code:
Sub wachtwoord()

strWW = InputBox("Voer wachtwoord in:")

If strWW = 12345 Then
    GoTo start
Else
    MsgBox "onjuist wachtwoord"
    Exit Sub
End If

start:
MsgBox "OK"

End Sub

in je eigen code zet je dit bovenaan de macro voor je eigen code en dan zet je nog "start:" na deze macro en voor je uit te voeren code.
die verwijzing goto start is vooral handig als je deze code meermaals wil gebruiken in verschillende macro's

uiteraard kun je ook je eigen code plakken op de plek waar nu "Goto Start" staat.
 
Dankjewel voor je reactie, maar ik krijg het op de een of andere manier niet aan de praat? ik heb nu het volgende, wat doe ik fout;?

Code:
Sub wachtwoord()

strWW = InputBox("Voer wachtwoord in:")

If strWW = 12345 Then
    GoTo start
Else
    MsgBox "onjuist wachtwoord"
    Exit Sub
End If

start:
 If Option42 = True Then Option41 = False
  Sheets("Calculatieblad").Columns(15).Hidden = False
  Sheets("Calculatieblad").Range("A10,A46,A65").RowHeight = 30

End Sub


Wordt de ingevoerde tekst ook getoond als "wachtwoord"? Dus die zwarte bolletjes ipv daadwerkelijk ingevoerde letters?
 
Laatst bewerkt:
@roeljongman:
Een waarde via InputBox is altijd een string en moet in de vergelijking dus tussen " tekens staan.
Een Goto is natuurlijk uit den boze. Dit is voldoende:
Code:
Sub wachtwoord()
    If InputBox("Voer wachtwoord in:") <> "12345" Then
        MsgBox "onjuist wachtwoord"
        Exit Sub
    End If
    
    Option41 = Not Option42
    With Sheets("Calculatieblad")
        .Columns(15).Hidden = False
        .Range("A10,A46,A65").RowHeight = 30
    End With
End Sub
 
Laatst bewerkt:
net zelf ook, met hulp van forumgebruikers, mee aan het stoeien geweest. Onderstaande werkt bij mij goed (excel 2013)

Code:
Sub je eigen marco ()
Dim password As Variant
 password = Application.InputBox("Enter Password", "Password Protected")

Select Case password
     Case Is = False
         'do nothing
     Case Is = "easy"
         Plaats hier de inhoud van je eigen macro
     Case Else
         MsgBox "Incorrect Password"
End Select
End Sub

zie ook bijgaande link. Vind ik een leuke site. (voor de gevorderde VBA kenner, niet zo denk)
http://www.excel-easy.com/vba/examples/protect-macro.html
 
Hi all,

ik gebruik nu deze code (en werkt perfect):

Code:
Private Sub Option42_Click()
'4-wekenprijs vermelden
 If Option42 = True Then Option41 = False
 
 strWW = InputBox("Voor deze optie binnen dit Calculatieprogramma is een wachtwoord vereist:")

If strWW = 12345 Then
    GoTo start4
Else
    MsgBox "Het opgegeven wachtwoord is onjuist!"
    Exit Sub
End If

start4:
  Sheets("Calculatieblad").Columns(15).Hidden = False
  Sheets("Calculatieblad").Range("subregels2").RowHeight = 30
End Sub

Heb ik de voldende vraag: Als ik het "wachtwoord" intik (in dit geval als test '12345') dan komt dit
als gewone tekst te staan, zie hier:
passwordbox.jpg


Is het mogelijk dat de zwarte bolletjes (of sterretjes) worden weergegeven zoals gebruikelijk bij Windows?
 
Nog een paar extra woordjes uitleg
Ik ga van de veronderstelling uit dat de code in uw eerste postje ok is.(option 42) (heb je zelf aangegeven)
In mijn voorbeeldje heb ik een knop gebruikt, hoe je deze macro in uw vb aanroept heb ik geen zicht op (geen vbtje)
Ik gok dat het een optionbutton is. (vervang gewoon de code van mijn knop naar uw option button ?)
Om het verder te testen open mijn vb bestandje en een kopie van uw echte bestand.
Sleep dan de userform uit mijn bestandje naar uw echte bestand.(kopie)
 
Maar wat levert dit onnodig lastigvallen van een gebruiker nu op ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan