VBA Összeadni az összes SUM képletes cellát

VBA Összeadni az összes SUM képletes cellát
2018-04-26T09:48:26+02:00
2018-04-26T11:47:28+02:00
2022-10-15T21:35:31+02:00
LOKI'ds
Sziasztok!

Van egy táblám, amiben projektek beszerzései vannak generálva. Projektenként csoportosítva egymás alatt. Minden projekt után van egy sor ami összeadja a költségüket.
Viszont szükség lenne arra, hogy a végén szerepeljen egy végösszeg, ami összeadja ezeket.
Ha ezt az excelbe csinálom, akkor a végösszegnél beszúrom a SUM függvényt, akkor alapból kijelöli az összes SUM cellát. Viszont ugyanezt makróval hogy lehet megcsinálni?
Makró rögzítő csak az R1C1-es hivatkozásokat rögzít. Viszont mivel a beszerzések száma változó, így random, hogy melyik sorokba kerülnek az összeg mezők.
Meglehet csinálni ezt anélkül, hogy minden egyes összeg cellát letároljak egy változóban?
Mutasd a teljes hozzászólást!
Szia!

Az alábbi makró megkeresi az összes SUM függvényt tartalmazó cellát és végén összegzi a tartalmát:

Sub vegossz() Dim sumos As Range, cl As Range, osszeg As Double For Each cl In Munka1.UsedRange.SpecialCells(xlCellTypeFormulas).Cells: If InStr(cl.Formula, "SUM(") = 2 Then If sumos Is Nothing Then Set sumos = cl Else Set sumos = Union(sumos, cl) Next osszeg = Application.Sum(sumos) End Sub
Üdv.
Mutasd a teljes hozzászólást!

  • Szia!

    Bele tudsz kérdezni igen, hogy van-e egy cellában képlet, talán még a konkrét képletet is ki tudod nyerni.

    A leírásod alapján ez egy olyan feladatnak hangzik, aminél jobb átszervezni a munkafüzetet, mint makrót ráereszteni.

    Konkrét minta nélkül azt mondanám, hogy segítene, ha az oszlop végösszegei egy sorban lennének és a függvény pedig fixen =szum(a1:a100) lenne ha kb max 100 elem lehet benne. Vagy teljes oszlopot megadni a függvénynek.

    Első körben megpróbálkoznék az átszervezéssel.

    G.
    Mutasd a teljes hozzászólást!
  • Szia!

    Az alábbi makró megkeresi az összes SUM függvényt tartalmazó cellát és végén összegzi a tartalmát:

    Sub vegossz() Dim sumos As Range, cl As Range, osszeg As Double For Each cl In Munka1.UsedRange.SpecialCells(xlCellTypeFormulas).Cells: If InStr(cl.Formula, "SUM(") = 2 Then If sumos Is Nothing Then Set sumos = cl Else Set sumos = Union(sumos, cl) Next osszeg = Application.Sum(sumos) End Sub
    Üdv.
    Mutasd a teljes hozzászólást!
  • Köszönöm, tökéletes.
    Közben megcsináltam úgy, hogy minden alkalommal, mikor SUM sort dob a makró egy stringbe fűzöm a cella nevét és a végén ezt a stringet rakom  a SUM-ba.

    De a te megoldásod jobb. :)
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd