Bonjour
pourquoi quand je declare les variables séparemment je peux les utiliser avec byref ,mais par contre si je les déclare sur la meme ligne cela ne fonctionne pas a la compilation j'ai un message d'erreur ?.
message d'erreur="type d'argument byref incompatible"
ne serait ce pas un bug ?,ce petit pb m'a fait perdre beaucoup de temps !!!!
voir code ci dessous.
Option Explicit
Private Type Complex
re As Double
im As Double
End Type
Private Sub Fourier()
Dim m As String
Dim c As Complex
Dim d, t As Double
' declaration OK !
Dim c1 As Complex
Dim c2 As Complex
' declaration KO !
'Dim c1, c2 As Complex
c.re = 2: c.im = 3: c1.re = 7: c1.im = 9: c2.re = 7: c2.im = 9
t = modul(c)
'SigmaXk = MultC(xe, xk)
m = " Xe : " & Str(c.re) & "+i*" & Str(c.im) & _
" modulo : " & Str(t)
m = CStr(MsgBox(m, 1, "modulo"))
c = Multi(c1, c2)
End Sub
Private Function modul(ByRef z As Complex) As Double
modul = Sqr(z.re ^ 2 + z.im ^ 2)
End Function
Private Function Multi(ByRef z1 As Complex, ByRef z2 As Complex) As Complex
Dim z3 As Complex
z3.re = z1.re * z2.re - z1.im * z2.im
z3.im = z1.re * z2.im + z1.im * z2.re
Multi = z3
End Function
pourquoi quand je declare les variables séparemment je peux les utiliser avec byref ,mais par contre si je les déclare sur la meme ligne cela ne fonctionne pas a la compilation j'ai un message d'erreur ?.
message d'erreur="type d'argument byref incompatible"
ne serait ce pas un bug ?,ce petit pb m'a fait perdre beaucoup de temps !!!!
voir code ci dessous.
Option Explicit
Private Type Complex
re As Double
im As Double
End Type
Private Sub Fourier()
Dim m As String
Dim c As Complex
Dim d, t As Double
' declaration OK !
Dim c1 As Complex
Dim c2 As Complex
' declaration KO !
'Dim c1, c2 As Complex
c.re = 2: c.im = 3: c1.re = 7: c1.im = 9: c2.re = 7: c2.im = 9
t = modul(c)
'SigmaXk = MultC(xe, xk)
m = " Xe : " & Str(c.re) & "+i*" & Str(c.im) & _
" modulo : " & Str(t)
m = CStr(MsgBox(m, 1, "modulo"))
c = Multi(c1, c2)
End Sub
Private Function modul(ByRef z As Complex) As Double
modul = Sqr(z.re ^ 2 + z.im ^ 2)
End Function
Private Function Multi(ByRef z1 As Complex, ByRef z2 As Complex) As Complex
Dim z3 As Complex
z3.re = z1.re * z2.re - z1.im * z2.im
z3.im = z1.re * z2.im + z1.im * z2.re
Multi = z3
End Function