Comment faire pour qu'une fonction renvoie un tableau?

Comment faire pour qu'une fonction renvoie un tableau? - VB/VBA/VBS - Programmation

Marsh Posté le 02-01-2005 à 14:31:17    

Salut à tous, j'ai juste une petite question:
Comment faire pour qu'une fonction renvoie un tableau?
En fait je dois passer un tableau en argument et j'aimerai qu'il me renvoie également un tableau
 
Actuellement, j'ai ceci
 
Dim A(1 To 3, 1 To 3) As Double
... je definis A...
 
Dim A3(1 To 3, 1 To 3) As Double
A3 = Produit_matriciel3(A)
 
Public Function Produit_matriciel3(A() As Double) As Double
...
End Function
 
et donc ca marche pour passer le tableau en parametre mais je sais pas où ni comment lui dire que la fonction renvoie un tableau
 
Merci de m'aider

Reply

Marsh Posté le 02-01-2005 à 14:31:17   

Reply

Marsh Posté le 04-01-2005 à 21:24:28    

tu pourais mettre un byref devant un argument pour qu'il passe par référence et non pas par valeur et t'en resservir une fois sortit de la fonction, mais là ce n'est pas vraiment la fonction qui renvoie le résultat, c'est plutôt toi qui fournit un paramètre à remplir par la fonction (et tu mets un booléen sur la fonction).
Dim Produit_matriciel3(A() as double, byref A3() as double) as boolean
 
if not(Produit-matriciel3(A,A3)) then
 'raise une erreur....
else
 'A3 contient le produit matriciel
end if

Reply

Marsh Posté le 04-01-2005 à 21:47:24    

Ben tu déclare ta fonction comme ça :

Code :
  1. Public Function Produit_matriciel3(A() As Double) As Double()


Note les () après le As Double(), ça indique que tu renvoi un tableau.
Et puis donc dans ta fonction tu déclare ton tableau normal, donc genre :

Code :
  1. Public Function Produit_matriciel3(A() As Double) As Double()
  2.   Dim Bidule(1 To 3, 1 To 3) As Double
  3.   ...
  4.   Return Bidule
  5. End Function


Message édité par FlorentG le 04-01-2005 à 21:47:44
Reply

Marsh Posté le 17-01-2005 à 23:40:47    

ou alors tu passe par le type variant (comme type de retour) qui est beaucoup plus souple car il permet d'imbriquer n'importe quel autre type

Reply

Marsh Posté le 09-05-2013 à 03:29:37    

Code :
  1. ' Une autre solution avec Split
  2. Public Sub Randomise()
  3.     Dim str As String, i As Integer
  4.     str = Test()
  5.     MsgBox (str)
  6.     Dim Tableau() As String
  7.     Tableau = Split(str, "#" )
  8.     For i = 0 To 2 - 1
  9.        MsgBox (Tableau(i))
  10.    Next i
  11. End Sub
  12. Public Function Test() As String
  13.     Dim s As String
  14.     s = "One"
  15.     s = s & "#Two"
  16.     Test = s
  17. End Function

Reply

Marsh Posté le 09-05-2013 à 03:33:32    

Code :
  1. ' Une autre solution avec Split
  2. Public Sub Randomise()
  3.     Dim str As String, i As Integer
  4.     str = Test()
  5.     MsgBox (str)
  6.     Dim Tableau() As String
  7.     Tableau = Split(str, "#" )
  8.     For i = 0 To 2 - 1
  9.        MsgBox (Tableau(i))
  10.    Next i
  11. End Sub
  12. Public Function Test() As String
  13.     Dim s As String
  14.     s = "One"
  15.     s = s & "#Two"
  16.     Test = s
  17. End Function

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed