Kezdőlap › Fórumok › Excel programozás › Képletkészítési probléma makro
- This topic has 6 hozzászólás, 3 résztvevő, and was last updated 10 years, 8 months telt el by lndz.
-
SzerzőBejegyzés
-
2014-02-06-06:08 #1386
Sziasztok,
Sajnos a kezdő szintem miatt sok témát tudok feldobni. Remélem emiatt nem dobnak ki innen 🙂
Belefutottam egy újabb problémába:
Adott egy képletkészítő makro, ami egy függvényen belül egy ciklusban foglal helyet. A függvény végül visszaad egy 2 dimenziós variable tömböt (azért nem string tömböt, mert az eljárás amiből meghívódik paraméterezve és ott egy string tömbbe kerülnek ezek az adatok, nem képes string tömbből fogadni csak variable – ből – ezt sem értem még, ha van erre is válasza valakinek akkor nagyon megköszönöm)
A ciklusból a tömbelem így képződik:
ideiglenestomb(i, 0) = „=IF(RC[-1]=0,0,IF(R” & c & „C” & poziciososzlop & „/” & felbontas & „>R[” & -1 * ecskoordinatay & „]C[-1],R[” & -1 * ecskoordinatay & „]C[-1],R” & c & „C” & poziciososzlop & „/” & felbontas & „))”
ennek a kimenete az excelben .formulaR1C1 – n keresztül:
=HA(F3=0;0;HA($F$8/12>F1048571;F1048571;$F$8/12))
Nem tudom, hogy a F1048571 kimenet hogy jön ki ebből a kódrészletből:
R[” & -1 * ecskoordinatay & „]C[-1]
Jelen esetben mind a kis ‘c’, mind az ‘ecskoordinatay’, mind a ‘felbontas’ változók int típusúak (a ‘c’ kívül paraméterként érkeznek). Az ‘ecskoordinatay’ futás közbeni értéke pedig:8 a Watch alapján a ciklus első lépésénél, amiből a fenti eredmény képződött. A Watch-ban egyébként így látszik a tömbelem:
: ideiglenestomb(0,0) : „=IF(RC[-1]=0,0,IF(R8C6/12>R[-8]C[-1],R[-8]C[-1],R8C6/12))” : String : Functions.elozoeviecsfelbontokeplet
Lehet, hogy konverziós a probléma?
Ugyanakkor pl. az első és második if kiértékelése, sőt az utolsó IF nemleges paramétere is, a hasonló szintaktika alapján hozza az ott elvárt $F$8/12 eredményt, tehát szerintem a relatív és abszolút közötti eltérésből sem adódhat a probléma:
R” & c & „C” & poziciososzlop & „/” & felbontas
Ha valaki tud rá megoldást kérem jelezze.
Tudom, hogy jóval egyszerűbb lenne a makróban a kiértékelést elvégezni és csak a végeredményt átadni a .Value – nak, de egy olyan makrosablont készítenem, amin keresztül generálok kitölthető sablont, azaz sima képletezett excelt, ahol a kockázatelemző látja a terv képleteit is az excelben a kitöltéseket követőn. Nem tudnak makros munkafüzeteket fogadni, tiltott nekik a banki policy miatt. Az egész munkafüzetet így kell elkészítenem és ezért kell a testreszabáskor képletekkel töltenem fel a cellákat. Olyan és annyi oszloppal és sorral ami az adott tervtulajdonosra jellemző.
Köszönettel:
Zoli2014-02-06-06:25 #1387Bocsánat,
Azt akartam még hozzátenni, hogy ha stringtömb és stringtömb között adnám át a tartalmat, akkor Compile error: Can’t assign to array hibára futok ki. Csak a Variable tömbből adom át string tömbe megy le.
Ja és az előző tördelése jó volt, csak utána még a szerkesztésen keresztül hozzáírtam és összement a tagolás, most meg már nem tudom szerkeszteni újból. Még 1X bocs
Üdv:
Zoli
2014-02-06-06:31 #1388Bocs, már szét vagyok esve. Nem Variable, hanem Variant természetesen
2014-02-07-15:08 #1389szia Zoli!
az lenne jó, ha bemásolnád a rutint.
szerintem nagyon ritkán jó megoldás worksheet képleteket használni. szerintem van egyszerű megoldás a problémádra, csak nem látom át, hogy mi (a probléma) az pontosan.
Üdv,
LZ2014-02-07-19:25 #1390Szia LZ,
Köszi a választ.
A probléma az, hogy üzleti tervezés során nagyon sok tervet kell készíteni a banki elemzőknek mindig más és más feltételek mellett. Ez azt jelenti, hogy a tervenként eltérő lesz az oszlopszám (hány éves a terv és milyen részletességű pl.: havi, vagy negyedéves stb….)
Ezen túl még a sorok száma is változik, mert minden cégnél más más számú dolog prognosztizálása kell hogy ebben legyen.
Azonban amikor a makro felépíti a paraméterek alapján az egyes munkalapok szerkezetét, hogy hány sor és hány oszlop legyen akkor csak a váz kézül el. Ezekben a cellákban kell hogy a profilra, vagy azon belül soronként eltérő algoritmus alapján változnak dolgok a másik sor, vagy előző oszlop (nem mindig eggyel ide oda, komolyabb ugrások is vannak) adatai alapján.
Az itteni kiértékelések elég bonyolultak is tudnak lenni, sokszoros egymásba ágyazott if függvények.
A lényeg az, hogy a kockázatelemzők bizonyos sorok értékelésekor a számítási metódusokat is látni akarják a cellákban képletekkel, mert ha nem kapják meg, akkor rengeteg többletírnivalót adnak a munkánkban.
A makroval azt szeretném megoldani, hogy a terveket egy makrosablon alapjánk gyorsan tudjam összeállítani egy alapparaméter halmaz alapján, majd azt már szinte csak ki kelljen adatokkal (indító) tölteni és menjen minden automatizálva.
Ez az előkészítő munka manuálisan 1-2 napot tud igénybe venni, ha mindent kézzel hozok létre éa képletezgetek.
Amikor pedig be kell küldenem, akkor makromentesen mentem és küldöm a fájlt, ami azt jelenti, hogy ahol nem kell más ott csak beírt értékek vannak, ahol azonban kell ott képleteket látnak az elemzők.
Remélem jól gondolom amire szánom az egészet és működni fog.
Remélem így már jobban lehet érteni, amit szeretnék. Ha kérdésed kérlek jelezd. Még 1x köszi, hogy foglalkozol a problémámmal.
Üdv:
Zoli
2014-02-08-23:50 #1391Ezt ennyiből nagyon nehéz megmondani. Nyilván látszik, hogy valahol itt a balhé:
R[” & -1 * ecskoordinatayAz érthető, hogy mit szeretnél, és miért.
Hogy mi a hiba, azt nyomozni kell, pl. a fenti változó követésével.Ha nem boldogulsz, akkor látnunk kell afájlt és a kódot, hogy ki tudjuk próbálni.
2014-02-10-08:15 #1392Zoli!
belátom elsőre felületesen olvastam el.:)
már értem miért akarsz függvényeket használni.
viszont még mindig túl általános a kérdés számomra.
az lenne jó, ha a függvény tömböt készítő rutint be tudnád másolni, hogy be tudjam másolni egy modulba. vagy bontsuk a kérdést kisebb, specifikusabb problémákra!:)
Imi bejegyzése még eszembe jutatott valamit. Lehet, hogy nincs értelme, mert általánosságban már értem, de még részleteiben nem… szóval lehet, hogy érdemes előre neveket definiálni a workbook-ban, ha ez lehetséges. mikor legyártod a sablont, a kóddal hozzáadhatsz a wb-hez egy pl. ecskoordinatay nevet, aminek értéket adsz.. de lehet, hogy ez nem segít, értelmetlen. ha jól értem a sablon is egy sablon alapján gyártod le?Üdv,
LZ -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.