• 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.

Met ASCII invoer beperken

Status
Niet open voor verdere reacties.

wieter

Terugkerende gebruiker
Lid geworden
26 jun 2009
Berichten
1.128
Voor mijn eigen archief heb ik een bestandje gemaakt, om de invoer in tekstboxen te beperken.
Met de onderstaande code is de invoer van decimale getallen toegestaan.
Dus de komma-toets kan gebruikt worden.
Echter bij excel geldt de punt-toets op het numberbloc ook als komma.
Is het mogelijk om de ASCII code zo aan te passen, dat die punt-toets (op het numberbloc) een komma geeft als resultaat?
In bijlage een voorbeeld tot nu toe.
Code:
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case Is < 31: KeyAscii = 0 'Besturingscodes vb Esc = escape
        Case 32: ' spatie
        Case 33 To 43: KeyAscii = 0 'tekens zoals "'()*-+ enz 
        Case 44: ' komma
        Case 45 To 47: KeyAscii = 0 'tekens zoals "'()*-+ enz teken 44 = een komma
        Case 48 To 57: 'getallen 0 tot 9 voor dec getallen teken 44 wel toestaan
        Case 58 To 64: KeyAscii = 0 'nog tekens zoals ;:<> enz
        Case 65 To 90: KeyAscii = 0 'hoofdletters
        Case 91 To 96: KeyAscii = 0 'nog tekens zoals []\^ enz
        Case 97 To 122: KeyAscii = 0 'kleine letters
        Case Else: KeyAscii = 0 'van 123 tot 127 nog tekens zoals {}| enz
    End Select
End Sub

Bekijk bijlage Ascii.xlsm
 
Mogelijk loopt het zo goed:
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case Is < 31: KeyAscii = 0 'Besturingscodes vb Esc = escape
        Case 32: ' spatie
        Case 33 To 43: KeyAscii = 0 'tekens zoals "'()*-+ enz
        Case 44: ' komma
        [COLOR="#FF0000"][/COLOR][B]Case 46: KeyAscii = 44 ' punt[/B]
        Case 45 To 47: KeyAscii = 0 'tekens zoals "'()*-+ enz teken 44 = een komma
        Case 48 To 57: 'getallen 0 tot 9 voor dec getallen teken 44 wel toestaan
        Case 58 To 64: KeyAscii = 0 'nog tekens zoals ;:<> enz
        Case 65 To 90: KeyAscii = 0 'hoofdletters
        Case 91 To 96: KeyAscii = 0 'nog tekens zoals []\^ enz
        Case 97 To 122: KeyAscii = 0 'kleine letters
        Case Else: KeyAscii = 0 'van 123 tot 127 nog tekens zoals {}| enz
    End Select
End Sub
 
Knap gevonden Cobbe!!
Logisch als je het ziet, maar het zelf bedenken: nee hoor.
Bedankt, grtn
 
De punt op het numerieke toetsenbord geeft het scheidingsteken dat je in de instellingen opgeeft. Gebruik je een komma als decimaalteken, dan krijg je dus een komma ook al staat er een punt op de toets. Lijkt mij een kwestie van de gebruike het juiste decimaalteken laten gebruiken, dan ben je van alle problemen af. Maar uiteraard mag het ook omslachtig :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan