Lien entre une TextBox et une cellule

Bonjour,

J'ai lié une TextBox à une cellule. Dans la propriété de la TextBox je fais bien un lien dans le controlSource sur cette cellule.

La cellule est de format monétaire.

Quand dans le TextBox je saisis 1.50 (avec le clavier numérique), la cellule reste avec cette saisie. Alors que si je fais cette saisie directement dans la cellule, la valeur passe à 1,50 €.

Comme ensuite j'effectue des calculs à partir de cette valeur, si la valeur n'est pas comprise comme numérique, j'ai une erreur de type.

A quel endroit faut il lui dire que 1.50 soit numérique !!!

Merci d'avance.

Bonjour

Un code du genre --> range("A1") = Cdbl(Textbox1.value)

Crdlt

Bonjour,

As-tu essayé de saisir le montant dans la TextBox avec une virgule pour séparateur décimal ?

A+

Si dans la TextBox, je saisis 1,2 effectivement la cellule affiche 1,20 €.

Mais la saisie à partir du pavé numérique ne convertit pas 1.2 en 1,20 € dans la cellule ??

La saisie à partir du pavé numérique ne convertit pas 1.2 en 1,20 € dans la cellule ?

eh ben, non ! La saisie de 1.2 à partir du pavé numérique dans une TextBox se traduit par un texte.

Pour éviter les ennuis, il faut se souvenir qu'une TextBox contient toujours un texte, même si ce texte est affiché comme un nombre.

Pour transférer une valeur numérique d'une TextBox vers une cellule, il faut permettre à Excel d'interpréter le texte comme un nombre et convertir ce texte au format désiré.

Pour comprendre ce qui suit, il faut que tu supprimes le lien de la propriété ControlSource et que tu places le code indiqué dans le module de l'Userform.

La procédure permet de transférer la valeur de la TextBox dans la cellule A1.

Avec le clavier numérique, en utilisant le point comme séparateur décimal, tu peux :

1) utiliser la fonction Val.

Exemple :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Range("A1") = Val(TextBox1.Value)
End Sub

2) utiliser la fonction de conversion Cdbl.

Les fonctions de conversion requièrent que le séparateur décimal saisi dans la textbox soit le même que celui défini dans le panneau de configuration. Il faut donc adapter le code au besoin.

Exemple :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Range("A1") = CDbl(Replace(TextBox1, ".", ","))
End Sub

A+

bonjour a vous

ou bien remplacer le textbox par une combobox qui est plus adapter au chiffre et nombre

Pascal

J'avais placé du code dans une partie Change tel que : Private Sub TarifTTC_Change()

mais dans ton exemple, c'est plutôt exit ( ce qui doit être quand on sort de la zone de saisie) et j'ai recopié le 2 nd code,

ET CA MARCHE !!

Merci

Longue vie à ce forum génial.

Rechercher des sujets similaires à "lien entre textbox"