Discussion:
beveiligen met wachtwoord in VBA
(te oud om op te antwoorden)
willema
2009-02-17 16:23:01 UTC
Permalink
Dag allemaal,

Kan je met VBA op een werkblad de beveiliging opheffen, dan code en dan
terug beveiligen, maar met een wachtwoord ?

Zonder wachtwoord doe ik het al langer zo :

ActiveSheet.Unprotect
'code
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

Maar nu zitten gebruikers van mijn sjabloon dikwijls te prutsen in
geblokkerde kolommen en rijen nadat ze de beveiliging (zonder wachtwoord)
hebben afgezet.

Ik heb het geprobeerd met de macrorecorder, maar de code blijft identiek
hetzelfde.

PS.: Stel dat het wachtwoord ergens in VBA als String moet staan: Geen
probleem. Ik ga er voorlopig van uit dat de gebruikers niet in de Modules
zitten rondkijken.

Groeten,
Marnik
Spreadsheet Solutions
2009-02-17 16:51:25 UTC
Permalink
WillemA;

Er van uitgaande dat je werkblad Data heet, kun je het volgende doen.


With Worksheets("Data")
.Unprotect "Wachtwoord"

Rest van de code hier opnemen

.Protect "Wachtwoord"
End With
--
Met vriendelijk groet;
Mark Rosenkrantz
--
Spreadsheet Solutions
Uithoorn
Nederland
--
E: ***@rosenkrantz.nl
W: www.spreadsheetsolutions.nl
--
Post by willema
Dag allemaal,
Kan je met VBA op een werkblad de beveiliging opheffen, dan code en dan
terug beveiligen, maar met een wachtwoord ?
ActiveSheet.Unprotect
'code
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Maar nu zitten gebruikers van mijn sjabloon dikwijls te prutsen in
geblokkerde kolommen en rijen nadat ze de beveiliging (zonder wachtwoord)
hebben afgezet.
Ik heb het geprobeerd met de macrorecorder, maar de code blijft identiek
hetzelfde.
PS.: Stel dat het wachtwoord ergens in VBA als String moet staan: Geen
probleem. Ik ga er voorlopig van uit dat de gebruikers niet in de Modules
zitten rondkijken.
Groeten,
Marnik
willema
2009-02-17 17:14:01 UTC
Permalink
Dag Mark,

Code zit in een Module en wordt uitgevoerd door een klik op een knop op het
actieve werkblad. Dat werkblad zit verschillende keren in mijn Excel-bestand.

Ik mag dus niet verwijzen naar een naam van een werkblad. Werkt ActiveSheet
ook in dit geval ?

Hoe komt het dat de macrorecorder het intypen van het wachtwoord niet heeft
meegenomen in mijn eerste code ?

Groeten,
Marnik
Post by Spreadsheet Solutions
WillemA;
Er van uitgaande dat je werkblad Data heet, kun je het volgende doen.
With Worksheets("Data")
.Unprotect "Wachtwoord"
Rest van de code hier opnemen
.Protect "Wachtwoord"
End With
--
Met vriendelijk groet;
Mark Rosenkrantz
--
Spreadsheet Solutions
Uithoorn
Nederland
--
W: www.spreadsheetsolutions.nl
--
Post by willema
Dag allemaal,
Kan je met VBA op een werkblad de beveiliging opheffen, dan code en dan
terug beveiligen, maar met een wachtwoord ?
ActiveSheet.Unprotect
'code
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Maar nu zitten gebruikers van mijn sjabloon dikwijls te prutsen in
geblokkerde kolommen en rijen nadat ze de beveiliging (zonder wachtwoord)
hebben afgezet.
Ik heb het geprobeerd met de macrorecorder, maar de code blijft identiek
hetzelfde.
PS.: Stel dat het wachtwoord ergens in VBA als String moet staan: Geen
probleem. Ik ga er voorlopig van uit dat de gebruikers niet in de Modules
zitten rondkijken.
Groeten,
Marnik
Wigi
2009-02-17 18:30:48 UTC
Permalink
ActiveSheet werkt ja.

Als je op Unprotect zoekt in de helpfiles van VBA, dan zie je wat de
argumenten zijn die je daarbij kan of moet opgeven. O.a. het wachtwoord.
--
Wigi
http://www.wimgielis.be = Excel/VBA, soccer and music
Post by willema
Dag Mark,
Code zit in een Module en wordt uitgevoerd door een klik op een knop op het
actieve werkblad. Dat werkblad zit verschillende keren in mijn Excel-bestand.
Ik mag dus niet verwijzen naar een naam van een werkblad. Werkt ActiveSheet
ook in dit geval ?
Hoe komt het dat de macrorecorder het intypen van het wachtwoord niet heeft
meegenomen in mijn eerste code ?
Groeten,
Marnik
Post by Spreadsheet Solutions
WillemA;
Er van uitgaande dat je werkblad Data heet, kun je het volgende doen.
With Worksheets("Data")
.Unprotect "Wachtwoord"
Rest van de code hier opnemen
.Protect "Wachtwoord"
End With
--
Met vriendelijk groet;
Mark Rosenkrantz
--
Spreadsheet Solutions
Uithoorn
Nederland
--
W: www.spreadsheetsolutions.nl
--
Post by willema
Dag allemaal,
Kan je met VBA op een werkblad de beveiliging opheffen, dan code en dan
terug beveiligen, maar met een wachtwoord ?
ActiveSheet.Unprotect
'code
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Maar nu zitten gebruikers van mijn sjabloon dikwijls te prutsen in
geblokkerde kolommen en rijen nadat ze de beveiliging (zonder wachtwoord)
hebben afgezet.
Ik heb het geprobeerd met de macrorecorder, maar de code blijft identiek
hetzelfde.
PS.: Stel dat het wachtwoord ergens in VBA als String moet staan: Geen
probleem. Ik ga er voorlopig van uit dat de gebruikers niet in de Modules
zitten rondkijken.
Groeten,
Marnik
MarcoS
2009-02-17 19:13:38 UTC
Permalink
Post by Wigi
ActiveSheet werkt ja.
Als je op Unprotect zoekt in de helpfiles van VBA, dan zie je wat de
argumenten zijn die je daarbij kan of moet opgeven. O.a. het wachtwoord.
Misschien helpt de parameter UserInterfaceOnly in jouw geval: de
gebruiker ervaart een beveiligd blad maar macro's werken wel.
MVrGr,
Marco

Loading...