Automatiser les macros

dianbobo Messages postés 167 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
j'ai fait plusieurs macros qui s'executent dans des feuilles differentes
sauf que les resultats dans certaines feuilles dependent das autre
alors il me faut faire une automatisation de mes macros dans un certain ordre

supposons que j'ai
dans la feuille ("synthese") 2 macros: macro1 et macro2
tel que macro1 doit sexecuter avant macro2
puis quand je sorts de cette feuille ,je me retrouve dans ma feuille ("feuil1")
celle ci ayant 3 macros macro_a,macro_b et macro_c
macro _a s'execute puis macro_b enfin macro_c
enfin j'ai ma feuille ("feuil2")
ayant une seule macro
macro_h

est-il paussible de creer une boite de dialogue qui me demande de cliquer sur des boutons
portants les noms de mes macros?

merci de m'aider


9 réponses

ben13.51 Messages postés 115 Statut Membre 7
 
Salut,

si tu va dans affichage> barre d'outils et que tu coches formulaire tu pourras créer un bouton.

Lorsque tu crées ce bouton une fenêtre s'affiche et tu peux choisir la macro que tu veux lui affecter...

Voilà je pense que ça devrait t'aider

ben
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Et pourquoi ne pas faire une macro qui appel toutes tes macros dans l'ordre qu'il faut ?
A+
0
dianbobo Messages postés 167 Statut Membre 1
 
bonjour, voila j'ai fait une macro qui appelle toues les autes mais je me pose une question : dans quelle feuille active dois-je ecrire cette macro ou bien je peu la mettre dans n'importe laquelle.

Option Explicit

Sub Lance()
Worksheets("Syntèse").Activate
Call macrosynthese 'code qui recupère les oblig de la nvll dispo vers la feuille synthese(1)
Call suprimeligne   'code qui retranche toutes les obligations qui n'ont pas un taux fixe(2)

Worksheets("Feuil1").Activate
Call marcotest 'copie de toutes les oblig a taux fixe de la feuille synthese vers feuil1(3)
Call Prixspot    'calcul du prix spot aujourd'hui(4)


Worksheets("Risque Crédit").Activate
Call spreadDeCredit 'ecart entre le prix spot aujourd'hui et celui a l'emission(5)

Worksheets("Feuil1").Activate
Call valorisation_coupon_Annuel 'code sur la valorisation d'oblig à coupons annuels
Call valo_coupon_trimestriel    'code sur la valorisation d'oblig a coupons trimestriels
Call valo_coupon_semestriels    'code sur la valorisation d'oblig a coupons semestriels
End Sub


merci de votre aide
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
C'est dans tes différentes macros que tu doit spécifier dans quel feuille et où ça doit être copier et pas dans la macro récapitulative.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dianbobo Messages postés 167 Statut Membre 1
 
bonjour lermite222,
je ne comprend pas bien ce uqe tu essais de me dire .
peu tu me donner un exemple?

merci
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Quand je lis.. 
Worksheets("Syntèse").Activate 
Call macrosynthese 'code qui recupère les oblig de la nvll dispo vers la feuille synthese(1)

la ligne <Worksheets("Syntèse").Activate > ne devrait pas être dans la macro Lance mais dans la macro macrosynthese
ce serait plus conforme et autoriserait, dans certaines conditions de ne faire appel qu'a cette macro;
PS : Mais ça fonctionne de même .
A+

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
dianbobo Messages postés 167 Statut Membre 1
 
voila je l'ai fait dit vu que la feuille synthese a plusieurs macros dois-je ecrire
Worksheets("Syntèse").Activate
dans chaque macro de la feuille synthese ou tout simplement dans macro synthese
sinon la macro ne fonctionne pas toujours ,j'ai toujours la meme erreur.
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Tu a une erreur ?
Laquel et où ?, sur quel ligne ?
0
dianbobo Messages postés 167 Statut Membre 1
 
l'erreur se trouve
ici:
Call macrosynthese 

erreur de compilation "sub ou fonction non definie"

et ce a toutes les macros lorsque je passe par exemple macrosynthese en commentaire cette erreur est revelée a :
Call suprimeligne   


et ainsi de suite..
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Tes macros DOIVENT ÊTRE dans un module Bas ainsi que ta macro Lance.
Mais pas dans des modules de feuille.
Pour un module Bas .. Insertion >> Module.
Tu met toutes tes macros dans ce module.
Sinon tu doit déclarer dans quel feuille ça se trouve.. call Feuil1!NomMacro
A+
0