Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

controle van tekstinvoer bij excel

hvkessel
8 antwoorden
  • 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
  • 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:
  • 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
  • werkt goed bedankt voor het idee
  • voor de toepassing van mij even goed genoeg.
    wat is dan een goede beveiliging bij excel?
  • 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.
  • 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?
  • 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?

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.