-
Formats de cellule
Bonjour,
En fait je récupère des données de mes cellules dans des labels sur mon Userform.
Ensuite je les modifie et je les rentre dans ma feuille:
Code:
Cells(ActiveCell.Row, 1) = Me.Lbltest
Et au lieu d'avoir par exemple 6.00 dans le format de cellule par défaut, j'obtiens 6.
Pourtant si j'insert une ligne et que je rentre 6 il m'affiche 6.00.
Comment faire pour insérer sans modifier le format?
-
Bonjour,
Est-ce qu'en changeant les proriétés de la cellule cela change quelque chose ?
As tu regardé la fonction FORMAT sous vba ??
-
Bonjour
Ce problème survient parce que le contenu d'un textbox est du texte. Donc, tu introduis du texte dans ta cellule au lieu d'introduire une valeur numérique.
Parmi d'autres solutions, celle ci-dessous devrait convenir
Code:
Cells(ActiveCell.Row, 1) = Me.Lbltest * 1
Ok?
P.S.: Attention, la fonction Format dont parle PeaceAndLove... renvoie toujours une chaine de caractères...
-
Je n'ai pas encore regardé l'utilisation de la fonction format.
Par contre j'ai utilisé le *1, et ça marche sauf pour un cas spécial.
A un moment j'essai de multiplier "/0" et ça ne marche pas à cause du "/" je pense. Faut-il que je fasse une condition dans ce cas ou il y a une autre solution?
Merci pour votre aide
-
l'astuce de *1 ne fonctionne qu'à partir du moment où la valeur saisie dans le textbox peut être "comprise" comme étant une valeur numérique. Le *1 permet en fait un transtypage de la donnée. A mon avis, toute autre solution de transtypage renverra la même erreur avec une valeur non numérique. Or, "/0" n'est pas une valeur numérique.
Il faut donc:
soit tester la validité de la saisie (à la sortie du contrôle (évènement Exit ou évènement BeforeUpdate ou lors de la validation du formulaire)
soit tester si la valeur saisie est numérique et ne multiplier par 1 que dans ce cas
Code:
if isnumeric(Me.Lbltest) then Cells(ActiveCell.Row, 1) = Me.Lbltest * 1
Soit gérer les erreurs (On Error Resume Next) avant la ligne et On Error goto 0 après la ligne) (déconseillé)
-
Merci! J'ai toute les clés en main!
Au boulot! lol
Bonne continuation! Encore merci!