IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fonction à nombre de paramètres


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 7
    Par défaut Fonction à nombre de paramètres
    Bonjour,

    Je voulais savoir s'il était possible de créer une fonction avec un nombre de paramètres infini, ou du moins grand? Sans avoir à taper de longue ligne de codes.
    Par exemple, comment pourrais-t-on recréer la fonction ET avec 100 paramètres?

    Merci beaucoup !

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut



    Bonjour,

    en consultant l'aide de l'instruction Function concernant l'utilisation de ParamArray

    et en effectuant au besoin une recherche dans les discussions de ce forum …


    _____________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Citation Envoyé par Rifl3x Voir le message
    Bonjour,
    comment pourrais-t-on recréer la fonction ET avec 100 paramètres?

    Merci beaucoup !
    Ridicule.

    Quelqu'un qui aurait une idée de même a un classeur extrêmement mal conçu ou connaît Excel extrêmement mal.

    Voir aussi par là:

    http://www.developpez.net/forums/d15...robleme-excel/

    Après tout, c'est le même genre de problème.

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    Question surprenante, mais à laquelle on peut quand même imaginer des solutions. Par exemple en passant une collection(soyons fous) en entrée


    après, ça demande pas mal de blindage et de programmation défensive, pour s'assurer qu'on ne reçoit que des booléens, par exemple. Parceque si on commence à faire un Et multiple sur un mélange de currency, de string et autres objets pas vraiment précisés, ça va donner des résultats imprévisibles, pour rester poli.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Une fonction avec un nombre de paramètres inimitié, est contrairement à ce qu'on peut croire très limité au contraire car il faut les écrire tous, il n'y a rien de dynamiques et j'imagine que tu voudrais un gestion dynamique!


    Alors qu'un simple variable tableau ferait affaire et elle pourrait être dynamique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sub Test()
    Dim A as string
    A = FunDynamique(Array("a","z","e"))
    Function FunDynamique(T) as String
    Dim i as long
    For i = 0 To Ubound(T)
        If FunDynamique ="" Then FunDynamique = T(I) Else FunDynamique = FunDynamique &  " And " & T(I)
    Next
    End Funrtion

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Pas si ridicule comme besoin.
    Pourquoi pas une fonction personnalisée à laquelle on veut passer un nombre conséquent de valeurs (comme moyenne() par exemple si elle n'existait pas) ?
    Marc à répondu, mais s'ils sont sur une plage autant passer la plage.

    eric

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Le lien proposé par Marc sous entend que le programme connait préalablement les paramètres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Myfontion( param1)
    Myfontion(param1,param2)
    Myfontion(param1,param2,param3)
    Myfontion(param1,param2,param3,param4)

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Bonsoir,
    Une fonction avec un nombre de paramètres inimitié, est contrairement à ce qu'on peut croire très limité au contraire car il faut les écrire tous, il n'y a rien de dynamiques et j'imagine que tu voudrais un gestion dynamique!


    Alors qu'un simple variable tableau ferait affaire et elle pourrait être dynamique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sub Test()
    Dim A as string
    A = FunDynamique(Array("a","z","e"))
    Function FunDynamique(T) as String
    Dim i as long
    For i = 0 To Ubound(T)
        If FunDynamique ="" Then FunDynamique = T(I) Else FunDynamique = FunDynamique &  " And " & T(I)
    Next
    End Funrtion
    Juste un détail : des emmerdeurs peuvent faire des tableaux qui ne commencent pas en zéro. En terme de blindage, je ferais donc un For i = Lbound(T) To Ubound(T)

    Mais c'est vraiment pour blinder si le code est repris derrière par un emmerdeur.

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Re,

    Le lien proposé par Marc sous entend que le programme connait préalablement les paramètres
    Pas vu de lien.
    Mais le ParamArray évoqué permet le passage d'un tableau de x paramètres à la fonction, en un seul argument. Ce qui est une façon de répondre à la question je pense.
    eric

Discussions similaires

  1. Fonction à nombre de paramètres variable
    Par Noufnouf dans le forum Scheme
    Réponses: 1
    Dernier message: 06/04/2011, 11h01
  2. [POO] Fonction à nombre de paramètres dynamique
    Par Digimag dans le forum Langage
    Réponses: 13
    Dernier message: 14/02/2008, 22h32
  3. Réponses: 2
    Dernier message: 05/09/2007, 09h22
  4. Réponses: 11
    Dernier message: 30/03/2006, 15h39
  5. Réponses: 9
    Dernier message: 24/05/2005, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo