Insérer une formule dans une cellule Excel via VBA
Salut à tous,
Je génère en VBA des formules de calculs dynamiquement en fonction du nombre d'enregistrements de mon recordset, et je voudrais coller ces formules dans des cellules.
Jusqu'ici pas de problème, sauf qu'au lieu de prendre la formule et de la calculer, excel l'affiche comme n'importe quelle chaîne.
En effet, je ne peux pas mettre de signe égal en début de formule, sinon ça génère une erreur...
Exemple :
Code:
xlSheet.Cells(j, 7) = "SOMME.SI(F5:F" & j - 2 & ";""=" & rst(0) & """;G5:G" & j - 2 & ")"
La formule est correcte, sauf qu'elle est prise comme une chaine.
En ajoutant un égal
Code:
xlSheet.Cells(j, 7) = "=SOMME.SI(F5:F" & j - 2 & ";""=" & rst(0) & """;G5:G" & j - 2 & ")"
ça génère l'erreur
J'ai essayé naïvement
Code:
xlSheet.Cells(j, 7).formula = "SOMME.SI(F5:F" & j - 2 & ";""=" & rst(0) & """;G5:G" & j - 2 & ")"
Mais ça prend la formule comme une chaîne, comme si il n'y avait pas le formula.
Bref... quelqu'un peut me sauver ?
Syntaxe d'utilisation de formulaLocal
Bonjour le forum.
J'aimerais svp connaitre la syntaxe de d'écriture de formulaLocal.
En fait, je veux l'utiliser et y mettre des imbrications (SI) pour les insérer dans une cellule feuille Excel 2013. Mais là je ne reçois que des messages d'erreurs.
Je suis novice en vba, merci de m'aider à mieux comprendre.
Exemple du code souhaité:
Code:
Cells(lign_active, col_pu).FormulaLocal = "=SI(Cells(lign_active, col_cod)=(worksheets("coefficients")).cells(lign_sigles,col_dbut_sigles)),(worksheets("coefficients")).(cells(lign_sigles,col_dbut_sigles)-1)*(worksheets("Devis")).cells(lign_active,colon_pu_fob),0)"
Explication : Je veux dire: ma cellule Cells(lign_active, col_pu) doit recevoir la valeur de la cellule situé dans la feuille coefficients -1 (worksheets("coefficients")).(cells(lign_sigles,col_dbut_sigles)-1) multiplié par la valeur de la cellule de la feuille Devis (worksheets("Devis")).cells(lign_active,colon_pu_fob),0) et tout cela si le texte se trouvant dans la cellule Cells(lign_active, col_cod) est pareil a celui se trouvant dans la feuille coefficients (worksheets("coefficients")).cells(lign_sigles,col_dbut_sigles).