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
Convertir nombre en texte vba - Meilleures réponses
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)
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.