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
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.
https://www.extendoffice.com/documents/excel/456-combine-multiple-workbooks.html
Případně další rady a postupy: Google - excel merge files
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"
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
Netestoval jsem, ale co toto:
nahradit tímto:
MOOOC děkuji, funguje perfektně
Áno, dá sa to makrom ľahko povkladať do hárkov, ale má to zmysel? Prepínať sa medzi 300 hárkami je nezmysel, oveľa rýchlejšie sú tie súbory.