Nombre maximum d'arguments dans une fonction

Bonjour!

Question simple

Je voulais savoir s'il y avait un nombre N maximum d'arguments a1,...aN que l'on pouvait intégrer à une fonction

f(a1,a2,...aN) en VBA, combien il vaut, comment le régler etc.

Merci d'avance !

Bonsoir,

avez vous cherchez sur le NET ?

Perso je dirais 256, car souvent c'est une limite en programmation

Je vais de ce pas faire une petite recherche car je crois bien l'avoir déjà lu quelque part !

@ bientôt

LouReeD

Après une petit recherche, ce serait 30 mais sans certitude.

Toujours est-il qu'il est possible (à priori) de passer un tableau en argument, ce qui peut accroitre les possibilités !

Des spécialiste du VBA vont certainement régir à mes idioties, au moins alors on aura peut-être LA réponse !

@ bientôt

LouReeD

Bonjour LouReeD, Lionel,

Ta 1ère réponse 256 était tout proche ! c'est 255 :

screen

Je l'ai lu sur cet article (source Microsoft) : https://support.office.com/fr-fr/article/sp%C3%A9cifications-et-limites-relatives-%C3%A0-excel-1672b34d-7043-467e-8e27-269d656771c3

Ta 2ème petite recherche a abouti à une info légèrement sous-évaluée !


Tu a écrit :

Toujours est-il qu'il est possible (à priori) de passer un tableau en argument, ce qui peut accroitre les possibilités !

Des spécialiste du VBA vont certainement réagir à mes idioties

Non, non, ce ne sont pas du tout des idioties ! je confirme que même à posteriori, ta proposition de passer un tableau en argument accroît bien les possibilités !

dhany

Bonjour,

ma première réponse était 256 car multiple de binaire en comptant le "0"...

et passer "0" argument c'est en fait avoir une fonction sans argument donc on a bien les 256 cas de figures mais 255 arguments maximum...

La logique informatique n'est jamais très loin...

Donc pour continuer, si vous avez énormément d'arguments à passer, le tableau est l'idéal, car en plus le nombre d'argument peut très bien être variable : un tableau = 1 argument pour la fonction, mais le tableau peut avoir une taille variable... Cette taille peut très facilement être connue pour l'exécution du code avec UBound je crois et ses frères... (pas sur de l'orthographe)

Merci à dhany pour la confirmation de mes dires hypothétiques, car je n'ai même pas réussi à trouver qu'ils étaient bon !!!!

Avez vous vu ? j'ai mis un peu de couleur !!! Mais c'est long !

@ bientôt

LouReeD

Eh oui : 1 bit = 0 ou 1 ; 1 octet = 8 bits ; 2^8 = 256 possibilités, de 0 à 255 ; CQFD c'est de l'informatique binaire !

Je confirme UBound, où U est pour Upper : limite haute du tableau (indices à partir de 0) ; frérot : LBound (Lower).

Pour la couleur, bravo pour avoir fait un effort ! mais si tu trouves que c'est long pour un seul mot, alors imagine le temps que ça m'prend pour plusieurs mots ! c'est super long, mais ça vaut l'coup car j'l'utilise de façon utile, comme pour mon 1er paragraphe : on voit tout de suite la correspondance entre le nombre de bits 8 et 2^8 (2 exposant 8).

rappel : bit est l'abréviation de « binary digit » = « chiffre binaire » ; et en base 2, y'a que les 2 chiffres 0 et 1 ; re-CQFD

ne pas confondre bit avec byte (= 1 octet)

(à l'école, c'était plus dur : fallait apprendre les tables de multiplication au moins jusqu'à 10 ! )

dhany

Et bien voilà ! J'en aie assez pour passer une bonne nuit !

@ bientôt

LouReeD

Bonjour,

Ta 1ère réponse 256 était tout proche ! c'est 255

Non, cette limite là concerne les fonctions natives sur feuille, comme Max() par exemple

Une fonction personnalisée admet 60 arguments maxi (sur 2010 mais je ne pense pas que ça ait changé).

Au-delà utiliser ParamArray comme signalé (voire même avant si le nombre d'arguments n'est pas fixe).

eric

Bonjour,

et bien voilà, avec mes 30 en deuxième proposition j'étais proche !

Mais peu importe, puisque la (les) réponse(s) n'ont pas d'effet sur la réaction de lionel52...

@ bientôt

LouReeD

Bonjour,

perso même avec 30 j'aurais toujours eu assez

Quand il y en a beaucoup c'est quand même moins ch... en lui passant un tableau.

eric

Rechercher des sujets similaires à "nombre maximum arguments fonction"