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

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

Votre réponse

3 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 22 avril 2011 à 08:43
3
Merci
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)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_Jack
Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 22 avril 2011 à 08:45
3
Merci
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.

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
5
Date d'inscription
lundi 25 avril 2005
Dernière intervention
3 mai 2011
- 22 avril 2011 à 14:30
0
Merci
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.