(Excel) Macro à l'aide SVP

Résolu
olive60 Messages postés 273 Statut Membre -  
olive60 Messages postés 273 Statut Membre -
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. Utilisateur anonyme
     
    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
  2. olive60 Messages postés 273 Statut Membre 27
     
    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
  3. Georges6180
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. olive60 Messages postés 273 Statut Membre 27
     
    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
  6. olive60 Messages postés 273 Statut Membre 27
     
    Je vais essayer la version de Georges...
    0
  7. olive60 Messages postés 273 Statut Membre 27
     
    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
  8. Georges6180
     
    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
  9. Utilisateur anonyme
     
    Fait attention aux noms de tes feuilles, respectent la casse!
    Cela peut venir de là
    0
  10. Utilisateur anonyme
     
    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
  11. olive60 Messages postés 273 Statut Membre 27
     
    Un grand merci a vous deux !!!!

    Cela marche bien maintenant !

    Merci et bonne journée.

    Olive
    0