Bonjour,
Je cherche à extraire les éléments diagonaux de plusieurs matrices carrés.
Pour une matrice, pas de problème :
Function extractDiagonal(matrix As Range) As Variant
Dim i As Integer
Dim temparray()
ReDim temparray(matrix.Rows.Count, 1)
For i = 1 To matrix.Rows.Count
temparray(i, 1) = matrix(i, i)
Next i
extractDiagonal = temparray
End Function
Cependant maintenant j'aimerai pouvoir faire ça avec n matrices. J'ai vu sur internet que pour construire des fonctions avec un nombre indéfini de paramètre il fallait utiliser comme paramètre ParamArray
j'avais pensé à écrire quelque chose comme ça :
Function extractParamarray(ParamArray matrix1() As Variant) As Variant
Dim i, j As Integer
Dim temparray()
ReDim temparray(matrix1.Rows.Count, 'nombre de matrice entrées comme paramètre)
For j=1 to 'nombre de matrice entrées comme paramètre
For i = 1 To matrix1.Rows.Count 'toutes les matrices auraient la même dimension carrée
temparray(i, j) = matrixj(i, i)
Next i
Next j
extractDiagonal = temparray
End Function
Donc voilà je ne sais pas si c'est possible