Saisie textbox

Bonjour,

J'ai créée plusieurs formulaires.

dans 1 de ces formulaires, je rajoute des textbox par Vba. Les saisies sont contrôlées(numérique) puis exportées sur une plage de cellules avant d'être converties en numérique (l'export de la textbox vers une cellule se fait en texte). Je n'ai aucun souci pour saisir des décimals et que le résultat affiche ces décimales.

Dans un autre de ces formulaires, j'ai créer directement la textbox par l'insertion de l'objet. Du coup, lorsque je saisie des nombres décimaux, le résultat sur la feuille de calcul est le nombre Entier.

Quelqu'un pourrait-il m'expliquer le pourquoi de cette différence ?

Et qu'elle est la méthode que je dois appliquer pour rectifier cet état ?

D'avance grand merci encore à tous les spécialistes qui prennent de leur temps pour aider l'incompétent que je suis !

Bonjour

Pour comprendre mieux il faudrait ton fichier anonymisé

Voici le fichier.

Dans le formulaire CompoEquipe, Lorsque je saisie des données numériques décimales dans les champs correspondants à DHT, celles ci sont bien reportées dans la feuille code en donnée numériques décimales.

Dans le formulaire CompoFA, la donnée décimale saisie est reportée en nombre Entier.

171classeur1.zip (18.47 Ko)

Bonjour

Val n'aime pas les , (virgules)

Essayes

Private Sub ValidDhtFa_Click()
  Range("code!i1") = Val(Replace(Me.Controls("TextBox1"), ",", "."))
  If Range("code!i1").Value = 0 Then
    Range("code!i1").Value = ""
    MsgBox ("Saisie obligatoire")
    Exit Sub
  End If
  Unload CompoFA
End Sub

Encore merci pour cette réponse rapide, concise et admirablement juste !

Par contre, peux tu m'expliquer pour quoi dans l'autre formulaire je n'ai pas besoin de rentrer le code d'une manière identique ?

Bonsoir

Dans CompoEquipe tu rentres les données avec le . (point)

Dans CompoFA tu rentres les données avec la , (virgule) sinon IsNumeric te le signale

Comme tu ne vérifies pas dans CompoEquipe si la valeur avec le point est numérique, la recopie dans la cellule "transforme" le point en virgule

Dans CompoFA supprimes la macro Private Sub TextBox1_afterupdate() et rentres un chiffre avec un point

Mal expliqué mais c'est dans le bon sens

Merci pour l'explication.

Rechercher des sujets similaires à "saisie textbox"