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

Résolu
macmat Messages postés 10 Statut Membre -  
macmat Messages postés 10 Statut Membre -
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

1 réponse

  1. 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
    1. macmat Messages postés 10 Statut Membre
       
      Merci Yoda pour votre réponse rapide et clair.

      Bonne soirée
      0