6 votes

Ajouter une formule de cellule dans Excel via vba

Je ne suis pas un expert d'Excel ou de VBA mais je veux insérer cette formule Excel actuelle dans les cellules en utilisant VBA.

Formule Excel actuelle :

=IF(OR(ISNUM(D570)=FALSE;ISNUM(D573)=FALSE);"";IF(C573="Total";D573-D570;""))

Formule VBA :

 ActiveSheet.Range("a" & ActiveSheet.Rows.Count).End(xlUp).Offset(2, 12).Value = "=IF(OR(ISNUM(R[-3]C[-9])=FALSE;ISNUM(R[0]C[-9])=FALSE);'';IF(R[0]C[-10]='Total';R[0]C[-9]-R[-3]C[-9];''))"

Cela ne fonctionne pas Quelqu'un peut m'aider s'il vous plaît ?

8voto

e.James Points 51680

Essayez d'utiliser .formula = au lieu de .value = dans votre code VBA.

Fixer le .value d'une cellule recopie simplement la valeur que vous avez spécifiée. Dans ce cas, votre formule est simplement convertie en une valeur de type chaîne de caractères.

Utilisation de la .formula vous spécifiez en réalité la formule qui sera utilisée pour calculer la valeur, ce qui est ce que vous recherchez.

5voto

Gary McGill Points 8009

Puis-je d'abord suggérer une simplification de votre formule, de :

=IF(OR(ISNUM(D570)=FALSE;ISNUM(D573)=FALSE);"";IF(C573="Total";D573-D570;""))

...à...

=IF(AND(C573="Total"; ISNUM(D570); ISNUM(D573)); D573-D570; "")

Ensuite, je définirais une cellule (la cellule active dans l'exemple ci-dessous) pour utiliser cette formule à l'aide du code VBA :

ActiveCell.Formula = "=IF(...)"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X