Bonjour,

J'ai de beaucoup de calcul à faire sur des matrices de nombres.

Je suis en train de faire une fonction qui permettrait de retourner la diagonale d'une matrice carrée.
Pourquoi dans mon programme ci-dessous je suis obligé d'ajouter +1 aux index de ma matrice dans les boucles ?
Cela risque de me compliquer le reste du programme. Alors si c'est normal, est ce qu'il y a un moyen pour décaler la matrice pour qu'elle commence à 0 ?

De plus, j'aimerai pouvoir utiliser les fonctions Ubound et Lbound sur la matrice pour connaitre sa dimension.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Function matrice_extract_diag(ByRef matrice As Range) As Variant
Dim vecteur() As Double
Dim i, nb_ligne As Integer
    nb_ligne = matrice.Rows.Count
    ReDim vecteur(nb_ligne)
    For i = 0 To nb_ligne
        vecteur(i) = matrice(i + 1, i + 1)
    Next i
    matrice_extract_diag = vecteur
End Function
Merci