marcellin54
Messages postés5Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention 3 mai 2011
-
22 avril 2011 à 04:37
marcellin54
Messages postés5Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention 3 mai 2011
-
22 avril 2011 à 14:30
Bonjour à tous,
Je ne suis pas habitué des forums mais étant dos au mur je vous lance mon SOS.
Je ne connais pas trop le VBA et je suis en train d'essayer de créer une fonction pour Excel. Cette fonction est très simple elle doit convertir en texte un nombre que l'on rentre.
Sous Excel j'utilisa la fonction texte de cette façon : =TEXTE(B1;"# ##0,##_) ;(# ##0,##);""-""_)")
ou B1 est le nombre à convertir. Il est vital que je garde le format donné dans cette formule.
Suite à pas mal de recherche sur internet j'ai essayer de construire ma formule VBA mais impossible de trouver quelque chose qui marche. Voici ce que j'ai essayer (entre autre mais je ne vous met que les plus réussite, ou en tout cas celles qui me plaisent le mieux) :
Function Conversion(Nbrfrancais)
Conversion = Application.WorksheetFunction.Texte(Nbrfrancais, "# ##0,##_) ,(# ##0,##),""-""_)")
End Function
________
Function Conversion(Nbrfrancais)
Conversion.Formula = "=TEXT(Nbrfrancais,""# ##0,##_) ;(# ##0,##);""""-""""_)"")"
End Function
Est ce que quelqu'un pourrait m'aider? Je ne peux pas utiliser le FORMAT de VBA car il est moins permissif que le format personnalisé de la fonction TEXTE. Je pense que le plus simple est d'intégrer la fonction TEXT d'excel mais il y a quelque chose qui doit m'échapper...
Par avance un gros gros merci pour votre aide...
Marcellin
A voir également:
Vba convertir nombre en texte
Vba convertir en texte - Meilleures réponses
Convertir nombre en texte vba - Meilleures réponses
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 avril 2011 à 08:43
Salut
Quand tu déclares/utilises une Function, il faut que celle-ci renvoie un résultat.
-1- Faire une déclaration propre
Function Conversion(Nbrfrancais As Double) As String
Ici, la fonction renverra une chaine et sera alimentée par un chiffre à virgule
-2- Renvoyer le résultat
Conversion = Application.WorksheetFunction...
-3- Appeler la fonction depuis le code
Dim maChaine As String
maChaine = Conversion(4012.17)
Cela devrait suffire.
Ce n'est pas le cas ici, mais fait attention de ne pas nommer tes Sub/Functions avec des noms pouvant ressembler à des mots clé du langage.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 avril 2011 à 08:45
PS : Si tu utilises ta fonction depuis une autre page de code que celle dans laquelle elle est déclarée, il faudra ajouter le mot Public devant Function.