Problème Fonction appliquée à un Range

Résolu
tibo0426 Messages postés 1 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 2 juin 2010 - 2 juin 2010 à 17:57
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Derniè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.

2 réponses

c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
3 juin 2010 à 02:43
Bonjour
la fonction Cholesky a besoin du parametre Mat.
Il faut donc le renseigner

Faire par exemple :

Function test()
retval = Cholesky(Sheets("feuil1").Range("N7:Q10"))
End Function
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
Rejoignez-nous