[RESOLU] Function : utilisation des arguments en boucle

Crisky

XLDnaute Junior
Bonjour à tous,

Je suis en train de créer une fonction et je me heurte à un problème
Afin d'eviter l'ecriture d'un code trop chargé je me demandais s'il n'existait pas une solution plus rapide

Je voudrais faire la chose suivante, plutot que de traiter chaque argument individuellement, je créé une boucle qui appelle chacun à son tour les arguments

Function maFonction(arg1, arg2, arg3, arg4, arg5)

For i = 1 To 5

variable = arg & i
resultat = resultat + variable
Next i
maFonction = resultat

End Function

le traitement des données présenté n'est pas ce que je veux faire, j'ai simplifié pour que l'exemple soit plus parlant
arg & i serait en quelque sorte une variable dynamique

merci d'avance pour vos idées
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Function : utilisation des arguments en boucle

Bonjour Crisky,

On ne peut pas tripoter les variables comme ça.

Par contre testez ceci :

Code:
Function maFonction(ParamArray X())
Dim i
For i = 0 To UBound(X)
maFonction = maFonction + X(i)
Next
End Function

Sub test()
MsgBox maFonction(1, 2, 3, 4, 5)
End Sub
A+
 

Crisky

XLDnaute Junior
Re : Function : utilisation des arguments en boucle

Job75

C'est royal, cela marche à la perfection, je viens d'adapter cela à ma fonction, on peut même tester si x(i) contient une formule
Juste une petite question : Est-on limité en nombre d'argument ?

Encore merci, rapide efficace
 

Crisky

XLDnaute Junior
Re : [RESOLU] Function : utilisation des arguments en boucle

Job75

Il semblerait malheureusement que le 31eme arguement ne soit pas pris.(message d'erreur)
Mais ce n'est pas grave, ta solution va me permettre de gagner un temps fou sur l'ecriture

Encore merci
 

job75

XLDnaute Barbatruc
Re : [RESOLU] Function : utilisation des arguments en boucle

Re,

Je ne sais pas ce que vous avez testé, mais ceci fonctionne avec 32 arguments :

Code:
Sub test()
MsgBox maFonction(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
End Sub
Par contre beaucoup de fonctions Excel sont limitées à 30 arguments.

A+
 

Crisky

XLDnaute Junior
Re : [RESOLU] Function : utilisation des arguments en boucle

Re,

oui c'est une fonction excel, donc je l'ai répété
mais c'est interressant de savoir que dans un module classique on peut mettre autant d'argument que l'on veut

merci encore une fois :)
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16