Erreur insertion de formule VBA

Bonjour,

J'utilise des macros pour insérer des formules dans des cellules, cela fonctionne très bien pour toutes les formules sauf une (celle en rouge), voici l'erreur :

erreur point virgulee

L'erreur semble liée à la présence d'un point virgule dans la formule, comment y remédier ?

Merci,

Bonjour,

Lorsque l'on inscrit des formules par le biais de VBA, on les écrit dans la propriété .Formula (ou encore les variantes .FormulaLocal ou .FormulaR1C1) de la cellule. Par défaut, lorsque l'on ne précise rien derrière .Range("Truc"), on travaille implicitement avec la propriété .Value (valeur contenue dans la cellule), ce qui n'est pas ce que vous souhaitez faire. En effet, si on prend le problème à l'envers, dans une cellule qui contient déjà une fonction, .Value correspond a son résultat.

De plus, les formules s'écrivent dans leur version anglaise, et les arguments sont séparés par des virgules, non des points-virgule.

Enfin, si vous souhaitez juste inscrire le résultat de la formule, et non une formule "Excel", ce n'est pas la bonne méthode. Je ne détaillerais pas davantage ce point, sauf si c'est que vous souhaitez.

Je souhaite copier la formule dans la cellule G2, j'ai essayé de modifier la ligne de code avec .Formula, toujours la même erreur :

erreur formula

Si ça ne te déranges pas je veux bien que tu rentres dans les détails car je ne suis pas sûr de tout comprendre

Je souhaite copier la formule dans la cellule G2, j'ai essayé de modifier la ligne de code avec .Formula, toujours la même erreur :

erreur formula.png

Si ça ne te déranges pas je veux bien que tu rentres dans les détails car je ne suis pas sûr de tout comprendre

Je vous invite à lire jusqu'au bout ma réponse !

De plus, les formules s'écrivent dans leur version anglaise, et les arguments sont séparés par des virgules, non des points-virgule.

Je ne pense pas être en mesure de détailler davantage...

Je vous invite à lire jusqu'au bout ma réponse !

Je l'ai lue, et relue...

De plus, les formules s'écrivent dans leur version anglaise, et les arguments sont séparés par des virgules, non des points-virgule.

J'ai la même erreur en mettant une virgule, et c'est pareil si je rajoute .Formula et .FormulaLocal

erreurvirgule

J'ai la même erreur en mettant une virgule, et c'est pareil si je rajoute .Formula et .FormulaLocal

La formule n'est pas en anglais... Ensuite, il y a un autre problème lié à l'utilisation de guillemets.

Pour VBA, l'utilisation de guillemets délimite du texte, ce qui pose problème si ledit texte contient des guillemets.

Il faut soit doubler chaque guillemet : """" au lieu de ", soit utiliser " & Chr(34) & ".

Quelques tests avec l'enregistreur de macro vous aurais évité une migraine !

Pas d'erreur avec la ligne :

Worksheets("PG1").Range("G2") = "=TEXTE(A2,""mmmm"")"

Par contre la formule copiée n'est pas exactement la même et donc ne fonctionne pas (le "TEXTE" doit être tout en majuscule):

formulecopiee resultatformulecopiee

Quand j'essaye avec .Formula ça me renvoie la même chose avec un @ devant "Texte"

Quelques tests avec l'enregistreur de macro vous aurais évité une migraine !

Bien vu ! J'y avais pas pensé,

Cette ligne fonctionne :

Worksheets("PG1").Range("G2") = "=TEXT(A2,""mmmm"")"

Merci pour ton aide !

C'est pas faute de l'avoir écrit !!!

De plus, les formules s'écrivent dans leur version , et les arguments sont séparés par des virgules, non des points-virgule.

Traduction des fonctions Excel :

Merci de valider le sujet !

Rechercher des sujets similaires à "erreur insertion formule vba"