Format numérique ne fonctionne pas dans TextBox

Bonjour,

Je sais que c'est un sujet maintes fois débattu, mais je sèche complètement

J'ai créé une ComboBox avec des TextBox format date, format texte, mais lorsque je rentre un format numérique j'obtiens un résultat bizarre : 1.00 €23.5 au lieu de 123 €

mon code :

Private Sub depense9_Change()

depense9 = format(depense9.Value, "0.00 €")

End Sub

Pouvez-vous m'aider ?

Merci d'avance

Bonjour,

La moindre saisie dans la Textbox déclenche immédiatement votre macro, donc elle s’exécute dès la saisie du 1, qui devient ensuite 1.00€ puis ensuite vous entrez 2 et 3, et là je ne sait pas trop quel est le résultat de tout ça...

En tout cas, la méthode n'est pas bonne, si vous souhaitez rester sur ce type de fonctionnement, utilisez plutôt l’événement _AfterUpdate(), qui permet d'attendre la fin de la saisie.

Sinon, autant ajouter un label en bout de Textbox et ne pas modifier le format à la saisie. D'autant plus que lorsque vous transférerez la valeur saisie dans une cellule, elle risque d'être reconnue comme du texte et pas comme une valeur numérique au format monétaire.

Merci Pedro22,

Il faut donc changer Change() par _AfterUpdate()

En saisie, ça fonctionne, mais le résultat sur ma feuille donne du texte et pas du numérique comme vous me l'indiquez :

"D'autant plus que lorsque vous transférerez la valeur saisie dans une cellule, elle risque d'être reconnue comme du texte et pas comme une valeur numérique au format monétaire"

Merci Pedro22,

Il faut donc changer Change() par _AfterUpdate()

En saisie, ça fonctionne, mais le résultat sur ma feuille donne du texte et pas du numérique comme vous me l'indiquez :

"D'autant plus que lorsque vous transférerez la valeur saisie dans une cellule, elle risque d'être reconnue comme du texte et pas comme une valeur numérique au format monétaire"

Comme son nom l'indique, le contenu d'une Textbox est du texte. C'est au moment du transfert qu'il faut le convertir en nombre. S'il n'y a pas de caractère autre que des nombres, et que le séparateur décimal est une virgule, il suffit de faire quelque chose du genre :

Range("Truc") = Textbox.Value * 1

Sinon il faudra d'abord "manipuler" le contenu de la Textbox avant de le transférer, par exemple :

Range("Truc") = Replace(Replace(Textbox.Value*1,".",","),"€","") * 1

C'est exactement le problème, j'ai des textbox en format texte, d'autre en format date et d'autres en format qui doivent être numérique, je vous joins le fichier c'est peut-être plus simple

Bonjour,

Si tu veux plus de simplicité dans la mise en oeuvre d'un userform, n'utilise pas un userform mais dédie un onglet our cela : tu bénéficies ainsi de tous les contrôles plus faciles à mettre en ouvre, ainsi que la mise en page

C'est juste un avis tout personnel

https://www.excel-pratique.com/fr/telechargements/utilitaires/excel-formulaire-no438.php

Merci pour ton aide, je vais tester sans userform,

C'est parfait tout fonctionne, merci encore

Rechercher des sujets similaires à "format numerique fonctionne pas textbox"