Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 8 van 8

Onderwerp: VBA tellen van cijfers in tekstbox

  1. #1
    Vraag is opgelost

    VBA tellen van cijfers in tekstbox

    Beste forum

    Ik worstel nog met een probleempje. Al lijkt het stom ik heb hier al uren naar gezocht.
    In een textbox mag alleen een getal van 6 cijfers worden ingevuld, nadien geef ik de opmaak 000/000 (opdat de gebruiker de 6 cijfers achter elkaar kan typen.) Nadien (After Update) komt de / er tussen staan. Deze manier omdat een 'masker' zoals bij Access niet bestaat, denk ik. Werkt perfect maar probleem is nu als het getal fout is ingevuld en de gebruiker dit aanpast telt de computer 7 tekens en volgt de foutmelding. Hoe kan ik dit oplossen dat er steeds een correct getal wordt ingevoerd?
    Ook raar dat bij <> 6 er ook een foutmelding volgt.
    Bedankt

    Code:
    If Len(txtCode) < 7 And Len(txtCode) > 5 Then
        txtCode.Value = Format(txtCode.Value, "000/000") 'Then
    .....

  2. #2
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Welkom bij Helpmij

    Wat voor een textbox is dat?
    In een userform?
    Op een werkblad? En is het dan een formulier textbox of ActiveX?

    Het komt in ieder geval hier op neer (ActiveX textbox en Userform):
    Code:
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        Select Case KeyAscii
            Case 48 To 57
                Select Case Len(TextBox1.Text)
                    Case 7: KeyAscii = 0
                    Case 3: TextBox1.Text = TextBox1.Text & "/"
                End Select
            Case Else
                KeyAscii = 0
        End Select
    End Sub
    Het format van 000/000 is dan ook al geregeld.
    Laatst aangepast door edmoor : 12 oktober 2017 om 19:48 Reden: Welkom
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  3. #3
    Beste Edmoor

    Vooreerst mijn excuses, ik was vergeten te zeggen dat het over een userform ging.

    Bedankt voor je inbreng edmoor. De code werkt wel goed en de / komt op de juiste plaats maar ik kan wel letters ingeven. Ook is de lengte niet beperkt en kan ik wel 10 tekens ingeven.
    Ik heb jouw formule bij 'change' gezet, wat toch zo hoort denk ik. Om de lengte te beperken heb ik na update de lengte beperkt. Kan dit echter niet in de jouw code bijgevoegd worden.
    Bedankt al op voorhand voor de hulp


    Sorry, te snel gereageerd: dit was ik vergeten: (werkt perfect, bedankt)

    Code:
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Laatst aangepast door PolBE : 12 oktober 2017 om 20:27

  4. #4
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Je hoeft die code alleen maar zonder enige wijziging achter het userform te plakken, dus niet bij de change of zo omdat het al een Sub op zich is.
    Ook in de update hoef je niets te doen.

    Zie bijgevoegd document:
    Cijfers.xlsm
    Laatst aangepast door edmoor : 12 oktober 2017 om 20:30 Reden: Voorbeeld document
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  5. #5
    Beste Edmoor

    Sorry, ik had het net te laat gezien. Zie mijn aanvulling bij vorig bericht. Werkt perfect bedankt
    Pol

  6. #6
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Als je deze er nog bij zet kan men ook niet meer met de pijltjestoetsen de boel beïnvloeden:
    Code:
    Private Sub textBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 37 Or KeyCode = 39 Then KeyCode = 0
    End Sub
    Laatst aangepast door edmoor : 12 oktober 2017 om 20:52
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

  7. #7
    Bedankt Edmoor voor je toelichting
    Groeten
    Pol

    Probleem is voor mij nu opgelost

  8. #8
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Was ook een extraatje.
    Fijn dat je probleem is opgelost
    "Hardware: The parts of a computer system that can be kicked. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Aanbiedingen