Copie/chargement de données entre un userform et un tableau

Bonjour à tous,

Voici mon problème:

J'ai créé un userform dans lequel je renseigne un certain nombre de données numériques décimales dans des textbox

A la fermeture de l'userform, chacune des valeurs renseignée dans chaque textbox est copiée dans un tableau sur une feuille excel "cachée".

Sur mon UF, je précise à l'utilisateur d'utiliser le séparateur décimal "." et non ",". Sinon les données copiées dans le tableau sont inutilisables car non reconnues comme un nombre. Je pourrai forcer l'utilisation du "." avec

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii = 44 Then KeyAscii = 46

End Sub

mais cela m'obligerait à copier le code pour chaque textbox et il y en a beacoup... de toute façon le problème ne vient pas de là, j'y viens.

A chaque ouverture de l'userform en question, si des données ont déjà été saisies précédemment, elles sont remontées depuis le tableau. Je fais bêtement la manip' inverse qu'à sa fermeture.

C'est là que ça bug, même si dans mon tableau j'ai des données avec des "." comme séparateur, lorsque mon UF les charge dans les textbox, ce sont des "," qui sont utilisées... et du coup à partir de la seconde fermeture de l'UF ce sont des "," qui sont copiées dans mon tableau et mes données ne sont plus exploitables.

J'ai tenté plusieurs solutions:

  • sélectionner toutes les textbox de l'UF et remplacer "," par "." à la fermeture mais je n'arrive pas à trouver de code qui marche
  • copier quand même des "," dans mon tableau excel et après copie, effectuer un rechercher/remplacer "," par "." dans toutes les cellules concernées. Ici le problème est que sans que je sache pourquoi cela ne fonctionne qu'avec un certain nombre de cellules et pas toutes...

J'ai passé pas mal de temps à chercher sur les forums mais je ne trouve pas de réponses satisfaisantes...

Merci de votre aide

Bonjour

Sans fichier

Lors de la sauvegarde de tes données utilises : Tes données seront toujours en numérique

Range("A" & Ligne) = Val(Replace(Me.TextBox1, "," , "."))

Bonjour Banzai64,

Merci pour ton aide, j'ai essayé ta solution et à vrai dire ça ne correspond pas vraiment à mon problème... En fait c'est ok si je saisis des données avec des "," dans mon UF, ça les copie bien avec un "." dans mon tableau.

Cependant quand je ré-ouvre mon UF, le "." s'est de nouveau transformé en "," dans mes textbox.

Cela vient peut-être de mon code de chargement des données à l'ouverture de l'UF, je ne sais pas.

A la fermeture (copie des données dans le tableau), ton code:

Sheets("ma_feuille").Range("ma_cellule") = Val(Replace(mon_userform.TextBox1, ",", "."))

A l'ouverture, pour l'instant j'ai:

mon_userform.TextBox1 = Sheets("ma_feuille").Range("ma_cellule").Value

C'est ici que les "." du tableau deviennent des "," dans mes textbox d'UF.

désolé pour le fichier mais mon classeur est très chargé et pas très simple à appréhender, mais si c'est nécessaire je peux le modifier pour ne garder que les parties qui concernent ma question.

Voilà je viens de modifier mon fichier, j'espère que cela sera plus clair..

58test.xlsm (127.13 Ko)

Bonjour

ce code

Sheets("ma_feuille").Range("ma_cellule") = Val(Replace(mon_userform.TextBox1, ",", "."))

permet de sauvegarder la valeur en numérique : Avec une , (virgule) comme séparateur décimal

Dans ta base de donnée tu auras la valeur avec une virgule

Lors du chargement

mon_userform.TextBox1 = Sheets("ma_feuille").Range("ma_cellule").Value

Que tu es une valeur avec une virgule dans ton textbox ne gène en rien et même c'est un plus car les opérations avec cette valeur ne se feront que si il y a une virgule, et pas de point

Essayes

Me.Prix_HT - Me.Remise

Si une des 2 valeurs à un . (point) plantage

Re,

Autant pour moi, j'avais pas percuté... C'est vrai que je me fiche d'avoir des "," dans mon UF tant que j'ai des "." dans mon tableau.

La modif s'effectuant à chaque fermeture c'est nickel.

Merci beaucoup pour ton aide!

Bonjour

Quand j'avais rédigé mon message, je n'avais pas ton fichier

J'ai vu que tu changes les paramètres, mais le raisonnement est identique

Rechercher des sujets similaires à "copie chargement donnees entre userform tableau"