Bonjour,

Je suis parvenu à obtenir un nombre complexe en VBA à l'aide d'une fonction qui retourne un type "Complex" à partir d'une partie réelle et d'une imaginaire.

Maintenant, je souhaite obtenir sa racine carré, par exemple j'ai :

1 + 2i => j'aimerai obtenir ceci sqr(1 + 2i )

Cependant la fonction Sqr() ne prend en compte que les variable "As Double"

Du coup, j'ai essayé de crée 2 fonctions qui traite la racine carré de la partie réelle et de même la partie imaginaire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Public Function RCMPLXR(T1 As Complex) As Single
    ' Retourne la racine carré d'un nombre complexe partie reel
    RCMPLXR = Sqr(T1.Real)
End Function
 
Public Function RCMPLXI(T1 As Complex) As Single
    ' Retourne la racine carré d'un nombre complexe partie imag
    RCMPLXI = Sqr(T1.Imag)
End Function
Quand j'appelle la fonction RCMPLXR, j’obtiens bien la racine carré de la partie réelle en mode debug mais quand j'appelle la fonction RCMPLXI j''ai toujours un message d'erreur : Argument ou appel de procédure incorrect.

Je ne comprend pas pourquoi ma fonction marche pour la partie réelle et non pas pour la partie imaginaire.