Erik, je hebt wel gelijk... Maar ik vraag me af waarom je veel moeite doet om iets te automatiseren met behulp van VBA, om het vervolgens de nek om te draaien. Wat kan er dan zo belangrijk zijn dat je de code niet meer mag gebruiken? Ik geef toe, het is een simpele oplossing die kwa beveiliging nogal 'rammelt', maar hoe gewiekst zijn de gebruikers en hoeveel belang hebben ze er bij om de systeemdatum terug te zetten.
Maar ok... een zéér permanente oplossing kan ook!
Torro, plaats deze code in je ThisWorkbook module van je VBE.
Private Sub Workbook_Open()
On Error Resume Next
Const cVerwijderDatum = "14-7-2007"
If Date >= cVerwijderDatum Then
With ActiveWorkbook.VBProject
'vervang 'MagWeg' voor je eigen module-naam
.vbcomponents.Remove .vbcomponents("MagWeg")
'volgende regel is nodig op het moment dat de module reeds is verwijderd
If Err.Number = 9 Then GoTo Einde
End With
MsgBox "De automatiseringstoepassingen zijn verwijderd!", _
vbOKOnly + vbExclamation, "On your own now... ;-)"
End If
Einde:
End Sub
Maak een
aparte module aan met de code die je wilt verwijderen en plaats daar de betreffende (te verwijderen) code in. Geef die module een duidelijke naam. Zet de 'constante' cVerwijderDatum in mijn codeblokje op de gewenste startdatum en verander de 'voorbeeld-module-naam' (MagWeg) in je eigen gecreeerde modulenaam.
Bij iedere 'opening' van het workbook zal er gekeken worden of de datum is overschreden. Zo ja, dan gaat het if-statement in werking en wordt de
complete aangewezen module uit het workbook verwijderd.
Groet, Leo
BELANGRIJK Zorg er dus wel voor dat je te verwijderen code elders in een workbook hebt staan, anders zal je alles weer opnieuw moeten ontwikkelen!!!!
EDIT: Leuk... ik zie nu dat dit is mijn 400-ste bericht is...