XL 2013 Validation données cellule

HUMANUM

XLDnaute Nouveau
Bonjour,

Je vous expose mon problème.
Avec un UserForm VBA je renvoi une donnée dans une cellule. Jusque là tout semble fonctionner. Je retrouve bien mes chiffres dans la cellule.
Cependant, pour que la donnée soit vraiment active je dois revenir sur la cellule, revenir sur la donnée avec la souris et valider. Les chiffres passent alors de gauche à droite dans la cellule.

Exemple :
Je renvoi une donnée de 3000 dans ma cellule A1 à partir de mon UserForm. Le chiffre 3000 apparait bien en A1 et est aligné à gauche de la cellule.
Dans une autre cellule, en B2, je recopie la valeur de A1 mais avec un format de cellule personnalisé qui me permet d'afficher 3000 heures.
Lorsque je renvoi ma donnée avec mon UserForm, j'ai bien 3000 en A1 et 3000 en B2. Sauf qu'il faut que je revalide la donnée de A1 pour voir apparaitre 3000 heures en B2. La valeur de A1 s'aligne à droite de la cellule.

Merci d'avance pour votre aide.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Les 'données' issues de TextBox sont des chaînes de caractères (du texte). Il vous faut donc, avant leur transmission à une cellule les convertir en valeurs numériques. Suivant le cas vous pouvez utiliser les fonction VB Cint(TextBox1.Text), CDBL(TextBox1.Text), CLng(TextBox1.Text),CDate(TextBox1.Text) etc...

A vous d'explorer, tester et revenir si vous avez un problème particulier à la conversion.

Bon apprentissage
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Humanum,Roblochon,
On peut aussi faire : TextBox1.Text *1.
VBA transforme le string en nombre pour faire la multiplication.

1.jpg

Dans cet ex tiré de votre fichier précédent on voit que :
a = Modification.TextBox2.Value vaut "12345" et est un string
b = Modification.TextBox2.Value * 1 vaut 12345 et est un double.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,
Effectivement ton astuce fonctionne à merveille.

Apprenez quand même les différences entre les fonctions de conversion si vous ne voulez pas vous retrouver ultérieurement dans le même embarras.

Dans la fenêtre d'éxecution (CTRL+G) tapez :
?"12.36"*1
Y compris le point d'interrogation, puis validez.
Vous aurez une erreur.
Ensuite :
? "12,36"*1
-> pas d'erreur !

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 083
Membres
103 115
dernier inscrit
fiachris26