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

Bij afsluiten alle bladen beveiligen

Status
Niet open voor verdere reacties.

HaBro

Gebruiker
Lid geworden
1 apr 2006
Berichten
64
Hallo ik heb een excel file met 60 bladen
na het afsluiten wil ik alle bladen beveiligen
hiervoor gebruik ik deze code
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   
For Each Sh In Worksheets
Sh.Protect Password:="wachtwoord", UserInterfaceOnly:=True
Next

Sheets("blad1").Select
Range("E12").Select

End Sub
dit werkt perfect
maar het duurt wel 20 seconde dat het file afsluit.
de vraag is
of dit sneller kan.
 
Maak er eens dit van, dan kan je zien of het beveiligen zo lang duurt of het Sluiten/Opslaan:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim st As Date
    
    st = Now
    For Each Sh In Worksheets
        Sh.Protect Password:="wachtwoord", UserInterfaceOnly:=True
    Next
    MsgBox "Beveiligd in " & Format(Now - st, "HH:MM:SS")
End Sub

Die E12 selecteren kan je overigens beter zo doen:
Code:
Application.Goto Reference:=Sheets("Blad1").Range("E12"), Scroll:=False
 
Laatst bewerkt:
In plaats van de beveiliging te zetten op het moment van de file opslaan kun je natuurlijk ook de beveiliging er opzetten op het moment van openen van het werkblad.
 
Hartelijk dank voor de reacties
Edmoor
ik heb de code erin gezet en geeft in de Msg box 18 seconde aan.

popipipo
Ik begrijp wat je bedoelt dan beveilig je alleen de bladen die je geopend heb
Dat is natuurlijk goed genoeg.

Ga kijken of ik daar wat mee kan

Maar als de voorbeeld code sneller kan hou ik me aanbevolen.
 
Als het gaat om alle werkbladen kan je ook het hele werkboek beveiligen. Daar is dan geen loop voor nodig die alle bladen langs gaat.
 
Hoi Edmoor
Daar kom ik dan weer niet op he
Dat is het
Nu werkt het pijl snel.
Bedankt weer

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  
  For Each sh In ActiveWorkbook.Worksheets
sh.Protect Password:="Wachtwoord" 
Next sh
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan