Keresés

Új hozzászólás Aktív témák

  • Zimmy88

    tag

    Sziasztok!

    Egy két lépésből álló feladat gyorsítására szeretnék makrót, de még nem volt időm jobban elmélyedni a témában.
    A feladat a következő:
    Adott egy excel fájl, sok (30+) munkalappal. Első körben ezek egy részének (a B1 cellában található szöveg alapján szűrhető) megadott sorszámú soraiban a képletet értékre kellene cserélni (tehát nem az egész munkalapon).
    A második lépés pedig ezeknek a (részben rögzített értékes) munkalapoknak a kimentése külön excel fájlba, az adott munkalap nevén.

    Eddigi ismereteim szerint az alábbi részletet raktam össze (nem biztos hogy jó):

    Sub SumIfFormulaToValue()

    Rows("8:9,12:14,16:17,20:22,25:30,33:35,37:39,41:43,45:46,49:50,52:59,62:67,69:72,75:76,81:82,85:90,93:95,98:100,102:103,105:105,107:109,112:117,120:120,123:124,129:130,132:132").Select

    For Each r In Selection.Areas
    r.Select
    Selection.Formula = Selection.Value
    Next

    End Sub

    Előre is köszi a segítséget!

    FZR2000 ®

  • Zimmy88

    tag

    válasz Delila_1 #29751 üzenetére

    Szia!

    Köszi a tippet! Kipróbáltam, és lefuttattam a következő makrót. Viszont két dolog kellene még bele:
    az egyik, hogy először kijelölje azokat a munkalapokat, amin végre kell hajtani a műveletet (B1 cella ha adott szöveget (pl "ezkell") tartalmaz, csak akkor kell rögzíteni az értékeket és különmenteni a fájlt),
    a másik, pedig hogy értékrögzítés után, kimentés előtt ki kellene törölni pár felesleges oszlopot az E és a W közül (oszlop sorszámát tudom megadni).
    Más: elég lassan futott a makró, 18-20 másodpercig tartott, mire "kidobott" egy kész munkalapot külön fájlba. Mivel lehetne gyorsítani esetleg? 30-40 munkalapnál ez elég hosszú idő...

    Sub mm()
    Dim lap As Integer, r As Range, nev As String, utvonal As String
    Dim terulet As Range

    utvonal = "D:\kiment\"

    For lap = 1 To Worksheets.Count
    Sheets(lap).Select
    Set terulet = Range("E8:W9,E12:W14,E16:W17,E20:W22,E25:W30,E33:W35,E37:W39,E41:W43,E45:W46,E49:W50,E52:W59,E62:W67,E69:W72,E75:W76,E81:W82,E85:W90,E93:W95,E98:W100,E102:W103,E105:W105,E107:W109,E112:W117,E120:W120,E123:W124,E129:W130,E132:W132")
    For Each r In terulet
    Range(r.Address) = r.Value
    Next
    nev = ActiveSheet.Name
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs Filename:=utvonal & nev & ".xlsx"
    ActiveWindow.Close
    Next
    End Sub

    [ Szerkesztve ]

    FZR2000 ®

  • Zimmy88

    tag

    Sziasztok!

    Segítségre lenne szükségem az alábbi probléma megoldásában.
    Adott egy alaptábla, amelyben különféle költségek szerepelnek településenként. Ebből készítek pivotot, ahol azt szeretném látni, hogy az egyes településen összesen mennyi költség merült fel, eddig ok. Vannak viszont olyan települések, ahol tovább kellene bontani egy megadott arány szerint (pl. Göd1 35%, Göd2 65%) a költségeket a pivotban. A cél tehát, hogy a végső pivot jelenítse meg a nem bontandó települések mellett a teljes összeget, a már szétbontott települések esetében pedig az arányosított összeget (tehát a Kál - 500Ft, Göd - 1000Ft, Pér - 800Ft helyett Kál - 500Ft, Göd1 - 350Ft, Göd2 - 650Ft, Pér 800Ft). Számított mező beszúrásával próbálkoztam, de eddig nem jártam sikerrel.

    Nagyon köszönöm előre is!

    [ Szerkesztve ]

    FZR2000 ®

  • Zimmy88

    tag

    válasz Fferi50 #35139 üzenetére

    Az a baj, hogy az alaptábla közel 1000 sor, és több olyan település is van, ahol bontani kellene, van ahol 5-6felé. Így elég körülményes minden hónapban végignézni az alaptáblát, hogy melyik az a sor amelyik bontandó, és beszurkálni alá a bontásokat. Ezért gondoltam, hogy a pivot számított mezőit csak 1x kell megcsinálni, utána már minden további hónapban számol magától a pivot frissítésével.

    FZR2000 ®

  • Zimmy88

    tag

    válasz Fferi50 #35142 üzenetére

    Azért gondoltam a számított mezőre, mert meg lehet adni képletet (csak azt nem tudom, hogy ennek milyen korlátai vannak, pl ha-függvényt használhatok-e).
    Alaptábla: külső forrásból származik, 10 oszlop és kb ezer sor, minden hónapban megkapom. Ebből kell készítenem egy listát, hogy melyik telephelyen mennyi költség merült fel az adott hónapban.
    A probléma, hogy egy településen lehet több telephely is, és az alaptábla csak település bontású. Ahol több telephely van egy településen, ott adott egy felosztási %, ami alapján az adott teleülésen felmerült költségeket osztanom kell. Eddig "manuálisan" csináltam a bontást, tehát ahol nem kellett arányosítani ott a pivotbeli értéket másoltam a végleges táblába, ahol pedig osztani kellett, ott a pivot értékét 3-6felé bontottam a megadott %-ok alapján, és így került a végleges táblába.
    Ezen szeretnék egyszerűsíteni, ha lehet.
    Ja és '13-as excelt használok.

    [ Szerkesztve ]

    FZR2000 ®

  • Zimmy88

    tag

    válasz Fferi50 #35144 üzenetére

    Szia!

    Egyféle költségről van csak szó, mindig csak tárgyhavi adatokkal, a 10 oszlop csak részletezés (hány db, milyen méret, milyen egységár), de nekem csak az összeg a lényeg a telephelyenként. A felosztási % éves szinten fix. Úgy képzelem, hogy valahogy meg lehetne adni a pivotban, hogy a gödi telephelyek összesített költségét 2 sorban mutassa, egy előre beírt arány alapján bontva.
    A számított mezőt eddig csak arra használtam, ahol a pivot minden soránál ugyanazt a műveletet kellett elvégezni, pl eredeti összeg nettóját akartam látni, vagy éves összeget átlagolni munkanapokra (elosztva 250-nel). De itt úgy lenne az igazi (csak nem tudom, meg lehet-e valósítani a pivotban), ha a gödi, budapesti, stb adatok esetében nem egy plusz oszlop lenne, hanem egy (kettő, három, stb) plusz sor, ahányfelé bontani kell.

    FZR2000 ®

Új hozzászólás Aktív témák