Bug format valeur formulaire

Bonjour à tous,

Je suis en train de créer un formulaire permettant de récupérer et de calculer des données via des feuilles Excel.

Le problème est qu'il y a beaucoup de TextBoxes à remplir par l'utilisateur, et certaines de ces TextBoxes auront des valeurs assez constantes, mais je tiens à laisser la possibilité de changer ces constantes. Toutes ces valeurs sont enregistrées dans les feuilles de calcul et à chaque fois que j'ouvre le formulaire, j'affiche les dernières valeurs enregistrées dans les Textboxes pour gagner du temps en saisie.

Voici ce que j'écris.

Private Sub TxbS1_Change()
Worksheets("Calculs").Range("A1") = TxbS1.Value
End Sub
Private Sub UserForm_Initialize()
TxbS1.Value = Worksheets("Calculs").Range("A1") 'Pour lui réaffecter sa dernière valeur
End Sub

Mon problème, c'est que certaines de ces TextBoxes sont des nombres à virgule, donc quand je les réaffiche via la fonction initialize et que je relance les calculs, la valeur de la TextBox est renvoyée sous forme de texte et non de nombre, donc aucun calcul ne se fait, et place aux #DIV/0! dans mes feuilles excel ..

Je cherche un moyen de parer ça, si quelqu'un a une idée .. !

Merci d'avance, et très bon week end à tous !

Bonjour

Essaie ce code :

Cells(2, 2) = Val(Replace(TextBox1, ".", ","))

Bye !

Bonjour gmb,

Désolé du temps de réponse, je n'avais pas accès à internet ce we .. je viens d'essayer ce code, il replace correctement les virgules ou points pour que les cellules soient lues dans les feuilles excel mais il tronque les valeur. Par exemple, si je tape 18.52, j'obtiens 18.00 dans excel.

As-tu une idée ?

Bonjour

Alors, essaie celle-ci :

Range("A1") = Val(TextBox1)

Bye !

Je viens d'essayer, cela fonctionne pour la première valeur entrée, mais en fermant puis réouvrant le formulaire, cela charge une valeur entière dans les feuilles Excel ..


En fait dans le code de mon formulaire j'ai quelque chose du genre :

Private Sub TextBox1_Change()
Range("A1")=TextBox1.Value
End Sub

Private Sub Userform_Initialize()
TextBox1.Value = Range("A1")
End Sub

Nouvel essai.

6classeur1-v1.xlsm (17.50 Ko)

Ah cela fonctionne bien pour les virgules, mais moins bien pour les points .. Par soucis de confort ( et comme ce n'est pas moi qui utiliserai le formulaire que je fais), j'ai autorisé les points et les virgules dans l'UF. Je vais essayer de trouver de quoi convertir tous les points en virgules si un utilisateurs en utilisent. Sais-tu déjà comment procéder ?

Merci de ton temps en tout cas

Paul-Philippe3 a écrit :

Je vais essayer de trouver de quoi convertir tous les points en virgules si un utilisateurs en utilisent. Sais-tu déjà comment procéder ?

Applique la formule que je t'ai déjà donnée :

Cells(2, 2) = Val(Replace(TextBox1, ".", ","))

Bye !

Avec ce code le problème c'est que je ne récupère que la partie entière de ma textbox ..

Envoie ton fichier et j'essaierai dessus !

Bye !

Je ne peux pas t'envoyer le fichier général mais j'ai refait exactement la même chose ici. Ce qui me "dérange" c'est qu'une fois l'uF fermé, la valeur de la cellule A1 renvoie une erreur et la gestion d'erreur propose de convertir le fichier en nombre (car stocké sous forme de texte), ce qui ne plait pas trop à mes calculs ..


En fait tant qu'on change la valeur, il n'y a pas de bug, mais quand on ne fait qu'ouvrir le formulaire, la valeur s'affiche correctement, seulement, si on le ferme, la case A1 signalera une erreur. C'est ce problème que j'essaie d'éviter

10tests-ufs.xlsm (25.32 Ko)

Nouvel essai à tester.

Bye !

10tests-ufs-v1.xlsm (22.65 Ko)

Avec cette méthode ça fonctionne super, mais si par malheur on rentre un point au lieu d'une virgule c'est terminé .. ^^

Nouvel essai.

Mais je vais finir par être à court d'idée...

Bye !

14tests-ufs-v2.xlsm (22.94 Ko)

Super !

ça fonctionne parfaitement, et en plus l'utilisateur peut rentrer un point ou une virgule comme séparateur.

Merci beaucoup gmb, à bientôt !

Rechercher des sujets similaires à "bug format valeur formulaire"