• 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.

macro beveiliging aan en uit

Status
Niet open voor verdere reacties.

taco86

Gebruiker
Lid geworden
22 feb 2008
Berichten
79
Hoi allemaal,

Ik heb een excelworksheet die ik wil beveiligen.Op deze worksheet zit een formulier dat gebruikers wel nog steeds in moeten kunnen vullen en waarvan de informatie opgeslagen moet worden in beveiligde cellen. Om dit goed te laten verlopen heb ik een macro toegevoegd om bij het openen van het formulier de beveiliging op te heffen en bij het sluiten van het formulier de beveiliging weer op te roepen.

Code:
Function BeveiligingAan()


Dim sht As Worksheet

For Each sht In ActiveWorkbook.Worksheets
sht.Protect
Next sht
End Function


Function BeveiligingUit()

Dim sht As Worksheet

For Each sht In ActiveWorkbook.Worksheets
sht.Unprotect
Next sht
End Function

nu werkt dit allemaal prima, maar loopt fout zodra ik een wachtwoord op de sheets zet, als ik dat wachtwoord vervolgens achter sht.Protect zet (sht.Protect(wachtwoord)) en zelfde bij sht.Unprotect, vraag excel om het wachtwoord van het bestand en dat hebben die gebruikers nou net niet, iemand een oplossing? :rolleyes:
 
Ik snap je niet helemaal, maar heb wel veel ervaring met dit soort sheets...

Als je de cellen die gewijzigd moeten kunnen worden niet 'locked' (= eigenschap van een cel) en de beveililgde cellen wel 'locked' laat staan - want is default instelling - dan kunnen gebruikers die cellen gewoon blijven wijizigen wanneer alle sheets beveiligd zijn.
 
Ahh... ik lees je vraag nog eens en snap hem nou...

Als je geen wachtwoord opgeeft dan vraagt Excel bij het protecten wel om een wachtwoord en niet bij het unprotecten. Oplossing: geef zelf een wachtwoord op:
Code:
Function BeveiligingAan()


Dim sht As Worksheet

For Each sht In ActiveWorkbook.Worksheets
sht.Protect "73ghdk9e"
Next sht
End Function


Function BeveiligingUit()

Dim sht As Worksheet

For Each sht In ActiveWorkbook.Worksheets
sht.Unprotect "73ghdk9e"
Next sht
End Function
 
bedankt voor je reactie, maar jouw oplossing was mij probleem :P. zolang ik geen wachtwoord invul gaat het helemaal zoals ik wil, alleen zodra ik wel een wachtwoord opgeef, zoals in jouw code (en het zelfde wachtwoord natuurlijk aan de sheets) dan vraagt excel bij het openen van het formulier om dit wachtwoord
 
Tja ik had nog geen koffie op, dus mijn ogen stonden nog op half zeven... :p

Dit is wel heel vreemd. Ik werk nu ook aan een beveiligd werkboek met dito sheets, en dat gaat perfect... Welke Excel versie gebruik je?
 
Tja ik had nog geen koffie op, dus mijn ogen stonden nog op half zeven... :p

Dit is wel heel vreemd. Ik werk nu ook aan een beveiligd werkboek met dito sheets, en dat gaat perfect... Welke Excel versie gebruik je?

de XP-versie
 
Bij mij werkt dit prima als je voor het plaatsen van data in de beoogde cellen dit toevoegt:

Code:
ActiveSheet.Unprotect Password:="ABC"

Daarna weer:

Code:
ActiveSheet.Protect Password:="ABC"

ABC moet natuurlijk wel hetzelfde wachtwoord zijn waarmee je zelf de sheets hebt beveiligd.
 
Laatst bewerkt:
Als het geen geheime excelsheets betreft wil ik er vandaag wel even naar kijken!

Verder zou je kunnen proberen je sheet 'uit te kleden' om te zien waar het fout gaat.

Overigens heb ik wel meegemaakt dat gebruikers na het afsluiten van een beveiligd Excel werkboek (waarbij ook de code is beveiligd) de vraag krijgen een wachtwoord in te voeren. Dit is echter een bug van Excel en kun je alleen verhelpen door in de registry bepaalde AddIns uit te zetten (Google en Livelink zijn daarvan voorbeelden)... :shocked:
 
Als het geen geheime excelsheets betreft wil ik er vandaag wel even naar kijken!

Verder zou je kunnen proberen je sheet 'uit te kleden' om te zien waar het fout gaat.

Overigens heb ik wel meegemaakt dat gebruikers na het afsluiten van een beveiligd Excel werkboek (waarbij ook de code is beveiligd) de vraag krijgen een wachtwoord in te voeren. Dit is echter een bug van Excel en kun je alleen verhelpen door in de registry bepaalde AddIns uit te zetten (Google en Livelink zijn daarvan voorbeelden)... :shocked:

als je dat zou willen doen graag, dan post ik hem vanavond even, heb hier namelijk geen winzip, dan maak ik hem even leeg en zet er een klein stukje voorbeelden in. De code is overigens (nog) niet beveiligd
 
Bij mij werkt dit prima als je voor het plaatsen van data in de beoogde cellen dit toevoegt:

Code:
ActiveSheet.Unprotect Password:="ABC"

Daarna weer:

Code:
ActiveSheet.Protect Password:="ABC"

ABC moet natuurlijk wel hetzelfde wachtwoord zijn waarmee je zelf de sheets hebt beveiligd.

als ik dit doe levert dat het zelfde effect op als sht.Protect(ABC) en sht.Unprotec(ABC) :(
 
als ik dit doe levert dat het zelfde effect op als sht.Protect(ABC) en sht.Unprotec(ABC) :(

Dit kan ook niet tenzij ABC een variabele is. De context is :
Code:
Sub Test()
   Worksheets("Sheet1").Unprotect "ABC"

   'Doe iets...

   Worksheets("Sheet1").Protect "ABC"
End Sub
 
Als je van ABC een variabele wilt maken dan zou je het op kunnen lossen met:

Code:
Dim ABC as string
ABC = "jouw wachtwoord"

Worksheets("Sheet1").Unprotect (ABC)

   'Doe iets...

Worksheets("Sheet1").Protect (ABC)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan