VB Excel Comment appeler une "fonction-matrice" ?

amaya1

XLDnaute Nouveau
Bonjour à tous,

J'aimerais écrire une fonction ayant pour entrée un entier(n) et en sortie une matrice mais je ne sais pas comment appeler mes résultats. En effet, je pensais faire :

Function Matrice(n As Integer) As Variant
...
EndFunction

Sub Appel_Mat()
Matrice(n)
End Sub


Mais comment faire pour appeler spécifiquement la valeur contenue dans la telle ligne et telle colonne de ma matrice ? Sachant que je veux éviter de repasser par une feuille Excel ?

Merci d'avance pour votre aide !
 

ROGER2327

XLDnaute Barbatruc
Re : VB Excel Comment appeler une "fonction-matrice" ?

Bonsoir amaya1
Pas sûr d'avoir bien compris votre problème, mais voyez si ce code peut vous aider.
Code:
[COLOR="DarkSlateGray"]Function Matrice_1(n As Long)
Dim i As Long, j As Long
   [COLOR="SeaGreen"]'Dimensionnement et remplissage de la matrice.
   '(Adaptez à votre problème.)[/COLOR]
ReDim x(1 To n, 1 To n)
   For i = 1 To n
      For j = 1 To n
         x(i, j) = 10 * i + j
      Next j
   Next i

   Matrice_1 = x
End Function

Sub toto()
Dim u()
   u = Matrice_1(3)
   [COLOR="SeaGreen"]'Afficher la valeur de la ligne 1, colonne 2 :[/COLOR]
   MsgBox "Ligne 1, colonne 2 : " & u(1, 2)
End Sub
[/COLOR]
ROGER2327
 

mécano41

XLDnaute Accro
Re : VB Excel Comment appeler une "fonction-matrice" ?

Bonjour,

Si la matrice (par ex: ici matrice 3x3) est écrite dans une feuille de calcul, tu la nommes (par exemple ici : Mat1)

Tu écris dans un module (pas dans un code de feuille):

Code:
Option Explicit
Function EleMat(Mat As String, Lig As Long, Col As Long)
EleMat = Range(Mat).Cells(Lig, Col).Value
End Function

Et dans une cellule de la feuille tu l'appelles ainsi (ici pour l'élément (2,3) ) :

=elemat("Mat1";2;3)

On peut l'appeler depuis "Insérer/Fonctions/Personnalisées" (ne pas oublier les guillemets autour du nom)

Pour un appel depuis VBA c'est :

Code:
Variable = EleMat("Mat1", 2, 3)


Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 046
Membres
104 010
dernier inscrit
Freba