Bonjour,
J'utilisais une macro pour mettre des formules dans des cellules, et cela fonctionne tres bien.
Cependant, vu le nombre très important de formules dans ma page, j'ai maintenant un message d'erreur m'indiquant qu'excel ne peut plus calculer la page.
Je m'oriente donc vers un calcul via VBA et non pas formule Excel.
Voici le code qui me permet de mettre une formule dans une cellule et qui fonctionne :
1 2 3 4 5
| Range("D5").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((OPEX_CAPEX=""CAPEX"")*(LEFT(Sur_hors_contrat,1)=""N"")*((Société=311)+(Société=312)+(Société=313)+(Société=314)+(Société=315)+(Société=316)+(Société=317)+(Société=318))*((Date_de_saisie_facture=Date_extrac-4)+(Date_de_saisie_facture=Date_extrac-5)+(Date_de_saisie_facture=Date_extrac-6)+(Date_de_saisie_facture=Date_extrac-7)+(Date_de_saisie_facture=Date_" & _
"extrac-8)+(Date_de_saisie_facture=Date_extrac-11)))" & _
"" |
Et voici ma tentative pour que le calcul soit fait directement par VBA et afficher uniquement le résultat.
Le code fonctionne tant que je ne mets pas de condition de date
Range("D5").Value = Evaluate("SumProduct((OPEX_CAPEX = ""CAPEX"") * (Left(Sur_hors_contrat, 1) = ""N"") * ((Société = 311) + (Société = 312) + (Société = 313) + (Société = 314) + (Société = 315) + (Société = 316) + (Société = 317) + (Société = 318)) * ((Date_de_saisie_facture = Date_extrac-4) + (Date_de_saisie_facture = Date_extrac-5) + (Date_de_saisie_facture = Date_extrac-6) + (Date_de_saisie_facture = Date_extrac-7) + (Date_de_saisie_facture = Date_extrac-8) + (Date_de_saisie_facture = Date_extrac-11)))")
Pour ce qui est des variables, elles sont définies dans le gestionnaire de noms et correspondent toutes à une colonne du type $A:$A
seul Date_extract =7*NO.SEMAINE.ISO(AUJOURDHUI())+DATE(ANNEE(AUJOURDHUI());1;3)-JOURSEM(DATE(ANNEE(AUJOURDHUI());1;3))-4.
Je n'arrive pas à trouver quel est le problème.
Je vous remercie pour l'aide que vous pourrez m'apporter.
Partager