Passer un tableau de deux dimensions en paramètre d'une function
Résolu/Fermé
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
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
A voir également:
- Passer un tableau de deux dimensions en paramètre d'une function
- Tableau word - Guide
- Code ascii tableau - Guide
- Tableau croisé dynamique - Guide
- Trier un tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
Modifié par pijaku le 10/07/2014 à 11:57
Modifié par pijaku le 10/07/2014 à 11:57
Bonjour,
Regarde cet exemple bricolé rapidement :
Cordialement,
Franck
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
10 juil. 2014 à 12:12
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.
10 juil. 2014 à 12:17
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...
10 juil. 2014 à 12:32
si vous savez à quel point vous m'avez aidé.
Je vous souhaite tout le bonheur du Monde !