(Excel) Macro à l'aide SVP

Résolu
Bonjour à tous !!!

Le problème :

J'ai un classeur dynamique à 4 feuilles "Hypothèses" "produits" "charges" et "resultats".

Pour faire varier mon classeur en fonctions de differentes hypothèses d'activité, j'ai fais des boutons sur la page hypothèses, boutons qui modifie la valeurs de certaines cellules, dans la meme feuille.

Cependant, j'aimerais que ces boutons modifient également deux valeurs dans une autre feuille ("charges").

Voici une macro d'un bouton :

Sub Bouton40_QuandClic()
Range("D4").Select
ActiveCell.FormulaR1C1 = "2"
Range("D6").Select
ActiveCell.FormulaR1C1 = "1"
Range("C35").Select
ActiveCell.FormulaR1C1 = "2"
Range("C36").Select
ActiveCell.FormulaR1C1 = "1"
Range("C39").Select
ActiveCell.FormulaR1C1 = "1"
Range("C40").Select
ActiveCell.FormulaR1C1 = "1"
End Sub

Comment puis je la modifier??? (le fameux "!charges(XXX)" dans une formule)

MERCI DE VOTRE AIDE AME CHARITABLES !!!!!!!!!!!
Configuration: Windows 2000
Internet Explorer 5.01

11 réponses

  1. Essai ça

    <CODE>
    feuil1=ThisWorkbook.Worksheets("hypothèses")
    feuil2=ThisWorkbook.Worksheets("charges")

    Lorsque tu veux travailler sur la feuille Hypothèses, tu tapes:
    feuil1.range(".....")
    lorsque tu veux travailler sur la feuille Charges, tu tapes:
    feuil2.range("......")

    Moi, je fais comme ça et ça fonctionne

    0
    1. MErci de ta réponse!

      Mais ces lignes je les places ou dans ma macro, au debut?

      Sub Bouton40_QuandClic()
      <CODE>
      feuil1=ThisWorkbook.Worksheets("hypothèses")
      feuil2=ThisWorkbook.Worksheets("charges")
      Range("D4").Select
      ActiveCell.FormulaR1C1 = "2"
      Range("D6").Select
      ActiveCell.FormulaR1C1 = "1"
      Range("C35").Select
      ActiveCell.FormulaR1C1 = "2"
      Range("C36").Select
      ActiveCell.FormulaR1C1 = "1"
      feuil2.Range("C39").Select
      ActiveCell.FormulaR1C1 = "1"
      feuil2.Range("C40").Select
      ActiveCell.FormulaR1C1 = "1"
      End Sub

      Comme ça?

      MErci!!!
      0
      1. Voici ta formule modifiée:

        Sub Bouton40_QuandClic()
        Range("D4").Select
        ActiveCell.FormulaR1C1 = "2"
        Range("D6").Select
        ActiveCell.FormulaR1C1 = "1"
        Range("C35").Select
        ActiveCell.FormulaR1C1 = "2"
        Range("C36").Select
        ActiveCell.FormulaR1C1 = "1"
        Range("C39").Select
        ActiveCell.FormulaR1C1 = "1"
        Range("C40").Select
        ActiveCell.FormulaR1C1 = "1"

        Sheets("Feuil2").Select
        Range("B20").Select
        ActiveCell.FormulaR1C1 = "=5"
        Sheets("Feuil1").Select
        End Sub

        tu remplaces" Feuill2" par le nom de la feuille dans laquelle tu veux aller et "Feuill1" par le nom de ta feuille d'origine.
        Exemple :
        Sheets("Hypothèses").Select
        Sheets("Produits").Select

        le reste, tu sembles connaître.

        Amitiés.

        Georges
        0
        1. Merci BCP pour ta réponse... mais

          Erreur de synthaxe !!!!
          Vous voyez une erreur qq part?

          Sub Bouton46_QuandClic()
          <CODE>
          Feuil1 = ThisWorkbook.Worksheets("hypothèses")
          Feuil2 = ThisWorkbook.Worksheets("charges")
          Range("D4").Select
          ActiveCell.FormulaR1C1 = "1"
          Range("D6").Select
          ActiveCell.FormulaR1C1 = "0"
          Range("C35").Select
          ActiveCell.FormulaR1C1 = "0.5"
          Range("C36").Select
          ActiveCell.FormulaR1C1 = "0.5"
          Range("C39").Select
          ActiveCell.FormulaR1C1 = "1"
          Range("C40").Select
          ActiveCell.FormulaR1C1 = "0.5"
          Feuil2.Range("F16").Select
          ActiveCell.FormulaR1C1 = "3"
          Feuil2.Range("G16").Select
          ActiveCell.FormulaR1C1 = "3"
          End Sub
          0
          1. Je vais essayer la version de Georges...
            0
            1. Voici la macro, elle fonctionne pile poil mais le souci c'est que les valeurs du premier paragraphe s'inscrive aussi ds la feuille "charges" (alors quelle ne concerne que des cellules dans la feuille "hypothèses"). Comment eviter cela?

              Sub Bouton46_QuandClic()
              Range("D4").Select
              ActiveCell.FormulaR1C1 = "1"
              Range("D6").Select
              ActiveCell.FormulaR1C1 = "0"
              Range("C35").Select
              ActiveCell.FormulaR1C1 = "0.5"
              Range("C36").Select
              ActiveCell.FormulaR1C1 = "0.5"
              Range("C39").Select
              ActiveCell.FormulaR1C1 = "1"
              Range("C40").Select
              ActiveCell.FormulaR1C1 = "0.5"

              Sheets("Charges").Select
              Range("F16").Select
              ActiveCell.FormulaR1C1 = "=3"
              Sheets("Hypothèses").Select
              Sheets("Charges").Select
              Range("E16").Select
              ActiveCell.FormulaR1C1 = "=3"
              Sheets("Hypothèses").Select

              MErci bcp !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Vous etes mes sauveurs !!!!!
              0
              1. Rebonjour Olive60,

                nous allons raisonner ce que tu fais.
                1. sélectionne la feuille dans laquelle tu travailles ou celle dans laquelle tu veux inclure des valeurs.
                ex.: Sheets("Charges").Select

                2. programme tes instructions.
                ex .: Range("F16").Select
                ActiveCell.FormulaR1C1 = "=3"

                ou en une seule ligne : Range("F16").FormulaR1C1 = "=3"
                ou encore : Range("F16").Value= 3

                3. continue les instructions comme en 2 ou sélectionne une nouvelle feuille comme en 1.
                4. donne de l'air dans ta programmation, c'est beaucoup plus lisible.

                Je recommence ta macro pour ta facilité. Tu la modifie comme tu veux.

                Sub Bouton46_QuandClic()

                Sheets("Hypothèses").Select
                Range("F16").Select
                ActiveCell.FormulaR1C1 = "=3"
                ...

                Sheets("Charges").Select
                Range("E16").Select
                ActiveCell.FormulaR1C1 = "=3"
                ...

                Sheets("Hypothèses").Select

                End Sub

                Comme je suis paresseux, voici comment je fais:

                Sub Bouton46_QuandClic()

                With Sheets("Hypothèses")
                . Range("F16").Value = 3 'Ne pas oublier le point avant range
                . Range("F16").Value = 3 'Ne pas oublier le point avant range
                . Range("F16").Value = 3 'Ne pas oublier le point avant range
                . Range("F16").Value = 3 'Ne pas oublier le point avant range
                ...
                end with

                With Sheets("Charges")
                .Range("E16").Value = 5
                .Range("E16").Value = 5
                .Range("E16").Value = 5
                .Range("E16").Value = 5
                .Range("E16").Value = 5
                ...
                end with

                Sheets("Hypothèses").Select

                End Sub
                Bonne chance

                Georges
                0
                1. Fait attention aux noms de tes feuilles, respectent la casse!
                  Cela peut venir de là
                  0
                  1. Je me suis trompé sur les formules que je t'ai donné, la vrai syntaxe c'est

                    SET Feuil1 = ThisWorkbook.Worksheets("Hypothèses")
                    SET Feuil2 = ThisWorkbook.Worksheets("Charges")
                    


                    ensuite tu dois choisir sur quelle feuille écrire:

                    Feuil1.Range("...").Select
                    (par exemple , si tu veux écrire sur Hypothèse)

                    Mais la méthode de Georges6180 fonctionne très bien aussi.
                    0
                    1. Un grand merci a vous deux !!!!

                      Cela marche bien maintenant !

                      Merci et bonne journée.

                      Olive
                      0