Fonction texte d'excel en VBA? [Résolu]

marcellin54 5 Messages postés lundi 25 avril 2005Date d'inscription 3 mai 2011 Dernière intervention - 22 avril 2011 à 04:37 - Dernière réponse : marcellin54 5 Messages postés lundi 25 avril 2005Date d'inscription 3 mai 2011 Dernière intervention
- 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
Afficher la suite 

3 réponses

Répondre au sujet
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 22 avril 2011 à 08:43
+3
Utile
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)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Jack
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 22 avril 2011 à 08:45
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Jack
marcellin54 5 Messages postés lundi 25 avril 2005Date d'inscription 3 mai 2011 Dernière intervention - 22 avril 2011 à 14:30
0
Utile
Merci beaucoup je m'en vais tester cela :)
Commenter la réponse de marcellin54

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.