Contexte :
Je travaille sur un projet où j'essaie d'insérer une formule dans une cellule via VBA. La formule que je veux insérer est :
=SIERREUR(FILTRE('[Pour la mise en forme.xlsm]Annexe!_7_Annexe[Lien]; '[Pour la mise en forme.xlsm]Annexe'!_7_Annexe[Num - Copier]=SUPPRESPACE(A8) & " A" ); """")
Lorsque j'essaie de l'appliquer par VBA dans le code suivant :
For i = 8 To 8
With ws.Cells(i, 19)
.Formula = "=SIERREUR(FILTRE('[Pour la mise en forme.xlsm]Annexe'!_7_Annexe[Lien]; '[Pour la mise en forme.xlsm]Annexe'!_7_Annexe[Num - Copier]=SUPPRESPACE(A8) & "" A""); """")"
End With
Next i
Cela me renvoie une erreur 400.
Ce qui fonctionne manuellement :
Si j'envoie la même formule directement dans la cellule sans le = c'est à dire de cette façon en tant que texte :
For i = 8 To 8
With ws.Cells(i, 19)
.Formula = "SIERREUR(FILTRE('[Pour la mise en forme.xlsm]Annexe'!_7_Annexe[Lien]; '[Pour la mise en forme.xlsm]Annexe'!_7_Annexe[Num - Copier]=SUPPRESPACE(A8) & "" A""); """")"
End With
Next i
cela fonctionne sans problème lorsque j'ajoute le = avant SIERREUR à la main.
Questions :
- Pourquoi l'ajout du
= dans VBA ne fonctionne-t-il pas correctement pour cette formule, alors que tout marche bien lorsque je la tape manuellement ? - Existe-t-il une meilleure manière d'écrire cette formule dans VBA pour qu'elle fonctionne sans générer d'erreur ?