Automatiser les macros

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

  1. 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
    1. Contributeur
      Bonjour,
      Et pourquoi ne pas faire une macro qui appel toutes tes macros dans l'ordre qu'il faut ?
      A+
      0
      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
        1. Contributeur
          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
          1. bonjour lermite222,
            je ne comprend pas bien ce uqe tu essais de me dire .
            peu tu me donner un exemple?

            merci
            0
            1. Contributeur
              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
              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
                1. Contributeur
                  Tu a une erreur ?
                  Laquel et où ?, sur quel ligne ?
                  0
              2. 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
                1. Contributeur
                  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