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)
><>