(Excel) Macro à l'aide SVP

Résolu/Fermé
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 - 10 sept. 2007 à 11:42
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 - 10 sept. 2007 à 14:04
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 !!!!!!!!!!!
A voir également:

11 réponses

Utilisateur anonyme
10 sept. 2007 à 11:49
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
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
10 sept. 2007 à 11:53
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
Utilisateur anonyme
10 sept. 2007 à 11:56
Oui, comme ça...
0
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

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

Posez votre question
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
10 sept. 2007 à 12:05
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
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
10 sept. 2007 à 12:08
Je vais essayer la version de Georges...
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
10 sept. 2007 à 12:18
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
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
Utilisateur anonyme
10 sept. 2007 à 13:42
Fait attention aux noms de tes feuilles, respectent la casse!
Cela peut venir de là
0
Utilisateur anonyme
10 sept. 2007 à 13:49
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
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
10 sept. 2007 à 14:04
Un grand merci a vous deux !!!!

Cela marche bien maintenant !

Merci et bonne journée.

Olive
0