Passer un tableau de deux dimensions en paramètre d'une function [Résolu/Fermé]

Signaler
-
 reda18 -
Bonjour,

s'il vous plait j'ai un problème lorsque j'essaye de coder une fonction qui prend un tableau à deux dimensions en paramètre ... lorsque j'essaye quelque chose genre :
Function mafonction(montableau (,) as double )

ca me donne une erreur de compilation comme quoi le ')' est attendu après le ')' au lieu de ','

et je suis bloqué là dans mon projet parce que tout est basé sur ca

Merci

1 réponse

Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 601
Bonjour,

Regarde cet exemple bricolé rapidement :
Sub test()
Dim Tb_in(3, 2) As Double, Tb_Out As Variant
Dim i&, j&
'remplissage tableau initial
For i = 1 To 3
    For j = 1 To 2
        Tb_in(i, j) = 1
    Next j
Next i
'envoi à la fonction le tableau en paramètre
Tb_Out = MaFonction(Tb_in) 'retour du tableau dans un variant
'visualisation résultat :
MsgBox "la valeur : " & Tb_in(3, 2) & " est devenue : " & Tb_Out(3, 2)
End Sub

Function MaFonction(Tbl() As Double) As Variant
Dim i&, j&, Tb_Interm(3, 2) As Double
For i = LBound(Tbl, 1) To UBound(Tbl, 1)
    For j = LBound(Tbl, 2) To UBound(Tbl, 2)
        'ici on ne fait que multiplier par 2 les valeurs du tableau passé en paramètre
        Tb_Interm(i, j) = Tbl(i, j) * 2
    Next j
Next i
MaFonction = Tb_Interm
End Function


Cordialement,
Franck
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Si j'ai bien compris c'est qu'on ne spécifie pas ?
c'est un peu ambigu.
Par exemple si je veux faire une fonction qui calcule le produit scalaire de deux vecteurs stockés dans une table de deux dimension.
Ça serai quoi la première ligne si on veut parler en suite de mon_tableau(i,j) ?
Genre pour que ça signifie pas un tableau à une dimension.
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 601
Oui. On ne précise pas le dimensionnement du tableau.
Non ce n'est pas ambigue... Dans mon exemple tu sais que tu va utiliser un tableau à deux dimensions. Mais cela peut être entièrement automatique en précisant les dimensions souhaitées en paramètre également...

La première ligne serait rigoureusement la même que la mienne. Je fait une multiplication, toi un produit scalaire....
Genre pour que ça signifie pas un tableau à une dimension.
On s'en fiche! C'est toi qui envoie le tableau à la fonction. Là tu lui envoie ce que tu veux...

Si tu veux que ta fonction ne fonctionne qu'avec un tableau à deux dimensions et, si tu lui envoie une seule dimension qu'elle te renvoie un message d'erreur, utilise le traitement d'erreur...
Je vous remercie infiniment !
si vous savez à quel point vous m'avez aidé.
Je vous souhaite tout le bonheur du Monde !