Beveiliging opheffen op alle tabbladen
In na volgeling van ons vorig artikel over hoe je de tabbladen in een keer beveiligt nu een artikel over hoe je de beveiliging op alle tabbladen in een keer opheft.
Als je bij een werkblad alle tabbladen beveiligt hebt en je komt erachter dat een kleine wijziging noodzakelijk is, dan is dat behoorlijk veel werk. Je moet dan elk tabblad apart aanklikken en dan de beveiliging opheffen.
Dit kan sneller en dat wordt in dit artikel besproken.
We gaan een knop maken om iedere beveiliging van alle tabbladen te laten opheffen. Dit doen we doormiddel van VBA.
Vooraf is het handig om te weten hoe je het Ontwikkelaars tabblad krijgt en hoe je een macro toevoegt.
Beveiliging opheffen op alle tabbladen
Om deze knop goed te maken, gaan we eerst een code toevoegen.
Open de VBA editor, sneltoets ALT + F11, en maak daar een nieuwe Module aan.
Plak daar de volgende code:
Sub BeveiligOpheffenAlles()
Dim ws As Worksheet
Dim ps As String
ps = InputBox("Voer het wachtwoord in om de beveiliging op te heffen", vbOKCancel)
For Each ws In ActiveWorkbook.Worksheets
ws.Unprotect Password:=ps
Next ws
End Sub
Vervolgens gaan we hier een ActiveX besturingselement voor aanmaken. Ga op het lint naar het tabblad Ontwikkelaars, selecteer hier Invoegen en kies voor knop.
Koppel hier de zojuist aangemaakte module BeveiligOpheffenAlles aan.
Nu kan je in een keer alle beveiliging eraf halen.
Als resultaat krijg ik een pop-up menu met de mededeling een password in te voeren omdat de sheet is beveiligd. Hoe los ik dit op. Ik gebruik de nieuwste versie van Excell
Dak alvast voor de support.
Paul
Als je een pop-upmelding krijgt om een wachtwoord in te voeren wanneer je de beveiliging op alle tabbladen probeert op te heffen in Excel, betekent dit dat de werkmap is beveiligd met een wachtwoord. Helaas is er geen directe manier om deze beveiliging op te heffen zonder het juiste wachtwoord.
Als je het wachtwoord niet weet of niet kunt achterhalen, zijn er twee mogelijke scenario’s:
1. Je bent de eigenaar van het Excel-bestand: In dit geval kan je proberen om het wachtwoord op te vragen bij de persoon die het bestand oorspronkelijk heeft beveiligd. Als je het bestand zelf hebt beveiligd en het wachtwoord bent vergeten, dan is er helaas geen eenvoudige manier om de beveiliging op te heffen.
2. Je bent niet de eigenaar van het Excel-bestand: Als je het bestand hebt gekregen van iemand anders en deze is beveiligd, dan zal je de eigenaar moeten vragen om de beveiliging op te heffen.
Helaas, in beide gevallen, als je het wachtwoord niet kent of niet kunt krijgen, is het niet mogelijk om de beveiliging op te heffen en toegang te krijgen tot de inhoud van de beveiligde tabbladen.
Goedemiddag,
Ik gebruik deze knop nu om van meerdere bladen de beveiliging op te heffen en een aangepaste om dit voor alle bladen weer erop te zetten. Echter hoef ik dan nu maar 1 maal het wachtwoord in te vullen en vind het toch wel fijn om dit 2X te doen. Welke code kan ik hiervoor gebruiken?
Met vriendelijke groet,
Barbaros
Als je het wachtwoord twee keer wilt invoeren om de beveiliging op te heffen, kun je een kleine wijziging in de bestaande code aanbrengen.
Hier is een aangepaste versie van de code:
Sub BeveiligOpheffenAlles()
Dim ws As Worksheet
Dim ps1 As String
Dim ps2 As String
ps1 = InputBox(“Voer het wachtwoord in om de beveiliging op te heffen (eerste keer)”, vbOKCancel)
If ps1 = “” Then Exit Sub ‘ Gebruiker heeft op Annuleren geklikt
ps2 = InputBox(“Voer het wachtwoord opnieuw in om de beveiliging op te heffen (tweede keer)”, vbOKCancel)
If ps2 = “” Then Exit Sub ‘ Gebruiker heeft op Annuleren geklikt
If ps1 = ps2 Then
For Each ws In ActiveWorkbook.Worksheets
ws.Unprotect Password:=ps1
Next ws
MsgBox “Beveiliging op alle bladen is opgeheven.”, vbInformation
Else
MsgBox “De ingevoerde wachtwoorden komen niet overeen. Probeer het opnieuw.”, vbExclamation
End If
End Sub
Met deze aangepaste code moet je het wachtwoord twee keer invoeren en zullen beide wachtwoorden met elkaar worden vergeleken om te controleren of ze overeenkomen. Alleen als beide wachtwoorden hetzelfde zijn, zal de beveiliging op alle bladen worden opgeheven.
De macro werkt top. Is het ook mogelijk om op alle tabbladen de optie object bewerken ook aan te zetten en de optie het wachtwoord 2x in te moeten voeren.
Ja, het is zeker mogelijk om de optie “Object bewerken” in te schakelen voor alle tabbladen en ook de optie om het wachtwoord twee keer in te voeren te behouden.
Hier is de aangepaste code:
Sub BeveiligOpheffenAlles()
Dim ws As Worksheet
Dim ps1 As String
Dim ps2 As String
‘ Vraag om het wachtwoord twee keer in te voeren
ps1 = InputBox(“Voer het wachtwoord in om de beveiliging op te heffen (eerste keer)”, vbOKCancel)
If ps1 = “” Then Exit Sub ‘ Gebruiker heeft op Annuleren geklikt
ps2 = InputBox(“Voer het wachtwoord opnieuw in om de beveiliging op te heffen (tweede keer)”, vbOKCancel)
If ps2 = “” Then Exit Sub ‘ Gebruiker heeft op Annuleren geklikt
If ps1 = ps2 Then
‘ Schakel de optie “Object bewerken” in voor alle tabbladen
For Each ws In ActiveWorkbook.Worksheets
ws.Unprotect Password:=ps1
ws.EnableObjects xlUnlockedCells ‘ Object bewerken inschakelen
Next ws
MsgBox “Beveiliging en Object bewerken zijn op alle bladen opgeheven.”, vbInformation
Else
MsgBox “De ingevoerde wachtwoorden komen niet overeen. Probeer het opnieuw.”, vbExclamation
End If
End Sub
Met deze aangepaste code wordt nu ook de optie “Object bewerken” (EnableObjects) ingeschakeld voor alle tabbladen, naast het opheffen van de beveiliging met het wachtwoord dat twee keer moet worden ingevoerd.
Beste Joost,
Ik kom een heel eind, maar net niet wat ik wil.
Ik heb zelf geprobeerd om e.e.a. aan te passen, maar dan krijg ik toch een foutmelding.
Mag ik je vragen ook een macro te maken voor alle werkbladen tegelijk beveiligen met 2x invoeren van wachtwoord en dat dan de gebruikers wordt toegestaan om:
– ontgrendelde cellen te selecteren
– cellen op te maken
– objecten te bewerken
Alvast dank voor je reactie
Hallo Gertjan.
Bij deze. De macro zal alle werkbladen in de werkmap beveiligen met de mogelijkheid voor gebruikers om ontgrendelde cellen te selecteren, cellen op te maken en objecten te bewerken na het invoeren van het wachtwoord.
Sub BeveiligAllesMetToegang()
Dim ws As Worksheet
Dim ps1 As String
Dim ps2 As String
‘ Vraag om het wachtwoord twee keer in te voeren
ps1 = InputBox(“Voer het wachtwoord in om de beveiliging in te stellen (eerste keer)”, vbOKCancel)
If ps1 = “” Then Exit Sub ‘ Gebruiker heeft op Annuleren geklikt
ps2 = InputBox(“Voer het wachtwoord opnieuw in om de beveiliging in te stellen (tweede keer)”, vbOKCancel)
If ps2 = “” Then Exit Sub ‘ Gebruiker heeft op Annuleren geklikt
If ps1 = ps2 Then
‘ Beveilig alle tabbladen en sta selectie van ontgrendelde cellen, celopmaak en objectbewerking toe
For Each ws In ActiveWorkbook.Worksheets
ws.Protect Password:=ps1, UserInterfaceOnly:=True
ws.EnableSelection = xlUnlockedCells
ws.EnableFormatConditionsCalculation = True
ws.EnableOutlining = True
ws.EnableObjects = True
Next ws
MsgBox “Beveiliging is op alle bladen ingesteld en toegang is verleend.”, vbInformation
Else
MsgBox “De ingevoerde wachtwoorden komen niet overeen. Probeer het opnieuw.”, vbExclamation
End If
End Sub
Deze VBA code zal alle Excel werkbladen beveiligen met het opgegeven wachtwoord.
Succes!
Kan ik de gemaakte knop (Alle tabbladen beveiligen) nog bewerken (groter maken, verwijderen…)?
Ja, je kunt de opmaak van de knop wijzigen, de grootte of verwijderen. Hier zijn een paar stappen die je kunt volgen:
Als je de knop wilt bewerken, ga dan als volgt te werk:
1. Open de Visual Basic for Applications (VBA)-editor:
Druk op `ALT` + `F11` om de VBA-editor te openen.
2. Zoek je macro:
In het VBA-venster, zoek de module waarin je macro zich bevindt. Het lijkt erop dat je macro zich in een aparte module bevindt. Zoek deze module in het Project Explorer-venster aan de linkerzijde van de VBA-editor.
3. Dubbelklik op de module:
Open de module waarin je macrocode zich bevindt.
4. Pas de knop aan:
Als de knop een ActiveX-besturingselement is, kun je de eigenschappen van de knop wijzigen door er met de rechtermuisknop op te klikken en ‘Eigenschappen’ te selecteren. Hier kun je de grootte en andere opmaakopties wijzigen.
Knop verwijderen
1. Zoek de knop:
Zoek in de VBA-editor de knop die je wilt verwijderen. Als het een ActiveX-besturingselement is, zoek dan naar een besturingselement met een naam zoals “CommandButton1” in de lijst met besturingselementen voor het werkblad.
2. Verwijder de knop:
Klik met de rechtermuisknop op de knop en selecteer ‘Verwijderen’ om de knop te verwijderen.
3. Sla je werk op:
Vergeet niet om je werk op te slaan in de VBA-editor door op `CTRL` + `S` te drukken of door naar ‘Bestand’ > ‘Opslaan’ te gaan.
Zo zou het moeten lukken, succes!