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

Résolu
macmat Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
macmat Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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

Yoda
 
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   Statut Membre Dernière intervention  
 
Merci Yoda pour votre réponse rapide et clair.

Bonne soirée
0