Caster du texte en Variant VBA

Fermé
Raph04 Messages postés 158 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 17 mai 2022 - 21 juil. 2009 à 11:47
Raph04 Messages postés 158 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 17 mai 2022 - 21 juil. 2009 à 13:46
Bonjour,

Je travaille sur un export de données d'un Access dans un Excel.
L'une des formule que j'utilise est :

xlSheet.Cells(Lig, Col) = FormatNumber(nombre, 2)


Mon problème est que FormatNumber me renvoie du texte, donc dans mon ficher Excel, j'ai mon nombre affiché, mais en temps que texte. Donc il m'est impossible de faire des calcules dessus après.
J'ai essayer de changer le format de la cellule en nombre, mais ça ne fait rien.

Je cherche donc à caster mon texte en variant avant de l'envoyer. J'ai essayer :
xlSheet.Cells(Lig, Col) = CVar(FormatNumber(nombre, 2))


mais ça ne marche pas.

J'ai bien ça qui marche :
xlSheet.Cells(Lig, Col) = FormatNumber(nombre, 2) + 0

Mais bon c'est pas très propre...

Avez vous une autre idée ?
D'avance merci ;-)
Raph

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
21 juil. 2009 à 12:03
bonjour,

Ca veut dire quoi "caster"
Range("A1") = CDbl(FormatNumber(nombre, 2))
nombre doit être déclaré comme Double
Dim nombre as double
0
Raph04 Messages postés 158 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 17 mai 2022 24
21 juil. 2009 à 13:46
Salut,

"Caster" ça vient surement de ma formation première en C (:-$), ça veux tout simplement dire transformer un type de variable en un autre type exemple :
string => variant (mon cas)
ou integer => double
ou encore double => long...
Bref...

Par contre mon problème c'est que je ne peux pas utiliser de double, vu que ce sont des chiffres à virgule, d'où le formatNumber pour limité à 2 chiffre après la virgule ;-).
C'est pour ça que c'est un Variant...

Bon pour l'instant je reste avec mon + 0 :-p
Mais si vous avez d'autre idée, n'hésitez pas.

Merci

Raph
0