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 Function

Il 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.

Rechercher des sujets similaires à "creer fonction copier matrice"