Ik heb een macro op internet gevonden om een werkblad met een wachtwoord te beveiligen. Het werkt prima, maar als ik het bestand opslaat krijg ik de melding: runtime error ‘9’: abonnement buiten bereik. Ik heb nog nooit Visual Basic geprogrammeerd of gebruikt en kan wel wat hulp gebruiken. Bedankt
De macro is:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Step 1:Protect the sheet with a password
Sheets("Sheet1").protect Password:="btfd"
'Step 2: Save the workbook
ActiveWorkbook.Save
End Sub
Antwoord 1, autoriteit 100%
‘Subscript buiten bereik’ geeft aan dat je hebt geprobeerd toegang te krijgen tot een element uit een verzameling die niet bestaat. Staat er een “Blad1” in uw werkmap? Zo niet, dan moet je dat veranderen in de naam van het werkblad dat je wilt beschermen.
Antwoord 2, autoriteit 67%
Waarom gebruik je een macro? Excel heeft ingebouwde wachtwoordbeveiliging. Wanneer u Bestand/Opslaan als… selecteert, moet er een knop Extra zijn naast de knop Opslaan, klik erop en vervolgens op “Algemene opties” waar u een “Wachtwoord om te openen” en een “Wachtwoord om te wijzigen” kunt invoeren.
Antwoord 3
Als je de foutmelding krijgt, heb je de mogelijkheid om op “Debug” te klikken: dit zal je naar de regel leiden waar de fout is opgetreden. De Dark Canuck lijkt gelijk te hebben, en ik vermoed dat de fout op de lijn voorkomt:
Sheets("Sheet1").protect Password:="btfd"
omdat hoogstwaarschijnlijk de “Blad1” niet bestaat. Als u echter zegt “Het werkt prima, maar als ik het bestand opsla, krijg ik de melding: runtime error ‘9’: abonnement buiten bereik” dan denk ik dat de fout optreedt op de tweede regel:
ActiveWorkbook.Save
Kunt u dit alstublieft controleren door eerst op de Debug-knop te drukken?
En het belangrijkste, zoals Gordon Bell zegt, waarom gebruik je een macro om een werkmap te beschermen?