TextBox "Monétaire" - Chiffres, virgule, € + Récupération valeur numérique
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 SubLe 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 ?
Bonjour Heelflip
Par contre le KeyPress créé un énorme Lag sur mon UserForm, quand je clique dans le TextBox
Pour moi, ce n'est pas le fait de cliquer avec la souris ça n'entre pas dans l'évènement KeyPress
N'as-tu pas un TextBoxPrix_Enter par hasard
A+
Salut Bruno, non c'est bien un keypress, je suis en déplacement mais dès que je rentre je mettrais le fichier en pièce jointe 👍🏼
Bonjour le forum
Bonjour Heelflip, BrunoM45
Pour ma part, pas de soucis particulier. Je t'ai mis en pièce jointe le fichier "très peu retravaillé" qui fonctionne.
Bon ouikand à toutes & à tous
Salut à vous deux,
Je n'y crois pas... J'ai voulu vous envoyer le fichier et ça fonctionne désormais parfaitement... A n'y rien comprendre hier soir j'ai même redémarré le PC au cas ou et rien n'y faisait ça il y avait tout de même ce lag... Encore une bizarrerie des ordinateur que je ne résoudrai pas...
Sinon au cas ou quelqu'un cherche la réponse pour récupérer la valeur numérique de la TextBox j'ai simplement écrit:
Feuil1.Cells (1, "A") = TextBoxPrix * 1Désolé du coup de vous avoir dérangé pour rien
Re le forum
Re le fil
@Heelflip : Si tu conserves ta version du post #1, il me semble qu'à la sortie du TextBox, ta valeur est bien numérique, n'a pu contenir qu'une "virgule" mais ne comporte pas le sigle "€uro" ? A moins que tu n'ai placé un Label à droite de ton TextBox avec le sigle ?????
Bon dimanche et bon match - Allez les bleus
Erico,
Non c'est cette partie qui me transforme la TextBox en monétaire:
TextBoxPrix = Format(TextBoxPrix, "currency")Du coup quand je récupérais la valeur cela me donnais du texte. Mais en faisait le Value * 1 ça se met en nombre