(E-03)Evaluate:Récupérer resultat d'une formule excel sans passer par une cellule.
Bonsoir à tous,
est-il possible d'interpréter une formule excel générée par VBA et de récuprer son contenu sans passer par une cellule (histoire d'accéler le code)
Exemple en passant par une cellule:
Code:
1 2 3 4 5 6 7
|
'Arg SUMIF Konten-Month : ex : 6290920-11
Qry_arg = Trim(Sheet_id) + "-" + Month_id
Cell_ref = "=SUMIF([KSTXXX.xls]Pivot_Month!$H$5:$H$1851;" & Qry_arg & ";[KSTXXX.xls]Pivot_Month!$D$5:$D$1851)"
Cells(Range(Range_id).Row, 16 + I).Formula = Cell_ref
'Summarize
Facts(Month_id) = Facts(Month_id) + Cells(Range(Range_id).Row, 16 + I) |
J'ai essayé avec Application.Evaluate, mais cela ne fonctionne pas. :aie:
D'avance merci.
Ok pour cela. Etape suivante : récupérer si erreur dans evaluate
Encore merci.
cela marche comme je le souhaite.
Maintenant je souhaite tester si Evaluate ramène une erreur, si possible sans gestion d'erreur (;) ucfoutu) car soit je prends le résultat de l'evaluate, soit je prends 0 si erreur.
(pour la petite Histoire le SUMIF de ma demande initiale consomme beaucoup de ressources et je pense qu'avec VLOOKUP je vais gagner en performances vu que je ne doit récupérer que 1 valeur (ou rien) sur un tableau trié)
Voici un exemple de code :
Code:
1 2 3 4
|
Dim resu As Variant
resu = Evaluate("VLOOKUP(""6290920-0"",[KSTXXX.xls]Pivot_Month!$H$5:$I$1851,2,FALSE)")
MsgBox resu |
Je n'arrive pas à tester si Resu est une erreur. Ce code plante sur le MSGBOX si l'evaluate de la fonction VLOOKUP est #N/A.
Par debug, resu vaut Error 2042.
Si le VLookup fonctionne, pas de problème.
Merci d'avance à tous.