Code kraken

Status
Niet open voor verdere reacties.
Als je een wachtwoord op het bestand zet (in jouw woorden: WWF) dan wordt de Workbook_Open event pas uitgevoerd ná het invoeren van WWF, dus vóór het controleren of MBnummer aanwezig is. Dus je hebt een kip en ei probleem in je schema opgenomen.
En bij mijn weten is het niet mogelijk via VBA je VBAProject te open middels een password.
Overigens bevat je bestand geen VBAProject. Welke versie van Excel gebruik je?
 
Goedenavond AHulpje,
Had in gedachten
- om handmatig het VBA-project de 1e keer te beveiligen.
- vervolgens als ik als Programmeur hem opent, dan evt. ook gelijk de beveiliging weg te halen met deze macro. En later als ik hem dan weer sluit als programmeur hij deze beveiliging er weer op zet.
Maar zoals je schrijft is dit dus waarschijnlijk niet mogelijk.
Dit is een test-file om later deze te kunnen gebruiken bij andere files.
Gebruik nu excel 2003
 
Dan zou ik toch maar eens overstappen naar een iets recentere versie van Excel, we zijn inmiddels 21 jaar verder...
 
Als je een wachtwoord op het bestand zet (in jouw woorden: WWF) dan wordt de Workbook_Open event pas uitgevoerd ná het invoeren van WWF, dus vóór het controleren of MBnummer aanwezig is. Dus je hebt een kip en ei probleem in je schema opgenomen.
En bij mijn weten is het niet mogelijk via VBA je VBAProject te open middels een password.
Overigens bevat je bestand geen VBAProject. Welke versie van Excel gebruik je?
Goedemorgen AHulpje,
Als je na het Workbook_Open Event het WWF inbouwd toch niet?
In het Workbook Open Event kan je dan toch het moederbord nummer ophalen.
Of zie ik iets over het hoofd?

Dus het VBA Project beveiligen zou dan met de hand moeten worden gedaan
 
Dan weet ik niet wat je met WWF bedoelt. In mijn ogen is een WWF het wachtwoord dat je moet invoeren om überhaupt het bestand te kunnen openen:
Bestand, Info, Werkmap beveiligen, Versleutelen met wachtwoord.
Als je dat doet moet je eerst het wachtwoord invoeren voordat er ook maar iets gebeurt, laat staan het uitvoeren van een macro.
 
WWF = (afgekort) WachtWoordFile
WWP = (afgekort) WachtWoordProgrammeur
WWVBA = (afgekort) WachtWoordVBA-Project

OK snap je bedoeling.
Maar had in gedachten:
- opstarten file
- Workbook Open Event
- Vervolgens met VBA Wachtwoord opvragen (zelf gemaakt met VBA)

Welk van de 3 WW is afhankelijk van of er een MotherBordnummer is en of je wel of niet een Programmeur bent.
Vandaar dat overzichtje wat ik gemaakt had.
 
Goedemorgen,

Zit met volgende vraag:
- Als je een file opstart loopt de macro door Workbook Open Event
Hierin heb ik een messagebox gemaakt met de vraag voor het wachtwoord.
Met Control-Break kan je de boel omzeilen en ben je alsnog binnen.
Is er een mogelijkheid om deze Control-Break uit te zetten?
 
Hou bij het openen van het document de Shift toets eens ingedrukt en laat deze pas los als het document geopend is. Dan wordt de Workbook_Open helemaal niet uitgevoerd.
 
Goedemorgen AHulpje,

He thanks
werkt nog niet perfect.
Heb de macro onder Workbook open event neergezet.
Het volgende gebeurd:
- Bij Messagebox voor wachtwoord
- geef ctrl-break en dan geeft excel het bericht De uitvoering van de programma'code is onderbroken
met vervolgens opties Doorgaan of beëindigen
- bij beeindigen ben je binnen
- bij doorgaan sluit hij het file
 
He goedemorgen Edmoor,
Wat je zegt klopt, maar kan daar even niets mee, want als iemand het file opent doet hij dat niet.
Stapje voor stapje :)
Heb het onderste gedeelte van Workbook Open Event hieronder even neergezet.
InputBox werkt, maar als deze geopend staat moet deze niet via Ctrl-Break te omzeilen zijn.
Bij de messagebox die dan verschijnt kan je met beeindigen het geheel omzeilen.

Code:
  Dim response As Variant
  response = InputBox("<<<<<<<<<<<<< Message Box >>>>>>>>>>>>>" & vbNewLine & vbNewLine & vbNewLine & "#    Dit File is beveiligd!" & vbNewLine & vbNewLine & "#    Uw password graag!" & vbNewLine & vbNewLine)
  If response = 1234 Then
    GoTo Door
  Else
    Application.Goto [Blad1!A1]                                 ' Gaat naar wb Control Cel A7
    Application.DisplayAlerts = False                  ' zet vraag uit om file op te slaan
    ThisWorkbook.Close                                 ' sluit het huidige file
    Application.DisplayAlerts = True                   ' zet vraag aan om file op te slaan
  End If
Door:
On Error GoTo handleCancel
MsgBox ("1  Err =  " & Err)
Application.EnableCancelKey = xlErrorHandler
MsgBox ("This may take a long time: press ESC to cancel Err =  " & Err)
    Application.Goto [Blad1!A1]                                 ' Gaat naar wb Control Cel A7
    Application.DisplayAlerts = False                  ' zet vraag uit om file op te slaan
    ThisWorkbook.Close                                 ' sluit het huidige file
    Application.DisplayAlerts = True                   ' zet vraag aan om file op te slaan

'For x = 1 To 1000000 ' Do something 1,000,000 times (long!)
' ' do something here
'Next x
 
handleCancel:
MsgBox ("2  Err =  " & Err)
If Err = 18 Then
 MsgBox "You cancelled"
End If
 
Ok ben eruit denk ik :-)
Vraag is nu zijn er nog meer mogelijkheden om zoals met Ctrl-Braeak de boel te omzeilen?

Code:
  response = InputBox("<<<<<<<<<<<<< Message Box >>>>>>>>>>>>>" & vbNewLine & vbNewLine & vbNewLine & "#    Dit File is beveiligd!" & vbNewLine & vbNewLine & "#    Uw password graag!" & vbNewLine & vbNewLine)
  If response = 1234 Then
    GoTo Door
  Else
    Application.Goto [Blad1!A1]                          ' Gaat naar wb Blad1 Cel A1
    Application.DisplayAlerts = False                  ' zet vraag uit om file op te slaan
    ThisWorkbook.Close                                     ' sluit het huidige file
    Application.DisplayAlerts = True                  ' zet vraag aan om file op te slaan
  End If

handleCancel:
  If Err = 18 Then
    Application.Goto [Blad1!A1]                       ' Gaat naar wb Blad1 Cel A1
    Application.DisplayAlerts = False               ' zet vraag uit om file op te slaan
    ThisWorkbook.Close                                  ' sluit het huidige file
    Application.DisplayAlerts = True               ' zet vraag aan om file op te slaan
  End If
Door:
 
Zie #30.
Dan kom je ook gewoon in het document.
Maar goed, dat doet kennelijk niemand.

Ctrl-Break of ESC op de Inputbox bij je code in #33 geeft het volgende venster:
Clipboard_08-06-2024_01.jpg

Bij een klik op beëindigen kom je gewoon in het document.
Je maakt geen gebruik van wat AHulpje in #29 liet zien.

Maak er eens dit van:
Code:
Private Sub Workbook_Open()
  On Error GoTo handleCancel
  Application.EnableCancelKey = xlErrorHandler
  response = InputBox("<<<<<<<<<<<<< Message Box >>>>>>>>>>>>>" & vbNewLine & vbNewLine & vbNewLine & "#    Dit File is beveiligd!" & vbNewLine & vbNewLine & "#    Uw password graag!" & vbNewLine & vbNewLine)
  If response <> 1234 Then ThisWorkbook.Close

handleCancel:
  Resume Next
End Sub
 
Laatst bewerkt:
Voor wie is het document 'beveiligd' ?
Tegen wie is het document 'beveiligd' ?
Welk risico wordt met 'beveiliging' vermeden ?
Wat is het nut van 'beveiliging' tijdens de ontwikkeling van een bestand ?
 
Zie #30.
Dan kom je ook gewoon in het document.
Maar goed, dat doet kennelijk niemand. Hier ben ik nog niet uit

Ctrl-Break of ESC op de Inputbox bij je code in #33 geeft het volgende venster: klopt
Bekijk bijlage 379425

Bij een klik op beëindigen kom je gewoon in het document. nee klopt niet, file wordt direct gesloten
Je maakt geen gebruik van wat AHulpje in #29 liet zien. dus wel

Maak er eens dit van:
Code:
Private Sub Workbook_Open()
  On Error GoTo handleCancel
  Application.EnableCancelKey = xlErrorHandler
  response = InputBox("<<<<<<<<<<<<< Message Box >>>>>>>>>>>>>" & vbNewLine & vbNewLine & vbNewLine & "#    Dit File is beveiligd!" & vbNewLine & vbNewLine & "#    Uw password graag!" & vbNewLine & vbNewLine)
  If response <> 1234 Then ThisWorkbook.Close  dit zou misschien kunnen, maar daar ik 3 verschillende wachtwoorden krijg, heb ik ze zo apart gehouden.

handleCancel:
  Resume Next
End Sub
Dus heb het wel even uitgezocht met die Error handler van AHulpje in #29
Zit erin verwerkt.
Nu even aandacht voor dat shift openen file gebeuren.
Als je dit gebruikt, heb je nergens iets wat hij dan doet.
 
Ok zie al wat er gebeurd is :-(
Dus nu een optie zoeken om dat shift - openen file tegen te gaan

Nogmaals de code die ik gebruik:

Code:
  Application.EnableCancelKey = xlErrorHandler
  On Error GoTo handleCancel

  response = InputBox("<<<<<<<<<<<<< Message Box >>>>>>>>>>>>>" & vbNewLine & vbNewLine & vbNewLine & "#    Dit File is beveiligd!" & vbNewLine & vbNewLine & "#    Uw password graag!" & vbNewLine & vbNewLine)
  If response = 1234 Then
    GoTo Door
  Else
    Application.Goto [Blad1!A1]                                 ' Gaat naar wb Control Cel A7
    Application.DisplayAlerts = False                  ' zet vraag uit om file op te slaan
    ThisWorkbook.Close                                 ' sluit het huidige file
    Application.DisplayAlerts = True                   ' zet vraag aan om file op te slaan
  End If
handleCancel:
  If Err = 18 Then
    Application.Goto [Blad1!A1]                                 ' Gaat naar wb Control Cel A7
    Application.DisplayAlerts = False                  ' zet vraag uit om file op te slaan
    ThisWorkbook.Close                                 ' sluit het huidige file
    Application.DisplayAlerts = True                   ' zet vraag aan om file op te slaan
  End If
Door:
MsgBox ("#33")
 
En dan unzipt iemand het document, kijkt met een HEX editor in VBAProject.bin en achterhaalt het wachtwoord.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan