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 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 ?

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

21essai-heelflip.xlsm (24.59 Ko)

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 * 1

Dé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

Rechercher des sujets similaires à "textbox monetaire chiffres virgule recuperation valeur numerique"