escouger
XLDnaute Occasionnel
Bonjour,
J'ai écrit une macro en VBA qui génère une formule, que je charge ensuite dans une cellule.
Cette formule est très longue (1557 caractères!).
Si je la saisi manuellement dans une cellule de mon tableau excel (2013) çà marche.
Par contre lorsque je la charge (ActiveCell.FormulaR1C1 = zresul) (qui fait 1557 caractères) excel rejette la formule dès que l'instruction et ne l’interprète pas.
Si je réduis artificiellement la formule à moins de 1000 caractères (mais en perdant le résultat souhaité) çà passe.
Y-aurait-il une manière de dépasser ce problème lié à l'interprétation de cette formule que voici:
=IF(ISNA(VLOOKUP(RC[-5],'[20150114_RM2.xls]Rando '!R1C16:R138C16,1,FALSE)),"000000-000000-000000-000000-000000-000000-000000-000000-000000",
if(RC[-5] = A9,
REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Distance))& '[20150114_RM2.xls]Rando '!Distance & ","& REPT(0,6-LEN(R[-2]C ))&R[-2]C &","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!DenivPos)) & '[20150114_RM2.xls]Rando '!DenivPos&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!DenivNeg)) & '[20150114_RM2.xls]Rando '!DenivNeg&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!TRJKM)) & '[20150114_RM2.xls]Rando '!TRJKM&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Heures_de_Bénévolat)) & '[20150114_RM2.xls]Rando '!Heures_de_Bénévolat&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!KM_de_Bénévolat)) & '[20150114_RM2.xls]Rando '!KM_de_Bénévolat&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Pausa)) & '[20150114_RM2.xls]Rando '!Pausa&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Durea)) & '[20150114_RM2.xls]Rando '!Durea,
REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Distance))& '[20150114_RM2.xls]Rando '!Distance & ","& REPT(0,6-LEN(R[-2]C ))&R[-2]C &","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!DenivPos)) & '[20150114_RM2.xls]Rando '!DenivPos&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!DenivNeg)) & '[20150114_RM2.xls]Rando '!DenivNeg&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!TRJKM)) & '[20150114_RM2.xls]Rando '!TRJKM&","&000000,000000&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Pausa)) & '[20150114_RM2.xls]Rando '!Pausa&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Durea)) & '[20150114_RM2.xls]Rando '!Durea))
Si je saisis la même formule dans excel çà marche :
=SI(ESTNA(RECHERCHEV(B9;'C:\CVS\[20150114_RM2.xls]Rando '!$P$1:$P$138;1;FAUX));"000000-000000-000000-000000-000000-000000-000000-000000-000000";
SI(B9 = A9;
REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!Distance))& 'C:\CVS\[20150114_RM2.xls]Rando '!Distance & ","& REPT(0;6-NBCAR(G7 ))&G7 &","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!DenivPos)) & 'C:\CVS\[20150114_RM2.xls]Rando '!DenivPos&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!DenivNeg)) & 'C:\CVS\[20150114_RM2.xls]Rando '!DenivNeg&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!TRJKM)) & 'C:\CVS\[20150114_RM2.xls]Rando '!TRJKM&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!Heures_de_Bénévolat)) & 'C:\CVS\[20150114_RM2.xls]Rando '!Heures_de_Bénévolat&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!KM_de_Bénévolat)) & 'C:\CVS\[20150114_RM2.xls]Rando '!KM_de_Bénévolat&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!pausa)) & 'C:\CVS\[20150114_RM2.xls]Rando '!pausa&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!durea)) & 'C:\CVS\[20150114_RM2.xls]Rando '!durea;
REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!Distance))& 'C:\CVS\[20150114_RM2.xls]Rando '!Distance & ","& REPT(0;6-NBCAR(G7 ))&G7 &","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!DenivPos)) & 'C:\CVS\[20150114_RM2.xls]Rando '!DenivPos&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!DenivNeg)) & 'C:\CVS\[20150114_RM2.xls]Rando '!DenivNeg&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!TRJKM)) & 'C:\CVS\[20150114_RM2.xls]Rando '!TRJKM&","&"000000-000000"&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!pausa)) & 'C:\CVS\[20150114_RM2.xls]Rando '!pausa&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!durea)) & 'C:\CVS\[20150114_RM2.xls]Rando '!durea))
Merci d'avance de votre expertise
GE
J'ai écrit une macro en VBA qui génère une formule, que je charge ensuite dans une cellule.
Cette formule est très longue (1557 caractères!).
Si je la saisi manuellement dans une cellule de mon tableau excel (2013) çà marche.
Par contre lorsque je la charge (ActiveCell.FormulaR1C1 = zresul) (qui fait 1557 caractères) excel rejette la formule dès que l'instruction et ne l’interprète pas.
Si je réduis artificiellement la formule à moins de 1000 caractères (mais en perdant le résultat souhaité) çà passe.
Y-aurait-il une manière de dépasser ce problème lié à l'interprétation de cette formule que voici:
=IF(ISNA(VLOOKUP(RC[-5],'[20150114_RM2.xls]Rando '!R1C16:R138C16,1,FALSE)),"000000-000000-000000-000000-000000-000000-000000-000000-000000",
if(RC[-5] = A9,
REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Distance))& '[20150114_RM2.xls]Rando '!Distance & ","& REPT(0,6-LEN(R[-2]C ))&R[-2]C &","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!DenivPos)) & '[20150114_RM2.xls]Rando '!DenivPos&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!DenivNeg)) & '[20150114_RM2.xls]Rando '!DenivNeg&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!TRJKM)) & '[20150114_RM2.xls]Rando '!TRJKM&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Heures_de_Bénévolat)) & '[20150114_RM2.xls]Rando '!Heures_de_Bénévolat&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!KM_de_Bénévolat)) & '[20150114_RM2.xls]Rando '!KM_de_Bénévolat&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Pausa)) & '[20150114_RM2.xls]Rando '!Pausa&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Durea)) & '[20150114_RM2.xls]Rando '!Durea,
REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Distance))& '[20150114_RM2.xls]Rando '!Distance & ","& REPT(0,6-LEN(R[-2]C ))&R[-2]C &","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!DenivPos)) & '[20150114_RM2.xls]Rando '!DenivPos&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!DenivNeg)) & '[20150114_RM2.xls]Rando '!DenivNeg&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!TRJKM)) & '[20150114_RM2.xls]Rando '!TRJKM&","&000000,000000&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Pausa)) & '[20150114_RM2.xls]Rando '!Pausa&","& REPT(0,6-LEN('[20150114_RM2.xls]Rando '!Durea)) & '[20150114_RM2.xls]Rando '!Durea))
Si je saisis la même formule dans excel çà marche :
=SI(ESTNA(RECHERCHEV(B9;'C:\CVS\[20150114_RM2.xls]Rando '!$P$1:$P$138;1;FAUX));"000000-000000-000000-000000-000000-000000-000000-000000-000000";
SI(B9 = A9;
REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!Distance))& 'C:\CVS\[20150114_RM2.xls]Rando '!Distance & ","& REPT(0;6-NBCAR(G7 ))&G7 &","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!DenivPos)) & 'C:\CVS\[20150114_RM2.xls]Rando '!DenivPos&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!DenivNeg)) & 'C:\CVS\[20150114_RM2.xls]Rando '!DenivNeg&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!TRJKM)) & 'C:\CVS\[20150114_RM2.xls]Rando '!TRJKM&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!Heures_de_Bénévolat)) & 'C:\CVS\[20150114_RM2.xls]Rando '!Heures_de_Bénévolat&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!KM_de_Bénévolat)) & 'C:\CVS\[20150114_RM2.xls]Rando '!KM_de_Bénévolat&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!pausa)) & 'C:\CVS\[20150114_RM2.xls]Rando '!pausa&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!durea)) & 'C:\CVS\[20150114_RM2.xls]Rando '!durea;
REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!Distance))& 'C:\CVS\[20150114_RM2.xls]Rando '!Distance & ","& REPT(0;6-NBCAR(G7 ))&G7 &","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!DenivPos)) & 'C:\CVS\[20150114_RM2.xls]Rando '!DenivPos&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!DenivNeg)) & 'C:\CVS\[20150114_RM2.xls]Rando '!DenivNeg&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!TRJKM)) & 'C:\CVS\[20150114_RM2.xls]Rando '!TRJKM&","&"000000-000000"&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!pausa)) & 'C:\CVS\[20150114_RM2.xls]Rando '!pausa&","& REPT(0;6-NBCAR('C:\CVS\[20150114_RM2.xls]Rando '!durea)) & 'C:\CVS\[20150114_RM2.xls]Rando '!durea))
Merci d'avance de votre expertise
GE
Dernière édition: