tibo0426
Messages postés1Date d'inscriptionlundi 12 avril 2010StatutMembreDernière intervention 2 juin 2010
-
2 juin 2010 à 17:57
c148270
Messages postés303Date d'inscriptionmercredi 12 janvier 2005StatutMembreDernière intervention 3 octobre 2013
-
3 juin 2010 à 02:43
Bonjour à tous,
j'ai un soucis (erreur 424 'Objet requis') :
Je souhaite appliquer la fonction Cholesky à Range("N7:Q10")
Function Cholesky(Mat As Range) As Variant
Dim A, L() As Double, s As Double
A = Mat
n = Mat.Rows.Count
m = Mat.Columns.Count
If n <> m Then
Cholesky = "?"
Exit Function
End If
ReDim L(1 To n, 1 To n)
For j = 1 To n
s = 0
For k = 1 To j - 1
s = s + L(j, k) ^ 2
Next k
L(j, j) = A(j, j) - s
If L(j, j) <= 0 Then Exit For
L(j, j) = Sqr(L(j, j))
For i = j + 1 To n
s = 0
For k = 1 To j - 1
s = s + L(i, k) * L(j, k)
Next k
L(i, j) = (A(i, j) - s) / L(j, j)
Next i
Next j
Cholesky = L
End Function
Sub Gaussien()
Dim Mat
Worksheets("Paramètres").Activate
' Set Mat = Range("N7:Q10")
Set Mat = Range(ActiveSheet.Cells(7, 14), ActiveSheet.Cells(10, 17))
Cholesky (Mat)
End sub
VBA selectionne "Cholesky (Mat)" et m'affiche erreur 424.
Quelqu'un peut m'aider ? Merci beaucoup.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 2 juin 2010 à 23:49
Salut
Je pense qu'il ne s'agit que de la syntaxe d'appel : Une histoire de parenthèses.
Deux solutions :
Cholesky Mat
ou
Call Cholesky(Mat) ou maVariable = Cholesky(Mat)
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)