Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2011, 20h13   #1
Nouveau Membre du Club
 
Inscription : octobre 2004
Messages : 107
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 107
Points : 33
Points : 33
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
jpclabaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 10h15   #2
Membre éclairé
 
Avatar de tototiti2008
 
Inscription : octobre 2008
Messages : 327
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 327
Points : 320
Points : 320
Bonjour Jean,

Citation:
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...
__________________
tototiti2008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 15h37   #3
Nouveau Membre du Club
 
Inscription : octobre 2004
Messages : 107
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 107
Points : 33
Points : 33
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?
jpclabaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 16h46   #4
Membre éclairé
 
Avatar de tototiti2008
 
Inscription : octobre 2008
Messages : 327
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 327
Points : 320
Points : 320
Re,

Citation:
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 :
ActiveWorkbook.Worksheets("MaFeuil1").range("A1").value
Non ?
__________________
tototiti2008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 19h54   #5
Nouveau Membre du Club
 
Inscription : octobre 2004
Messages : 107
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 107
Points : 33
Points : 33
Le problème c'est que la fonction est une macro associée à la feuille créée automatiquement du genre
Code :
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 :
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.
jpclabaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 10h37   #6
Membre éclairé
 
Avatar de tototiti2008
 
Inscription : octobre 2008
Messages : 327
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 327
Points : 320
Points : 320
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 :
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 :
1
2
3
4
5
Sub a()
Dim z As String
    z = Application.Run("Classeur3.xls!MaFonction")
    MsgBox z
End Sub
__________________
tototiti2008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2011, 00h40   #7
Nouveau Membre du Club
 
Inscription : octobre 2004
Messages : 107
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 107
Points : 33
Points : 33
Salut tototiti2008,

Je vais me contenter de cette solution.
En adaptant mon code je vais pouvoir m'en sortir.

Merci beaucoup pour ton aide,
Jean
jpclabaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h50.


 
 
 
 
Partenaires

Hébergement Web