1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Text1.BackColor = &HC0E0FF Then Text1.BackColor = &HFFFFFF
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
'transformation du code ascii des touches au dessus de la ligne AZERTY......
'pour ne pas avoir à verrouiller ou maintenir l'appuis de Maj
Case 38: KeyAscii = 49 ' de & en 1
Case 233: KeyAscii = 50 'de é en 2
Case 34: KeyAscii = 51 ' de " en 3
Case 39: KeyAscii = 52 ' de ' en 4
Case 40: KeyAscii = 53 ' de ( en 5
Case 45: KeyAscii = 54 ' de - en 6 (ici probleme si besoin d'un nombre en négatif)
Case 232: KeyAscii = 55 'de è en 7
Case 95: KeyAscii = 56 ' de _ en 8
Case 231: KeyAscii = 57 'de ç en 9
Case 224: KeyAscii = 48 'de à en 0
Case 46: KeyAscii = 44 ' de . en ,
Case 44 'autorise la ,
'ou inversement si le separateur decimal et le .
'Case 44: KeyAscii = 46 ' de , en .
'Case 46 'autorise le .
Case 8 'autorisation de <--- suppr
'(la touche Suppr, <- et -> n'est pas detecté comme KeyAscii)
Case 48 To 57 'autorisation de toutes les touches numeriques (0 à 9)
'sinon annule la derniere touche
Case Else: KeyAscii = 0 ': Beep
End Select
End Sub
Private Sub Text1_LostFocus()
If Not IsNumeric(Text1) Then
'cas de plus d'un separateur decimale ou ......
Text1.BackColor = &HC0E0FF
MsgBox "Entrée non valide", vbInformation
Text1.SetFocus
End If
End Sub |
Partager