Řešení:

Dovolil som si trocha upraviť kód zo stránky host-a, čím sa na rozdiel od vzoru:

- netreba starať, kde sa nachádzajú súbory, je potrebné len zdrojové a cieľový súbor umiestniť do jedného adresára.
- súbory musia byť typu xlsx. Ak sú xls, je treba prepísať v kóde xlsx na xls
- hárky sa kopírujú v poradí v akom sú zdrojové súbory v adresári, pričom prvý prekopírovaný hárok sa nachádza za posledným hárkom cieľového (= sumarizačného) súboru
- kopírujú sa len prvé hárky zdrojových súborov (teda pokiaľ zdrojový súbor obsahuje viac hárkov, ale potrebujeme len prvý). Kód zo stránky kopíroval všetky, t.j. i prípadné nadbytočné prázdne hárky v zdroji)

Toto makro musí byť v cieľovom súbore, takže cieľový súbor musí byť uložený ako typ xlsm !
Spusti makro a vyčkaj oznam "Hotovo"

Sub ZberHarkov()
    Application.ScreenUpdating = False
    Path = ActiveWorkbook.Path
    Filename = Dir(Path & "\*.xlsx")
    Do While Filename <> ""
        Workbooks.Open Filename:=Path & "\" & Filename
        ActiveWorkbook.Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        Workbooks(Filename).Close
        Filename = Dir()
    Loop
    MsgBox "Hotovo", vbInformation
  End Sub

P.S. Kvôli prehľadnosti by mali mať zdrojové hárky rozumné a odlišné názvy, inak sa vo výsledku nebudeš vedieť orientovať
A zváž aj to, čo hovorí čitateľ... t.j. význam práce s 300 hárkovým zošitom...
Napr u hárkov, ktoré predstavujú dni roka... Nie je rozumné urobiť 1 ročný súbor s 365 dennými hárkami ale 12 mesačných súborov po cca 30 denných hárkov a pod

Předmět Autor Datum
Pomoc existuje, je však potrebné, aby všetky zdrojové súbory boli v jednom adresári a aby mal pomocn…
robert13 01.12.2017 14:24
robert13
https://www.extendoffice.com/documents/excel/456-combine-multiple-workbooks.html Případně další rad…
host 01.12.2017 16:40
host
Dovolil som si trocha upraviť kód zo stránky host-a, čím sa na rozdiel od vzoru: - netreba starať,…
robert13 01.12.2017 17:46
robert13
Netestoval jsem, ale co toto: Filename = Dir(Path & "\*.xlsx") nahradit tímto: Filename = Dir(Pat…
Siki83 01.12.2017 20:25
Siki83
MOOOC děkuji, funguje perfektně poslední
warketa 04.12.2017 07:55
warketa
Áno, dá sa to makrom ľahko povkladať do hárkov, ale má to zmysel? Prepínať sa medzi 300 hárkami je n…
pozorovateľ 01.12.2017 17:36
pozorovateľ

Pomoc existuje, je však potrebné, aby všetky zdrojové súbory boli v jednom adresári a aby mal pomocník zrovna čas, čo v mojom prípade bude až večer. Sú tu však aj iní pomocníci, ktorí ti hravo spravia makro, ktoré Ti to vyrieši za pár sekúnd. Ak zrovna nebudú dostupní, večer môžem pomôcť.
Ak sa však nemýlim, musí ísť minimálne o Excel 2007, ktorý dovoľuje mať toľko hárkov v jednom zošite.

Dovolil som si trocha upraviť kód zo stránky host-a, čím sa na rozdiel od vzoru:

- netreba starať, kde sa nachádzajú súbory, je potrebné len zdrojové a cieľový súbor umiestniť do jedného adresára.
- súbory musia byť typu xlsx. Ak sú xls, je treba prepísať v kóde xlsx na xls
- hárky sa kopírujú v poradí v akom sú zdrojové súbory v adresári, pričom prvý prekopírovaný hárok sa nachádza za posledným hárkom cieľového (= sumarizačného) súboru
- kopírujú sa len prvé hárky zdrojových súborov (teda pokiaľ zdrojový súbor obsahuje viac hárkov, ale potrebujeme len prvý). Kód zo stránky kopíroval všetky, t.j. i prípadné nadbytočné prázdne hárky v zdroji)

Toto makro musí byť v cieľovom súbore, takže cieľový súbor musí byť uložený ako typ xlsm !
Spusti makro a vyčkaj oznam "Hotovo"

Sub ZberHarkov()
    Application.ScreenUpdating = False
    Path = ActiveWorkbook.Path
    Filename = Dir(Path & "\*.xlsx")
    Do While Filename <> ""
        Workbooks.Open Filename:=Path & "\" & Filename
        ActiveWorkbook.Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        Workbooks(Filename).Close
        Filename = Dir()
    Loop
    MsgBox "Hotovo", vbInformation
  End Sub

P.S. Kvôli prehľadnosti by mali mať zdrojové hárky rozumné a odlišné názvy, inak sa vo výsledku nebudeš vedieť orientovať
A zváž aj to, čo hovorí čitateľ... t.j. význam práce s 300 hárkovým zošitom...
Napr u hárkov, ktoré predstavujú dni roka... Nie je rozumné urobiť 1 ročný súbor s 365 dennými hárkami ale 12 mesačných súborov po cca 30 denných hárkov a pod

Zpět do poradny Odpovědět na původní otázku Nahoru