Erreur 1004 lors de passage de formule dans une cellule

Bonjour à tous,
Petit nouveau dans Excel et sur le forum, j’ai un problème:
Lorsque je passe une formule dans une cellule dans mon code, j’ai le message d’erreur 1004 qui s’affiche. Si je copie manuellement ces mêmes formules dans la cellule, elles fonctionnent parfaitement.
La ligne de code dans VBA est:
Range(« B31 »).Formula = « =SI(B29=2;VRAI) »
ou
Range(« B31 »).Formula = « =SI(SOMME(F4+F5)=9;VRAI) »
en revanche si je passe Range(« B31 »).Formula = « =SOMME(F4+F5) » par exemple, pas de problème

Quelqu’un a déjà eu ce problème ou pourrait m’expliquer ce que je fais faux?
Par avance merci et cordiales salutations
André

Bonjour,

Si tu n’as pas d’erreur 1004 avec cette formule, tu n’auras pas son résultat mais une erreur dans la cellule
les formules en VBA, n’ont rien à voir avec les formules depuis Excel, utilise l’enregistreur de macro et tu verras tes erreurs
SOMME sur Excel =SUM en VBA
SI sur Excel = IF en VBA
VRAI sur EXCEL = TRUE en VBA
Etc

Pour te guider dans tes erreurs:
Formula : Ta formule doit respecter la syntaxe « anglaise »
FomulaLocal : … la syntaxe telle qu’elle est dans ta formule Excel
Ces deux syntaxes utilisent les adresses littérales A1 ou $A$1
FormulaR1C1 : Syntaxe anglaise mais adresse R0C5 où R0 signifie que tu ne changes pas de ligne mais C5 que tu prends la donnée 5 colonnes plus loin… et réciproquement si tu mets R5C0

EXEMPLE pour tes deux premières formules qui fonctionneront

Range("B31").FormulaLocal = "=SI(B29=2;VRAI)"
Range("B31").FormulaLocal = "=SI(SOMME(F4+F5)=9;VRAI)"

@ Mimimathy,
C’est tout simple, en recopiant ta formule j’ai vu que tu utilises FormulaLocal au lieu de Formula et c’est ce qui fait toute la différence. Ca fonctionne!!!
J’ai pourtant tout essayé par rapport aux termes anglais et la définition des lignes et colonnes sans succès. c’est vraiment que le terme Formula au lieu de FormulaLocal qui générait cette erreur.
Merci pour ton aide et cordiales salutations
André

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.