• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA tellen van cijfers in tekstbox

Status
Niet open voor verdere reacties.

PolBE

Gebruiker
Lid geworden
12 okt 2016
Berichten
53
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
.....
 
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 bewerkt:
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 bewerkt:
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:
Bekijk bijlage Cijfers.xlsm
 
Laatst bewerkt:
Beste Edmoor

Sorry, ik had het net te laat gezien. Zie mijn aanvulling bij vorig bericht. Werkt perfect bedankt
Pol
 
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 bewerkt:
Bedankt Edmoor voor je toelichting
Groeten
Pol

Probleem is voor mij nu opgelost
 
Was ook een extraatje.
Fijn dat je probleem is opgelost :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan