Bonjour tout le monde
Jia une fonction avec 8 parametres
qui sont traite pareil,
comment boucher sur ces 8 parametres
(pensait for each collection in object mais ca marche pas )
merci par avance
Bonjour tout le monde
Jia une fonction avec 8 parametres
qui sont traite pareil,
comment boucher sur ces 8 parametres
(pensait for each collection in object mais ca marche pas )
merci par avance
Bonjour
Le mieux serait de mettre la fonction sur le forum pour se rendre compte de ce qu'elle fait.
Philippe
je suis entrain de lecrire
dans l'idee cest ca mais je peux avoir 3 ou 50 parametres enfait, donc
donc mes 2 questions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public function TESTVRAI(Product, PRIX, DATE ) as boolean for each object in collection if object <> range("X" & object).value then trouvee = false else trouvee = true exit for end if testvrai = true end function
comment fairepour que ma fonction accepte une infinite de parametres
et comment taper dasn la liste des parametres...
MERCI par avance
Bonjour,
D'après ce que tu décris, j'utiliserais ParamArray
Extrait de l'aide d'excel
[EDIT]Le mot clé ParamArray permet à une fonction d'accepter un nombre variable d'arguments. Dans la définition suivante, FirstArg est transmis par valeur.
A lire sur le sujet
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
je vais essayer.
jespere que ca reagi pareil entre la function et les sub
bref a tester je te dirai mais ca risque de maider pas mal
merci bcp
Bonjour,
Oui, cela fonctionne aussi bien avec les fonctions qu'avec les SUB.
Cependant ParamArray ne peux coexister avec les arguments optionnels. J'aurais plutôt tendance à l'utiliser pour les fonctions personnalisées ou quand on doit passer un tableau.
Une autre approche est d'envoyer comme argument une variable de type string séparé par un caractères comme par exemple ";" que tu peux combiner avec un autre caractère comme "," ou autre et que tu décomposes avec la fonction Split qui renvoie un tableau. C'est l'option que j'utilise.
Par exemple
J'ai écrit une procédure qui fait un tableau croisé dynamique en fonction de plusieurs paramètres dont un est le filtre.
Imaginons que j'ai deux filtres à passer avec la valeur à filtrer
L'argument (optionel) que je passe est Optional Filter = "Date:=05/2/2013;Code:=Toto"
Je fais appel une première fois à la fonction avecpour obtenir les champs à filtrer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Table = Split(Filter,";")
Cela me donnera un tableau avec table(0) = "Date:=05/2/2013" et table(1) = "Code:=Toto"
Et ensuite un deuxième Split par élément Split(Table(0),":=") qui me donnera en 0 le nom du champs à filtrer et en 1 la valeur à filtrer.
Mais rien de tel qu'un petit code de démonstration qui passe un argument représentant trois champs à filtrer contenant chacun une valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub SplitDemo() Dim FieldFilter As String FieldFilter = "Date:=4/2/2013;CodeSto:=A2;CodeLiv:=Toto" MsgBox "Arguments multiples passés " & myDemo(FieldFilter), vbInformation + vbOKOnly, "Démonstration de Split" End Sub Function myDemo(Optional fieldPage As String) As String Dim myFilter() As String, FilterTo() As String Dim filter As String, f As Byte, Elem As Byte Dim txt As String myFilter = Split(fieldPage, ";") For f = 0 To UBound(myFilter) FilterTo = Split(myFilter(f), ":=") txt = txt & vbCrLf & vbTab & "Filtre " & f & " Champs " & FilterTo(0) & " avec comme valeur " & FilterTo(1) Next myDemo = txt End Function
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Partager