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 :

Transformer "Sub" en "Function"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut Transformer "Sub" en "Function"
    Je réalise mémoire de fin d'études et étant novice en matière de programmation VBA, j'aurai besoin de votre aide.

    J'ai une procédure VBA qui réalise une régression linéaire entre deux plages de cellules:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub regress()
     
    Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$B$2:$B$535"), ActiveSheet.Range("$D$2:$D$535"), False, True, , ActiveSheet.Range("b776"), False, False, False, False, , False
     
    End Sub
    Le résultat est correct mais j'aimerai que la fonction aie cette forme:
    Function regress (y as range, x as range) avec y correspondant à
    B2:B535 et x à D2: D535
    Cela me permettrait de simplement tirer la formule par après

    J'ai essayé un peu toutes les solutions mais la fonction me renvoie toujours #VALUE!


    Je vous remercie d'avance pour vos réponses.

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Je suis pas sur d'avoir tout compris, mais pour passer des paramètres il n'ya pas trop de soucis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub lance_regress()
     
    Ma_Regress Range("$B$2:$B$535"), Range("$D$2:$D$535")
     
    End Sub
     
    Sub Ma_Regress(ByVal y As Range, ByVal x As Range)
    Application.Run _
    "ATPVBAEN.XLA!Regress", _
    y, _
    x, False, True, , ActiveSheet.Range("b776"), False, False, False, False, , False
     
    End Sub

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut
    En fait, j'aimerai "grosso modo" quelque chose dans le genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function regression (Y,X)
    
    Sub(Y,X)
    
    End Sub
    
    End Function
    Sachant que ma Sub renvoie un tableau de 18 lignes et 8 colonnes et que le résultat qui m'intéresse principalement se trouve à l'intersection de la 17ème ligne et la 2ème colonne.

    La fonction renverrai donc cette valeur.

    Ca me permettrai de définir les plages de cellules directement dans la formule et ainsi n'avoir qu'à "tirer" la formule pour les autres régression que je dois réaliser.

    Je ne sais pas si c'est plus clair

Discussions similaires

  1. Transformation inattendue de mes apostrophes en simple-quote
    Par puresprit dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2015, 15h56

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