VBA-werkbladen beschermen/beschermen opheffen

In deze zelfstudie leert u alles over Excel-werkbladbeveiliging in VBA - Werkbladen in Excel beveiligen of de beveiliging opheffen.

Beveiliging Excel-werkblad opheffen zonder wachtwoord

Gebruik deze eenvoudige regel code om de beveiliging van een werkblad op te heffen dat niet met een wachtwoord is beveiligd:

1 Werkbladen ("Blad1").Bescherming opheffen

Beveiliging Excel-werkblad opheffen met wachtwoord

Als u de beveiliging van een werkblad met een wachtwoord wilt opheffen, moet u ook het wachtwoord invoeren:

1 Worksheets ("Blad1"). Beveiliging "Wachtwoord" opheffen

Beveiligingsblad opheffen - Wachtwoord vergeten

Als u de beveiliging van een werkblad wilt opheffen zonder het wachtwoord te kennen, moet u een invoegtoepassing voor wachtwoordherstel gebruiken.

Werkbladen beveiligen

Met Worksheet Protection kunt u bepaalde aspecten van het werkblad blokkeren voor bewerking.

Dit menu is te vinden in Home > Opmaak > Blad beveiligen of door met de rechtermuisknop op de naam van het bladtabblad te klikken:

Meestal wordt dit gebruikt om "vergrendelde" cellen te beschermen tegen bewerking, zodat de eindgebruiker alleen bepaalde cellen kan bewerken.

U kunt cellen vergrendelen door ze te selecteren en de Tabblad Beveiliging van de Celopmaakmenu (CTRL + 1).

U kunt ook voorkomen dat de gebruiker de werkbladstructuur wijzigt (rijen en kolommen invoegen, verwijderen of vergroten/verkleinen), of interactie heeft met AutoFilters, en nog veel meer.

Werkblad beveiligen - zonder wachtwoord

Misschien wilt u een werkblad beveiligen zonder een wachtwoord in te voeren. Dit voorkomt onbedoelde wijzigingen aan het werkblad en geeft de gebruiker toegang om desgewenst wijzigingen aan te brengen.

1 Werkbladen ("Blad1").Beschermen

Werkblad beveiligen - Wachtwoordbeveiliging

1 Werkbladen ("Blad1"). Bescherm "Wachtwoord"

Werkbladinstellingen beveiligen

De bovenstaande voorbeelden beschermen werkbladen met de standaard beveiligingsinstellingen. In plaats daarvan wilt u misschien aanpassen wat wordt beschermd:

12345 Worksheets("Blad1").Bescherm wachtwoord:=strPassword, DrawingObjects:=True, Contents:=True, Scenario's:=True, _UserInterfaceOnly:=True, AllowFormattingCells:=False, AllowFormattingColumns:=False, _AllowFormattingRows:=False, AllowInsertingColumns:=False, AllowInsertingRows:=False, _AllowInsertingHyperlinks:=False, AllowDeletingColumns:=False, AllowDeletingRows:=False, _AllowSorting:=False, AllowFiltering:=False, AllowUsingPivotTables:=False

In plaats van de bovenstaande syntaxis te gebruiken, raad ik aan een macro op te nemen met de gewenste instellingen (gekozen met het menu Werkbladbeveiliging hierboven) en de opgenomen code in uw procedure te kopiëren + plakken.

Blad beschermen - VBA toestaan ​​wijzigingen aan te brengen

Wanneer u een blad beveiligt, is de beveiliging standaard van toepassing op VBA-bewerkingen naast gebruikersacties. Als VBA probeert een vergrendelde cel te wijzigen, ziet u een runtime-fout 1004. Om dit te voorkomen, kunt u de beveiliging van uw werkbladen opheffen en opnieuw beveiligen wanneer VBA ermee moet communiceren:

123456789 Sub Edit_Sheet1()'Bescherming van blad1 opheffen'Werkbladen ("Blad1").Bescherming opheffen'Doe iets aan blad1''Blad1 opnieuw beveiligen'Werkbladen ("Blad1").BeschermenEinde sub

Het is echter gemakkelijk om te vergeten de beveiliging van uw werkbladen op te heffen en/of opnieuw te beveiligen. Dit kan de kans op een codeerfout vergroten.

In plaats daarvan kunt u de instelling UserInterFaceOnly gebruiken. Indien WAAR, worden werkbladen ALLEEN beschermd tegen gebruikers, NIET tegen VBA.Uw VBA-code is vrij om het werkblad te bewerken, net alsof het is ontgrendeld.

Twee belangrijke punten over UserInterFaceOnly:

  • Deze instelling is niet beschikbaar in het menu Werkbladbeveiliging (hierboven weergegeven). Het is een instelling die in VBA moet worden gedefinieerd.
  • De instelling wordt niet opgeslagen wanneer u een werkmap sluit. Elke keer dat een werkmap wordt geopend, moet deze opnieuw worden gedefinieerd.

Dus om de eigenschap UserInterFaceOnly in te stellen, moet u de volgende Workbook_Open-gebeurtenisprocedure in de ThisWorkbook-module plaatsen:

1234567 Privé subwerkboek_Open()Dim ws als werkbladVoor elke ws in dit werkboek.Werkbladenws.Protect UserInterfaceOnly:=TrueVolgende wsEinde sub

Workbook_Open is een speciale gebeurtenisprocedure die wordt uitgevoerd telkens wanneer de werkmap wordt geopend. Het moet in de ThisWorkbook-module worden geplaatst. Als alternatief kunt u de gebeurtenisprocedure Auto_Open gebruiken (hier niet behandeld).

De beveiliging van alle bladen opheffen Macro

Met deze macro wordt de beveiliging van alle bladen in een werkmap opgeheven:

123456789 'Bescherm alle werkbladen ongedaan maken'Sub UnProtectAllSheets()Dim ws als werkbladVoor elke ws In werkbladenws.Unprotect "wachtwoord"Volgende wsEinde sub

Bescherm alle bladen Macro

Deze macro beschermt alle bladen in een werkmap:

123456789 'Beveilig alle werkbladen'Sub ProtectAllSheets()Dim ws als werkbladVoor elke ws In werkbladenws.Bescherm "wachtwoord"Volgende wsEinde sub

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave