VBA code excel werkt enkel als project niet beveiligd is.

Status
Niet open voor verdere reacties.

Killerclown

Gebruiker
Lid geworden
30 dec 2007
Berichten
181
Hoi,

Ik heb een stukje code die na een bepaalde datum alle macro's/code in VBA verwijdert in mijn excel.
Dit werkt perfect maar enkel als er geen paswoord op het project staat.

Bestaat er een manier om dit te omzeilen? Ik bedoel daarmee dat de code werkt ook als er een paswoord staat op het project?
Kan ik bijvoorbeeld bij de sub Workbook_Open() het project unlocken zodat de code werkt?
Of zijn er andere manieren?

Bedankt.
 
Zo?
Code:
Sub killerclown()
ActiveSheet.Unprotect "ww"
[COLOR="#008000"]'uw code[/COLOR]
ActiveSheet.Protect "ww"
End Sub
ww vervangen door uw wachtwoord.
 
Zo?
Code:
Sub killerclown()
ActiveSheet.Unprotect "ww"
[COLOR="#008000"]'uw code[/COLOR]
ActiveSheet.Protect "ww"
End Sub
ww vervangen door uw wachtwoord.

Volgens mij dient dit om een blad te beveiligen. Wat ik bedoel is de projectbeveiliging.
 
Al het quoten is niet nodig en verder geef je geen enkele informatie of jouw code.
 
Sorry voor het quoten :)

Dit is de code die loopt. Enkel de prompt moet ik nog wegdoen maar die laat ik om praktische redenen nog even staan.
Dit werkt perfect maar enkel als er geen paswoord op het project staat. Eens er een paswoord op staat, loopt het vast.
En dat paswoord wil ik nu niet wegdoen want anders kunnen ze in de codering prutsen :)

Na een bepaalde datum mag de code niet meer werken en ik had dit eerst opgelost met "If Date > exdate then exit sub".
Maar na wat lezen op het internet blijkt dat het paswoord van het project gemakkelijk te kraken is en dan kan men terug aan de codering en dat mag nu net niet, vandaar het deleten.

Code:
Private Sub Workbook_Open()

    Dim exdate As Date
    exdate = "28/06/2019"    'dd/mm/jjjj
    If Date > exdate Then DeleteAllCode
End Sub


Sub DeleteAllCode()
         
    Dim x               As Integer
    Dim Proceed         As VbMsgBoxResult
    Dim Prompt          As String
    Dim Title           As String
          
    Proceed = MsgBox(Prompt, vbYesNo + vbQuestion, Title)
    If Proceed = vbNo Then
        MsgBox "Procedure Canceled", vbInformation, "Procedure Aborted"
        Exit Sub
    End If
     
    On Error Resume Next
    With ActiveWorkbook.VBProject
        For x = .VBComponents.Count To 1 Step -1
            .VBComponents.Remove .VBComponents(x)
        Next x
        For x = .VBComponents.Count To 1 Step -1
            .VBComponents(x).CodeModule.DeleteLines _
            1, .VBComponents(x).CodeModule.CountOfLines
        Next x
    End With
    On Error GoTo 0
     
    ActiveWorkbook.Close SaveChanges:=True
     
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan