anoniem Geplaatst: 23 november 2005 Delen Geplaatst: 23 november 2005 via een textbox in excel vraag ik de gebruiker om een sleutel. soort beveiliging dus. als die sleutel fout is sluit het bestand nu. ik wil het zo maken dat de gebruiker dan opnieuw de sleutel kan intikken in die textbox maar het lukt me niet. onderstaande is dat deel van de code wie kan mij verder helpen? Private Sub cmd1_enter() Password = "test" controle = TextBox1.Text If controle <> Password Then Windows("bestand.xls").Close savechanges:=False Else frm1.Hide End If frm1.Hide Worksheets("opgave").Visible = True Worksheets("opgave").Activate End Sub Quote Link naar reactie
anoniem Geplaatst: 23 november 2005 Auteur Delen Geplaatst: 23 november 2005 Je kan de controle in een loop gooien. Zet er een teller in, waardoor je kunt bepalen hoe vaak iemand een code mag invoeren. [code:1:29f3935144] Private Sub cmd1_enter() Dim Password As String Dim Controle As String Static Teller As Integer Password = "test" controle = TextBox1.Text If controle <> Password And Teller < 4 Then Teller = Teller + 1 MsgBox "Onjuiste invoer" TextBox1.Text = "" Exit Sub ElseIf controle <> Password And Teller = 4 Then Windows("bestand.xls").Close savechanges:=False Else frm1.Hide Worksheets("opgave").Visible = True Worksheets("opgave").Activate End If End Sub [/code:1:29f3935144] De "Static Teller As Integer" definieert een statische variabele. De waarde hiervan wordt bewaard en kan bewerkt worden zolang het formulier in het geheugen blijft staan. Ik heb de code niet getest, dus dat moet je zelf even doen :wink: Quote Link naar reactie
anoniem Geplaatst: 23 november 2005 Auteur Delen Geplaatst: 23 november 2005 Je kan shift indrukken tijdens het openen van de sheet en dan worden macro's omzeild, waarna je handmatig sheets kan unhiden. Niet echt een goeie beveiliging dus. Jullie gebruiken nu frm1.Hide om een form te verbergen, maar die blijft dan wel geladen, terwijl je hem na invoeren van de juiste code niet meer nodig hebt. Je gooit hem helemaal uit het geheugen met: Unload frm1 Quote Link naar reactie
anoniem Geplaatst: 23 november 2005 Auteur Delen Geplaatst: 23 november 2005 werkt goed bedankt voor het idee Quote Link naar reactie
anoniem Geplaatst: 23 november 2005 Auteur Delen Geplaatst: 23 november 2005 voor de toepassing van mij even goed genoeg. wat is dan een goede beveiliging bij excel? Quote Link naar reactie
anoniem Geplaatst: 23 november 2005 Auteur Delen Geplaatst: 23 november 2005 Openen/Wijzigen-wachtwoord is al wat beter. Om die te omzeilen heb je extra software nodig (om password te kraken). Zit bij Opslaan als... bovenin het scherm in een uitklapmenuutje, helemaal rechts (heet bij mij Tools - General options). Nog wat beter is de ntfs-beveiliging van Windows (bestand - eigenschappen - beveiliging, op userniveau) met als voordeel dat je gebruikers niet een extra password nodig hebben, maar afhankelijk van hun windows-login toegang krijgen. Die optie valt natuurlijk af als het bestand gedistribueerd moet worden. Quote Link naar reactie
anoniem Geplaatst: 24 november 2005 Auteur Delen Geplaatst: 24 november 2005 Paulus, de mogelijkheden die jij geeft zijn bekend bij mij. Maar wat doe je met een bestand dat opent via een macro zoals ik er heb? Ik dacht als je de control break routine inbouwt ( Application.EnableCancelKey = xlDisabled) je ook de SHIFT methode onderdrukt. Dus niet. moet ik nu constateren dat je excel bestanden die openen met een macro/vba code eerst moet beveiligen via bestandbeveiliging van windows? eigenlijk wel krom,he? Is er geen andere manier om de SHIFT methode de disable status te geven? Quote Link naar reactie
anoniem Geplaatst: 24 november 2005 Auteur Delen Geplaatst: 24 november 2005 Niet dat ik weet, maar je hoeft toch niet meteen uit te wijken naar de windows-beveiliging? Een wachtwoord voor openen is toch al afdoende? Quote Link naar reactie
anoniem Geplaatst: 24 november 2005 Auteur Delen Geplaatst: 24 november 2005 ja daar zal ik het dan mee doen,bedankt. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen