[VBA] retourner une chaîne de caractère

Résolu/Fermé
macmat Messages postés 10 Date d'inscription jeudi 26 avril 2012 Statut Membre Dernière intervention 16 décembre 2012 - Modifié par macmat le 7/11/2012 à 19:10
macmat Messages postés 10 Date d'inscription jeudi 26 avril 2012 Statut Membre Dernière intervention 16 décembre 2012 - 9 nov. 2012 à 17:46
Bonjour,

Je souhaiterais programmer sous excel une fonction qui reçoit en paramètre 2 réels quelconques et qui retourne une chaîne de caractère comprenant des réels.
Voici les différentes façons dont j'ai essayé de résoudre ce problème:
Function comp_cdf(a As Double, b As Double) As String
Dim x As String * 1
Dim c As Double
Dim d As Double
c = a + b
d = a * b
comp = -x ^ 3 / 3 + x ^ 2 / 2 * c - d * x
comp_cdf = comp
comp_cdf.Print
End Function

et


Function comp_cdf(a As Double, b As Double) As String
Dim x As String * 1
Dim c As Double
Dim d As Double
c = a + b
d = a * b
comp = -x ^ 3 / 3 + x ^ 2 / 2 * c - d * x
comp_cdf = comp
End Function

et


End Function
Function comp_cdf(a As Double, b As Double) As String
Dim x As String * 1
Dim c As Double
Dim d As Double
c = a + b
d = a * b
comp = -x ^ 3 / 3 + x ^ 2 / 2 * c - d * x
MsgBox comp
End Function

J'ai aussi modifié le type de retour par le type "Objet", toujours sans succès, et j'ai aussi essayé en ne définissant aucun type de retour. J'ai vu qu'il était possible de créer un type soit même mais cela représente un perte de temps incroyable.

En résumé cette fonction a pour finalité de recevoir deux réels "a" et "b" en paramètre et de retourner -x ^ 3 / 3 + x ^ 2 / 2 * (a + b) - a * b * x. Où x est un caractère.

Merci d'avance
Bien Cordialement


A voir également:

1 réponse

Bonjour,

Les chaines de caractères doivent être délimitées par des " "
Voici la syntaxe correcte

Function comp_cdf(a As Double, b As Double) As String
Dim c As Double
Dim d As Double
c = a + b
d = a * b
comp_cdf = "-x ^ 3 / 3 + x ^ 2 / 2 * " & Str(c - d) & " * x"
End Function

Sub test()
MsgBox comp_cdf(2.5, 3.3)
End Sub


Executer la macro test pour afficher le resultat.

On peut aussi ecrire
comp_cdf = "-x ^ 3 / 3 + x ^ 2 / 2 * " &  c - d & " * x"

mais le point décimal peut se transformer en virgule en fonction des paramètres régionaux

A+
0
macmat Messages postés 10 Date d'inscription jeudi 26 avril 2012 Statut Membre Dernière intervention 16 décembre 2012
9 nov. 2012 à 17:46
Merci Yoda pour votre réponse rapide et clair.

Bonne soirée
0