Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Excel: postupné kopírování z různých listů do jednoho (makro?)

prečo pripúšťaš taký bordel v zdrojových hárkoch?
a) Prečo nemáš vo všetkých zdrojových hárkoch pevne zadanú bunku, kde začína tabuľka?
Akože... nie že by to nešlo ale zbytočne to komplikuje...
b) To na každom hárku bude iba jeden stĺpec údajov?
c) Priložený kód urobí to, čo chceš, ale ak ho pochopíš, zistíš, že aktuálne oblasti na zdrojových hárkoch musia byť súvislé.
(V Tvojom príklade síce súvislé sú, ale ako to bude v ostatných prípadoch, ktoré sa môžu vyskytnúť?)
Kód pracuje so súvislou oblasťou odvodenou od poslednej bunky.
d) Kód si zistí počet hárkov, pričom posledný považuje za sumarizačný.
e) Kód neošetruje stav, keď dodatočne pridáš ďalšie hárky (neprilepí obsah novopriloženého hárka za výsledkový zoznam).
Musel by si zmazať celý obsah výsledkového hárka a nechať prebehnúť znova
f) To, že niektorý zoznam môže byť prázdny chápem ako prázdny hárok, lebo ako vravím vyššie, kód si zisťuje poslednú vyplnenú bunku na hárku a od nej si odvodzuje oblasť pre kopírovanie...
g) Samozrejme, že keď do zošita zahrnieš makro, musíš ho uložiť vo formáte xlsm

Sub Sustredenie()
    Application.ScreenUpdating = False
    RiadokCiela = 1
    For i = 1 To ActiveWorkbook.Sheets.Count - 1
        Sheets(i).Select
        Selection.SpecialCells(xlCellTypeLastCell).Select
        Selection.CurrentRegion.Select
        PocetRiadkov = Selection.Rows.Count
        If PocetRiadkov = 1 And ActiveCell = "" Then PocetRiadkov = 0
        Selection.Copy
        Sheets(ActiveWorkbook.Sheets.Count).Select
        Range("A" & RiadokCiela).Select
        Selection.PasteSpecial Paste:=xlPasteValues
        RiadokCiela = RiadokCiela + PocetRiadkov
    Next i
    Application.CutCopyMode = False
    For i = 1 To ActiveWorkbook.Sheets.Count
        Sheets(i).Select
        Range("A1").Select
    Next i
    Application.ScreenUpdating = True
End Sub

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny