Creer une fonction pour copier une matrice
Bonjour Tout le monde,
je dois créer une fonction personnalisée appelée « absoluteMatrix ». L’unique paramètre
de cette fonction doit être une matrice (une plage de cellules). Elle doit retourner une autre matrice
de même dimension, elle doit donc être utilisée dans Excel comme une fonction matricielle.
Dans la matrice retournée par votre fonction, l’élément de coordonnées (i,j) doit etre égal à la
valeur absolue de l’élément de coordonnées (i,j) du paramètre.
Mais quoi que je fasse je n'y arrive pas. J'ai fais le tour de plein de forum et essayer plein de choses... comme par exemple:
Function absoluteMatrix(selection As Range)
Dim i, j, imax, jmax As Integer
i = 0
j = 0
imax = selection.Rows.Count
jmax = selection.Columns.Count
For i = 1 To imax
For j = 1 To jmax
selection(i, j) = Abs(selection(i, j))
Next j
Next i
End Function
Quelqu'un peut m'aider?
Bonsoir,
Essaie ainsi :
Function ABSOLUTEMATRIX(Plage As Range)
Dim i%, j%, Tabs
Application.Volatile
Tabs = Plage
With Tabs
For i = 1 To UBound(Tabs, 1)
For j = 1 To UBound(Tabs, 2)
Tabs(i, j) = Abs(Tabs(i, j))
Next j
Next i
End With
ABSOLUTEMATRIX = Tabs
End FunctionIl s'agit d'une fonction à utiliser en feuille de calcul.
Tu sélectionnes une plage de même taille que celle que tu mets en argument de la fonction, par exemple F8:J13. Tu tapes la formule : =ABSOLUTEMATRIX(A1:E6). Tu valides par Ctrl+Maj+Entrée, car il s'agit d'une fonction matricielle.
La ligne Application.Volatile sert à la faire se recalculer automatiquement. Si elle n'est pas utilisée en feuille de calcul, cette ligne n'a aucun effet, et la fonction renvoie un tableau.
Evidemment la plage source ne doit comporter que des nombres.
Cordialement.