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 :

question basique functions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Par défaut question basique functions
    Bonjourà tous,

    j'ai une question de débutant. J'ai crée trois fonctions et celles-ci utilise de memes valeurs prise sur la feuille excel. Je suis en OptionExplicit et du coup je suis obligé de déclarer toutes les variables dans chaque fonction et récupérer leurs valeurs sur la feuille.

    Y'a-t-il un moyen de les déclarer une fois pour toute et fixer leurs valeurs?

    A titre illustratif, mes fonctions ressemblent à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function Vfunction(y as double) As Double
     
    Dim x1 As Double
    Dim x2 As Double
     
    x1 = Sheets("paramètres").Range("C2").Value
    x2 = Sheets("paramètres").Range("C4").Value
     
    Vfunction = y^2+2*x1+x2
     
    End Function
    Je veux faire ça en déclarant x1, x2 une fois pour toute ailleurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Function Vfunction(y as double) As Double
     
    Vfunction = y^2+2*x1+x2
     
    End Function
    Merci!!

  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,

    les déclarer en entête de module avant la première fonction ou procédure
    afin qu'elles soient communes comme du reste expliqué dans l'aide de l'instruction Dim

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Par défaut
    Merci pour votre réponse. Vous voulez dire en Public? et quant aux valeurs des variable?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    pourquoi ne pas déclarer X1 et X2 dans ton passage de fonction comme tu l'as fait pour Y!

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Par défaut
    y est un input alors que x1 et x2 ne le sont pas, c'est juste des paramètres fixes. Si je mets toutes les variables en input je serai obligé d'insérer une dizaine (dans mes vrai fonctions) de variable en input sans que ça change quoi que se soit.

    merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jasonbecker Voir le message
    y est un input alors que x1 et x2 ne le sont pas, c'est juste des paramètres fixes. Si je mets toutes les variables en input je serai obligé d'insérer une dizaine (dans mes vrai fonctions) de variable en input sans que ça change quoi que se soit.

    merci
    je ne comprends rien de ce que tu dis!

    y est une variable et peut importe comment tu fais l’acquisition de la valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sub test
     
    Dim x1 As Double
    Dim x2 As Double
     
    x1 = Sheets("paramètres").Range("C2").Value
    x2 = Sheets("paramètres").Range("C4").Value
     debug.print  Vfunction(10.5,X1,X2)
    end sub
     
    Function Vfunction(y as double,x1 As Double, x2 As Double) As Double
     Vfunction = y^2+2*x1+x2
    End Function

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Par défaut
    Je reformule ma question. Comment définir des constantes une fois pour toute et les utiliser dans toutes les sub et les fonctions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question basique (sdl)
    Par insomniak dans le forum SDL
    Réponses: 2
    Dernier message: 24/10/2005, 18h03
  2. Question Basique Gestion Erreur VBA ...
    Par Le_Phasme dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 13h42
  3. Question basique
    Par PatLeOuf dans le forum C++
    Réponses: 1
    Dernier message: 23/03/2005, 10h57
  4. Réponses: 5
    Dernier message: 04/03/2005, 12h14

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