Telefonszámunk: 1-472-0679

Képletkészítési probléma makro

Kezdőlap Fórumok Excel programozás Képletkészítési probléma makro

7 bejegyzés megtekintése - 1-7 / 7
  • Szerző
    Bejegyzés
  • #1386
    nagyzoltan
    Felhasználó

      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:
      Zoli

      #1387
      nagyzoltan
      Felhasználó

        Bocsá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

        #1388
        nagyzoltan
        Felhasználó

          Bocs, már szét vagyok esve. Nem Variable, hanem Variant természetesen

          #1389
          lndz
          Felhasználó

            szia 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,
            LZ

            #1390
            nagyzoltan
            Felhasználó

              Szia 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

              #1391
              horvimi
              Adminisztrátor

                Ezt ennyiből nagyon nehéz megmondani. Nyilván látszik, hogy valahol itt a balhé:
                R[” & -1 * ecskoordinatay

                Az é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.

                #1392
                lndz
                Felhasználó

                  Zoli!

                  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

                7 bejegyzés megtekintése - 1-7 / 7
                • Be kell jelentkezni a hozzászóláshoz.