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 :

Parcourir paramêtres sub


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 99
    Par défaut Parcourir paramêtres sub
    Bonjour
    Je souhaiterai réaliser une Sub ou une fonction prenant en argument un nom de variable et les initialisant à 0.
    ex générique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub inittozero(var1 As String, Optional var2 As String, Optional var3 As String, Optional var4 As String ........)
     
    for each 'var' as parametre
    'var' = 0
    next
     
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    inittozero "mavariable1", "mavariable2", "mavariable3"
    Je voudrais pouvoir parcourir chaque argument afin de l'initialiser à 0

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Ce qui est bizarre c'est que tu veuilles écrire la valeur 0 dans une chaîne de car. Il s'agit du caractère "0"?

    Tu peux faire ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub inittozero(var1 As String, Optional var2 As String, Optional var3 As String, Optional var4 As String ........)
     
    var1 = "0"
    if not isnull(var2) then var2 = "0"
    ... 
    end sub
    Il n'y a pas de collection d'arguments.

    Cordialement,

    PGZ

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 99
    Par défaut
    je me suis surement mal exprimé.
    Je commence à avoir pas mal de variable dans un programme, et je souhaiterais plutôt que de faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim x as integer, y as integer, toto as integer, tata as integer, momo as integer, titi as integer
    x = 0
    y = 0
    toto = 0
    tata = 0
    momo = 0
    titi = 0
    etc...
    avoir une fonction du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sub initToZero(var1 as string, var2 as string etc.....) 'peut être pas de type string ?
    'var' = 0
    end sub
    que j'appellerais ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    initToZero "toto","tata","x","y"   'etc....

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    Je ne vois pas ce que tu gagerais avec un appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    initToZero "toto","tata","x","y"   'etc....
    plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inittozero toto,tata,...
    ET je ne crois pas qu'il soit possible de passer une variable par son nom car il n'y a pas de collection de variables.

    Sauf si tu crées toi-même cette collection.

    Mais tu peux faire la même chose en passant les variables ByRef à la procédure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sub initToZero(ByRef var1 as integer, optional ByRef var2 as integer, etc.....)
    var1 = 0
    If not isnull(var2) then var2 = 0
    ...
    end sub
    et appeler
    Cordialement,

    PGZ

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Je commence à avoir pas mal de variable dans un programme, et je souhaiterais plutôt que de faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Code :
     
    dim x as integer, y as integer, toto as integer, tata as integer, momo as integer, titi as integer
    x = 0
    y = 0
    toto = 0
    tata = 0
    momo = 0
    titi = 0
    etc...
    Dans quel contexte ? Tu est dans une (ou des ) procédure sub avec des variables de portée procédure ou module ?

    A quel moment tu veux faire ta remise à zéro ?

    avoir une fonction du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub initToZero(var1 as string, var2 as string etc.....) 'peut être pas de type string ?
    'var' = 0
    end sub
    Attention à ne pas confondre une procédure Sub n'est pas une fonction, de toutes façons, une fonction retourne 1 résultat

    cordialement,

    Didier

Discussions similaires

  1. [Débutant] passage de tableau en paramètre (sub ou classe)
    Par patrickvier dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/10/2012, 17h08
  2. Appeler une requête paramétrée dans un sub
    Par Celephais dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/11/2007, 11h49
  3. Sub et valeurs par défaut d'un paramètre
    Par ldujard dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/01/2007, 17h57
  4. Réponses: 3
    Dernier message: 22/01/2007, 00h03
  5. [VB] Problème de function / sub (tableau comme paramètre)
    Par elhosni dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/05/2006, 20h34

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