Wachtwoord Protectie in VBA (excel)

Pagina: 1
Acties:
  • 1.311 views sinds 30-01-2008
  • Reageer

  • DeX-nl
  • Registratie: April 2004
  • Laatst online: 21-06 18:48
Hallo,

Ik ben bezig met het maken van een schoolopdracht, namelijk een digitale spaarpot maken in Excel met behulp van VBA. Dit lukt allemaal redelijk goed maar nu wil ik een bepaalde optie inbouwen om alle gegevens op 0 terug te zetten.

Dus ik heb een knopje gemaakt om de rekenmachine te "resetten". Nu moet het natuurlijk niet zijn dat men perongeluk op dit knopje drukt en alle gegevens zijn weg, daarom wil ik er een wachtwoord protectie opzetten.

De bedoeling is dus;
-Ik druk op het knopje "reset de spaarpot" en ik krijg een popup waar ik het wachtwoord in moet voeren. Als dit wachtwoord goed is, wordt de spaarpot gereset.

Het reset gedeelte werkt al goed, maar nu zou ik graag willen weten hoe het gedeelte met het wachtwoord werkt. Kan iemand mij hiermee helpen?

Alvast bedankt,
Groet,

DeX-NL

  • TXC
  • Registratie: Oktober 2002
  • Laatst online: 24-12-2025

TXC

De simpelste oplossing (hoewel onveilig) is het wachtwoord, bij het drukken op de knop, op te vragen met de InputBox functie, en dan te vergelijken met het wachtwoord dat je in je VBA code hebt.

Visual Basic:
1
2
3
4
5
if InputBox("Voer wachtwoord in: ") = "het wachtwoord" then
  'reset de spaarpot
else
  msgbox "Wachtwoord incorrect!", vbCritical
end if
Maar beter is het wachtwoord ergens gecodeerd opslaan en dan het ingevoerde wachtwoord met hetzelfde een algoritme coderen en vergelijken met het opgeslagen wachtwoord.

Wat voor eisen worden er aan deze opdracht gesteld? Wordt er iets veiligs verwacht?

[ Voor 32% gewijzigd door TXC op 27-09-2005 13:27 ]


Verwijderd

misschien volstaat een extra waarschuwing aan de gebruiker? roep gewoon in het clickevent van de knop een messagebox op die om extra bevestiging vraagt:
if msgbox("weet u zeker dat u gegevens wil wissen?",vbyesno)=vbno then
exit sub
end if

  • TXC
  • Registratie: Oktober 2002
  • Laatst online: 24-12-2025

TXC

Verwijderd schreef op dinsdag 27 september 2005 @ 13:23:
misschien volstaat een extra waarschuwing aan de gebruiker? roep gewoon in het clickevent van de knop een messagebox op die om extra bevestiging vraagt:
if msgbox("weet u zeker dat u gegevens wil wissen?",vbyesno)=vbno then
exit sub
end if
No offense, maar ik vind die exit sub constructie altijd zo ranzig. Waarom niet gewoon zo:
Visual Basic:
1
2
3
4
5
if msgbox("weet u zeker dat u gegevens wil wissen?",vbyesno)=vbyes then
  'reset hem maar
end if

'Hier eindigt de sub
Of eventueel met een else als er een melding moet worden gegeven?

  • DeX-nl
  • Registratie: April 2004
  • Laatst online: 21-06 18:48
Bedankt voor jullie reactie's,

Het antwoord van _heretic_ houd ik in m'n achterhoofd, voor als het niet goed wil lukken.

En TXC,
Het is een eenvoudige spaarpot, het hoeft niet heel ingewikkeld te zijn, dus je eerste oplossing lijkt me zeker voldoende. Bedankt hiervoor.
Maar zou je iets meer uitleg en eventueel een stuk code kunnen geven aangezien ik net begonnen ben met programmeren?

Alvast bedankt!

Edit: Ah ik zie dat je de code er al hebt ingevoerd, bedankt! Ik ga het meteen proberen.

[ Voor 12% gewijzigd door DeX-nl op 27-09-2005 13:29 ]


  • DeX-nl
  • Registratie: April 2004
  • Laatst online: 21-06 18:48
Bedankt, het werkt!
Nu nog een aantal detail vraagjes hierover:

-Kan ik de titel van het wachtwoord schermpje ook veranderen?
-Kan ik het wachtwoord ook in sterretjes laten zien? (Want als ik nu het wachtwoord intyp zie ik wat ik typ)

Alvast bedankt!

Verwijderd

nt. exit sub-alternatieven genoeg, je kan de voorwaarde omkeren zoals jij gedaan hebt, of een andere routine aanroepen als aan de voorwaarde is voldaan. exit sub kan handig zijn als er teveel code binnen de if-constructie zou terecht komen. zolang je maar geen end gebruikt om de routine te beëindingen (dit laatste was eigenlijk wat ik tussen de lijnen aan de ts wou meegeven).

Verwijderd

DeX-nl schreef op dinsdag 27 september 2005 @ 13:38:
-Kan ik de titel van het wachtwoord schermpje ook veranderen?
type eens inputbox in en dan het haakje, daarna verschijnen de argumenten die je kan gebruiken. een daarvan is de titel. of druk op F1 met de cursor in de tekst 'inputbox' om een beschrijving te krijgen.
-Kan ik het wachtwoord ook in sterretjes laten zien? (Want als ik nu het wachtwoord intyp zie ik wat ik typ)
daarvoor heb je een userform nodig. dit voorbeeld is voor word, maar het werkt precies hetzelfde als in excel.

Verwijderd

Ongeschreven regel voor programeren van functies (en subs): One way in, One way out.

Je wilt eigenlijk nooit een exit sub/ exit function in je code om het overzichtelijk en leesbaar te houden. Kies liever voor een einde label ("einde:") en verwijs daar dan heen ("goto einde").

  • TXC
  • Registratie: Oktober 2002
  • Laatst online: 24-12-2025

TXC

offtopic:
GoTo is i.m.o net zo not done als de dingen die jij noemt. Als je code goed is gestructureerd heb je dat soort constructies uberhaubt niet nodig.
daarvoor heb je een userform nodig. dit voorbeeld is voor word, maar het werkt precies hetzelfde als in excel.
Super! Nooit geweten dat je naast Access ook dit soort formulieren in Word en Excel kan gebruiken :) .

[ Voor 42% gewijzigd door TXC op 27-09-2005 14:40 ]


Verwijderd

Verwijderd schreef op dinsdag 27 september 2005 @ 14:20: Kies liever voor een einde label ("einde:") en verwijs daar dan heen ("goto einde").
nee hoor. enkel voor foutafhandeling, voor de rest geen goto's.

Verwijderd

TXC schreef op dinsdag 27 september 2005 @ 14:36: Super! Nooit geweten dat je naast Access ook dit soort formulieren in Word en Excel kan gebruiken :) .
met dien verstande dat word-, excel- & powerpoint userforms <> accessformulieren, die meer weg hebben van de standaard vb form.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

DeX-nl schreef op dinsdag 27 september 2005 @ 13:38:
Bedankt, het werkt!
Nu nog een aantal detail vraagjes hierover:

-Kan ik de titel van het wachtwoord schermpje ook veranderen?
-Kan ik het wachtwoord ook in sterretjes laten zien? (Want als ik nu het wachtwoord intyp zie ik wat ik typ)

Alvast bedankt!
Kom op zeg. Druk ook eens op F1. ;)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • DeX-nl
  • Registratie: April 2004
  • Laatst online: 21-06 18:48
Ja ik gebruik F1 vaak genoeg, ik heb veel dingen zelf geprobeerd, maar als ik er niet uitkom post ik het hier. Ik heb zeker een grote eigen inzet, in het begin van dit schoolproject (digitale spaarpot) had ik totaal geen ervaring met VBA in excel, nu heb ik veel dingen zelf uitgezocht, maar ik stuitte als beginner natuurlijk op een aantal problemen, die ik zelf niet met F1 kon oplossen.

Maar bedankt voor de reacties, mijn dank is groot :)
Dit topic mag van mij wel dicht, ik heb er verder geen vragen meer over :)

Groet,
DeX-NL

  • TXC
  • Registratie: Oktober 2002
  • Laatst online: 24-12-2025

TXC

Misschien nog interessant, je schijnt de InputBox ook nog op een andere manier te kunnen masken. Zie hiervoor deze pagina. Dan heb je geen userform nodig.
Pagina: 1