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

Code plaatsen in macro's

Status
Niet open voor verdere reacties.

erikfieten

Gebruiker
Lid geworden
16 jul 2010
Berichten
20
Dag mensen,

Ik heb een jaaroverzicht (office 2007) met uren met daarin 52 tabbladen welke zijn beveiligd. Als ik een kleine aanpassing wil doen, wil ik ze dus niet 1 voor 1 opheffen weer beveiligen.

Nou is de oplossing een macro. Ik heb hier een beetje mee gestoeit, maar verder dan een macro opnemen en die uit te voeren kom ik niet. Waar moet ik de code plaatsen genoemd in de discussies en hoe kan ik hier gemakkelijk mee werken?

Voorbeeld, waarvan ik niet weet hoe ik dit moet gebruiken:

Sub BeveiligingBladenAan()
'beveiliging alle werkbladen aanzetten
For i = 1 To Worksheets.Count
Worksheets(i).Protect password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True,
Next
End Sub

Eventueel tussen de " bij password een wachtwoord invullen.


Om beveiliging voor alle sheets in een keer uit te zetten:

Sub BeveiligingBladenUit()
'beveiliging alle werkbladen uitzetten
For i = 1 To Worksheets.Count
Worksheets(i).Unprotect ("wachtwoord")
Next
End Sub

Bij voorbaat dank!

Groeten,

Erik
 
Hierbij een bestandje.
Wachtwoord = 1234

Code staat in moduleblad 1.
 

Bijlagen

Reactie

Beste HSV,

Bedankt voor je reactie en het bestand. Als ik op die button dubbel klik zie ik de code, maar ik zie niet hoe ik er mee kan werken.

Hoe voeg ik deze code toe aan mijn eigen bestand en hoe werkt? Wat is bijvoorbeeld nu de manier om alle bladen in 1 keer te beveiligen?

Groeten!
 
Plaats een toggle-button(wisselknop) uit de werkset besturingselementen op het eerste werkblad van je map. Druk nu op ALT-F11 en dubbelklik in het linkervenster(Project-VBAProject) op Blad1. Kopieër dan de code naar deze bladmodule. Door 1X te klikken op de knop zet je de beveiliging aan(zie tekst op knop), klik je terug op deze knop zet je de beveiliging uit.
 
Misschien is het handig als je de Inputbox wilt annuleren (vergeten).
Voeg dan de rood gemarkeerde regel toe in de code.

Code:
Do
  wachtwoord = InputBox("Wachtwoord invullen")
  [COLOR="red"]If wachtwoord = "" Then Exit Sub[/COLOR]     
     Loop Until wachtwoord = "1234"
 
Toevoeging

Dag HSV,

Tot zover erg bedankt. Dit scheelt me een hoop werk.

- Wat is het voordeel van de toevoeging? (If wachtwoord = "" Then Exit Sub)?

- Alle bladen zijn beveiligd en met één druk op knop kan ik dit opheffen. Mocht ik het wachtwoord vergeten kan ik via VB het wachtwoord wijzigen. Is het niet zo dat iedereen die het bestand opent via VB dit kan doen? Hoe kan ik dit beveiligen?

Groeten
 
Als je de inputbox leeglaat kom je anders in een oneindige loop terecht.
Je kan je VBA-project ook beveiligen met een wachtwoord, maar als je dit dan ook vergeet zit je pas echt met de gebakken peren (als leek wel te verstaan)
 
Reactie

Hallo,

De code functioneert nu in elk geval wel naar behoren. Ik zie niet in waarom die oneindige loop nadelig zou zijn.

Die wachtwoorden vergeet ik niet :) Daarom ben ik benieuwd hoe je het VB project kunt beveiligen.

Groeten!
 
Rechtsklik in de projectverkenner op de naam van je bestand en selecteer Eigenschappen van VBAProject >> op tabblad Beveiliging Project vergrendelen aanvinken en je wachtwoord plaatsen, wachtwoord bevestigen en OK
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan