Bonsoir à tous,
Je cherche a faire une TextBox dans laquelle on viendrait taper les chiffre, elle se mettrait en XXX,XX € AfterUpdate et on aurait un contrôle pour qu'il n'y ait qu'une seule virgule et que des chiffres. Après cette partie, je chercherai a récupérer uniquement la valeur sans l'euro pour garder une valeur numérique mais c'est une autre histoire qui semble moins poser de soucis que la première.
J'ai donc récupérer des codes et idées par ci par là pour en arriver à ces deux codes:
Sub TextBoxPrix_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Transformer le point en virugle
If KeyAscii = 46 Then
KeyAscii = 44
End If
'Accepter une seule virgule et Si la valeur n'est pas comprise entre 0 et 9
If InStr("1234567890,", Chr(KeyAscii)) = 0 Or (InStr(TextBoxPrix, ",") <> 0 And Chr(KeyAscii) = ",") Or TextBoxPrix.SelStart = 0 And Chr(KeyAscii) = "," Then
KeyAscii = 0: Beep 'On annule la pression sur la touche + Bip
End If
End Sub
Private Sub TextBoxPrix_AfterUpdate()
TextBoxPrix = Format(TextBoxPrix, "currency")
End Sub
Le Format fonctionne super bien il applique bien les deux chiffres après la virgule et le €. Par contre le KeyPress créé un énorme Lag sur mon UserForm, quand je clique dans le TextBox, le curseur arrive genre entre 3 et 5 secondes après...
Est-ce qu'il semble si compliqué que cela ? Ou ais-je raté quelque chose ?