Page 1 sur 1

introduire une formule par macro

Posté : 21 août 2006, 03:12:21
par apt
Bonjour,

J'ai essaye cette macro (inserée dans ThisDocument) pour l'exemple :


A1 = 7000; B1 = 2663 :


Sub Macro1()
ActiveDocument.Tables(1).Cell(1, 3).Select
Selection.InsertFormula Formula:="=(B1/A1)*100)"
ActiveDocument.Fields.Update
End Sub


mais C1 me donne toujours 38.04


meme si je change les valeurs de A1 et B1, C1 reste toujours figée sur
38.04 !!!


Et si ja fait executer la macro du menu outils une autre valeur de
38.04 vient s'ajouter au contenu de C1 qui est 38.04 (ca devient 38.0438.04)


Et ActiveDocument.Fields.Update ne fait rien ?


Ou est l'erreur ?


Merci.

Posté : 02 sept. 2006, 10:24:16
par John Mallory
Bonjour,

Je ne sais pas si tu as un problème de format de cellule et je n'ai pas vraiment compris ce que tu veux faire comme macro mais en tout cas, la macro que je te propose est plus simple. Tu n'as pas à la coller dans ThisDocument.

Sub Macro4()
Range("C1").Value = Range("B1").Value / Range("A1").Value * 100
End Sub

On suppose que A1=7000 et B1= 2663

P.S: pourquoi introduire une formule aussi sommaire dans une macro?

Posté : 02 sept. 2006, 10:46:27
par logun
salut,

pourquoi utiliser une macro il suffit de mettre dans c1 =(B1/A1)*100

Posté : 02 sept. 2006, 12:12:00
par John Mallory
Re,

C'est bien ce que je disais dans mon PS. Si elle tient à une macro, elle fait comme je lui ai indiqué.

Posté : 05 sept. 2006, 19:19:13
par apt
logun a écrit :salut,

pourquoi utiliser une macro il suffit de mettre dans c1 =(B1/A1)*100
C'est tres simple cette formule, mais la mise à jour ne se fait pas toute seul, malheureusement !!!

C'est pourquoi je cherche une macro qu'il a pour tache de le faire.

Posté : 05 sept. 2006, 19:20:09
par apt
John Mallory a écrit :Bonjour,

Je ne sais pas si tu as un problème de format de cellule et je n'ai pas vraiment compris ce que tu veux faire comme macro mais en tout cas, la macro que je te propose est plus simple. Tu n'as pas à la coller dans ThisDocument.

Sub Macro4()
Range("C1").Value = Range("B1").Value / Range("A1").Value * 100
End Sub

On suppose que A1=7000 et B1= 2663

P.S: pourquoi introduire une formule aussi sommaire dans une macro?
Voila ce que ça donne dans VBE :
Erreur de compilation:
Membre de méthode ou de données introuvable

Posté : 05 sept. 2006, 19:59:31
par logun
salut,

normalement quand tu valide les valeurs entrées dans a1 et/ou B1 cela recalcul automatiquement le resultat dans c1, chez moi ça marche,

regarde dans outils -> options -> calcul si tu as activé : automatique

Posté : 05 sept. 2006, 22:54:11
par apt
logun a écrit :salut,

normalement quand tu valide les valeurs entrées dans a1 et/ou B1 cela recalcul automatiquement le resultat dans c1, chez moi ça marche,

regarde dans outils -> options -> calcul si tu as activé : automatique
Tu parles du cas Excel.

pour moi, dans ce post, ça se passe dans Word.

Posté : 08 sept. 2006, 18:57:28
par nouv
salut,
meme si je change les valeurs de A1 et B1, C1 reste toujours figée sur
38.04 !!!
pour que Word mette à jour le champ de calcul il faut appuyer sur F9 (en ayant préalablement sélectionner le champ ou le document)
><>