Voici le code concernant une zone de saisie que j'ai placée dans une boîte de dialogue.
Ma zone de saisie s'appelle R001.
Code :
- Private Sub R001_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
- If KeyAscii = Asc(Point) Then
- If InStr(R001, Virgule) = 0 Then
- KeyAscii = Asc(Virgule)
- Else
- KeyAscii = 0
- End If
- ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
- KeyAscii = 0
- ElseIf InStr(R001, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
- KeyAscii = 0
- End If
-
- If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
- End Sub
|
Si je comprends bien ce bout de code, il permet de :
- si l'on saisit un point, il se transforme en virgule
- si l'on tabule, on passe au champs suivant (d'ailleurs - parfois - ça "bugge" ; la tabulation s'insère au montant saisi et l'on ne passe pas au champs suivant
; mais ça ne le fait pas tout le temps... ),
- les entrées décimales sont permises.
Mon souci est que je n'arrive pas à saisir de montants négatifs... avec le "-" du pavé numérique...
En fait, quand j'ai commencé à faire mon programme sous VBA il y a 3 mois, j'ai dû créé une boîte de dialogue dans laquelle je saisis des montants...
Le but est d'utiliser le pavé numérique et que chaque montant saisi dans une zone de saisie soit reformaté dès que l'on passe dans la seconde zone de saisie (il y a grosso modo une cinquantaine de zones de saisie dans ma boîte de dialogue).
Exemple :
je tape 4520 et ça devient 4 520,00
je tape 4520.25 et ça devient 4 520,25
par contre, le signe "-" n'est pas pris en compte...
Quelqu'un peut m'aider ?
Merci d'avance