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 :

Utiliser une fonction comprise dans une feuille à partir d'un projet macro complémentaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut Utiliser une fonction comprise dans une feuille à partir d'un projet macro complémentaire
    Salut,

    J'ai un projet de macros complémentaires avec lequel je crée plusieurs feuille dans mon classeur actif. Ensuite je veux utiliser ces fonctions à partir de cette même macro complémentaire.
    C'est possible de faire ça?

    Merci de votre aide,
    Jean

  2. #2
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 207
    Billets dans le blog
    2
    Par défaut
    Bonjour Jean,

    Ensuite je veux utiliser ces fonctions à partir de cette même macro complémentaire.
    C'est possible de faire ça?
    Désolé, je n'ai pas compris...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut
    Effectivement en me relisant je vois que c'est incompréhensible.
    Donc j'ai une macro complémentaire avec laquelle je créé de nouvelles feuilles dans mon classeur actif. Dans chaque feuille, j'ajoute une fonction créée dynamiquement, différente pour chaque feuille (ça dépend du contenu de la feuille).
    Ensuite, je veux appeler les fonctions que j'ai créé dynamiquement à partir d'un module de ma macro complémentaire.

    Est-ce que c'est plus clair comme ça?

  4. #4
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 207
    Billets dans le blog
    2
    Par défaut
    Re,

    Est-ce que c'est plus clair comme ça?
    Légèrement moins brumeux

    Bon, ta macro complémentaire contient une Sub qui crée des feuilles dans le classeur actif, OK
    Elle écrit une formule dans certaine cellules, formule variable, OK

    Comme c'est ton code qui a écrit les formules, je suppose que tu sais où elles sont écrites... Donc quelle est la difficulté de récupérer le résultat de tes formules dans une Sub de ta macro complémentaire ?
    Je suppose que ça devrait s'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Worksheets("MaFeuil1").range("A1").value
    Non ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut
    Le problème c'est que la fonction est une macro associée à la feuille créée automatiquement du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function maFonction() As Boolean
     
    End Function
    et pas une fonction dans une cellule.
    En résumé je veux appeler une macro qui se trouve dans une feuille du classeur actif à partir d'un module de macro complémentaire.
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(maFeuil).maMacro
    mais j'ai l'impression que le système cherche maFeuil dans le projet de la macro complémentaire. Donc il ne la trouve pas et même si par coïncidence il trouvait une feuille du même nom il n'y trouverai pas la macro.
    Voilà, je pense que tout y est cette fois ci.

  6. #6
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 207
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu veux exécuter le code VBA d'une fonction se trouvant dans une feuille du classeur actif...
    J'aurais bien dit d'essayer quelque chose comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub a()
    Dim z As String
        z = Application.Run("Classeur3.xls!Feuil1.MaFonction")
        MsgBox z
    End Sub
    Mais mes tests ne sont pas concluants... il exécute bien la fonction mais il ne renvoie pas le résultat

    Par contre, si tu met la fonction dans un Module du classeur actif, ça fonctionne chez moi avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub a()
    Dim z As String
        z = Application.Run("Classeur3.xls!MaFonction")
        MsgBox z
    End Sub

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/03/2009, 13h36
  2. [AJAX] [XAJAX] Lancer une fonction JS dans une fonction AJAX
    Par sixieme-sens dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/12/2008, 15h26
  3. Réponses: 2
    Dernier message: 28/11/2007, 17h49
  4. Réponses: 1
    Dernier message: 25/10/2007, 21h25
  5. [VBA-E] Une fonction Excel dans une fonction VBA
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/07/2006, 10h21

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