Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel - uložení jednotlivých listů sešitu jako samostatné soubory

Ave. Mám (resp. můj kolega) požadavek viz titulek. Jedná se o sešity, které obsahují až osmdesát listů a je potřeba (neptejte se proč) vytvořit z oné nádhery jednotlivé fajly se jmény listů (např. blabla.xlsx, blabla1.xlsx,...). Nejsem v Excelu žádný borec, nekamenujte, plz :-), dokážu vytvořit slušnou tabuli (i s kontingencí), nicméně makra jsem nikdy nedělal a pracovat s nimi neumím. Našel jsem tohle, ale nevím, jak to implementovat do Excelu jako "samostatnou funkci". W7 Proff, Excel 2010. Za každou radu budu vděčný :beer:.

Předmět Autor Datum
V posledním odstavci máš návod, jak to tam vložit. It is not a built-in feature. However, if you r…
adalkadaar 16.01.2016 13:02
adalkadaar
Pochop, já tomu nerozumím (english jo, kódu ne). Nevím, jak ten skript vůbec narvat do excelu coby n…
mif 16.01.2016 14:52
mif
Ja sice tomu nerozumiem tiez, ale popis je dostacujuci na to, aby sto aspon skusil. Na konci mas pop…
fleg 16.01.2016 15:03
fleg
Žádný strom tam nemám. Jen prázdné šedé okno.
mif 16.01.2016 15:33
mif
Po Ctrl + R nevyskočí?
karel 16.01.2016 15:37
karel
Vyskočí. Dík. Jak to ale uložím? Ono to chce při sejvu nacpat do implicitního sheetu, já to chci ale…
mif 16.01.2016 15:49
mif
Ano, má to nejakú chybu ale nechcel som nad tým rozmýšľať, tak som vyrobil krátke makro bez nejakých…
robert13 16.01.2016 16:20
robert13
Ak sa Ti zdá hlúpe prikopírovávať do môjho súboru svoje hárky (aj keď sa to dá veľmi jednoducho a na…
robert13 16.01.2016 16:24
robert13
Díky, ale těch sešitů je cca patnáct set. Potřebuju jednoduchý "konvertor" listů na soubory, který b…
mif 16.01.2016 16:34
mif
Ale to je detto, či Ti tu radia, len Ty si to vkladáš cez editor do modulu zošita. Ja ti to dávam do…
robert13 16.01.2016 16:40
robert13
Ak chceš skúšať, ulož si to ako doplnok a potom doplnok aktivuj a malo by sa to stať globálnym... Pr…
robert13 16.01.2016 17:06
robert13
ulož si to ako doplnok a potom doplnok aktivuj Jak na to?
mif 16.01.2016 17:14
mif
alebo ako osobný zošit makier? Počkaj, skúsim to nájsť...
robert13 16.01.2016 18:00
robert13
Takže je to veľmi jednoduché: Jedná sa o osobný zošit makier, ktorý je globálny a do neho si nasáčku…
robert13 16.01.2016 18:38
robert13
Pôvodný súbor ostane otvorený a nedotknutý, keďže nové súbory sa vytvoria ako kópie existujúcich hár…
robert13 16.01.2016 18:47
robert13
Tohle fakt neznám. Otevřu toto: [http://pc.poradna.net/file/view/24865-vba-png]
mif 16.01.2016 19:15
mif
mne sa zobrazil aj osobný zošit makier... Ale možno až po tom, čo som experimentačne vytvoril makro…
robert13 16.01.2016 19:18
robert13
Ne. S makrama jsem nikdy nedělal. Odpusť mi neznalost, ale nikdy jsem to nepotřeboval :-/.
mif 16.01.2016 19:23
mif
V poriadku, nikto Ti nič nevyčíta... Preto sa pýtam... Kartu Vývojár máš povolenú?
robert13 16.01.2016 19:25
robert13
A teď mi ještě dokleplo - já mám na prackrámu O2003 (na němž tvé rady zkouším), ale v práci, kde bud…
mif 16.01.2016 19:33
mif
to na veci nič nemení, akurát nástroje sú po novom na ribbonoch a na O2003 je to klasický panel nást…
robert13 16.01.2016 19:37
robert13
No dobře, ale jak otevřu ten "personal.xlsb"?
mif 16.01.2016 19:44
mif
zaznamenáš si najprimitívnejšie makro len kvôli tomu, aby si si sprístupnil v tom okne, screen ktoré…
robert13 16.01.2016 19:47
robert13
a niečo naznačil aj pme a mne trklo, že na 2003 sa bude musieť súbor volať xls, na 2010 xlsx adetto…
robert13 16.01.2016 19:55
robert13
Tohle bude asi jedno. Mám svůj stoletý "oufis" opatchovaný, takže s extezí IMHO problémy nebudou.
mif 16.01.2016 19:57
mif
no nič, skúsime to ako naznačil kmochna. Posielam Ti niečo. Daj si vyhľadať zložku XLSTART a do nej…
robert13 16.01.2016 20:04
robert13
a toto vložíš takým istým spôsobom do XLSTART na PC kde máš E 2010 (len ak tam zatiaľ nemáš iné pers…
robert13 16.01.2016 20:11
robert13
No nič, ja končím, poradia Ti ďalší kamoši...
robert13 16.01.2016 20:18
robert13
Nechcem sa do toho veľmi montovať, ale v rámci čo najväčšieho zjednodušenia pre mifa, prosímťa skús…
deadhead 16.01.2016 19:39
deadhead
ok ale ako to dostane do personal.xlsb? Tak či tak by som ho musel navádzať aby to dostal tam, kam t…
robert13 16.01.2016 19:40
robert13
file-import sa mi zdalo jednoduchšie ako kopírovať zdroják. Inak problém s chýbajúcim personal.xls…
deadhead 16.01.2016 19:46
deadhead
stačí skusmo zaznamenať nejakú blbinu (avšak zaznamenať do personal), vznikne personal a tam potom t…
robert13 16.01.2016 19:48
robert13
ok ale kam ho importuješ, keď personal je neviditeľný? :)
robert13 16.01.2016 19:49
robert13
Prepáč, ale ak to chceš doriešiť, tak sa snaž reagovať, lebo o chvíľku vypínam...
robert13 16.01.2016 19:31
robert13
Ja neviem, ale tento jednoduchý postup by si mohol zvládnuť: 1. Otvor si súbor v Exceli 2. Stlač Al…
pme 16.01.2016 19:42
pme
trocha si nepochopil, že mu ide o globálny prístup... súborov má x... Ale máš pravdu s verziami Exc…
robert13 16.01.2016 19:44
robert13
nechci se do toho moc míchat, ale nemůže být ztroskotání v prostém stažení souboru namísto vkopírová…
kmochna 16.01.2016 19:55
kmochna
myslíš rovno poslať personal.xlsb? Tož tiež by šlo. Ale pokiaľ má v práci už nejaké personal vytvore…
robert13 16.01.2016 19:56
robert13
právě, že ne. zkopírování odtud a vložení do textu u sebe. není zřejmé jak je nastaven systém u mifa…
kmochna 16.01.2016 20:05
kmochna
Nechápem čo myslíš, potrebujeme len aby videl vo VBE personal.xls...
robert13 16.01.2016 20:08
robert13
Zdravím, pokouším se řešit stejný problém. Při spuštění tohoto makra mi to hodí chybovou hlášku: Run…
Dawa 13.03.2016 10:12
Dawa
Doplněk taky nefunguje?
Siki83 13.03.2016 12:12
Siki83
Píše vyskytla sa neočekávaná chyba
Dawa 13.03.2016 15:26
Dawa
V tom případě budeš muset uvést víc informací. Verze excelu, kde je soubor umístěn atd.
Siki83 13.03.2016 15:40
Siki83
Soubor je verze 97-2003 ja mam office 2007 soubor sem zkopíroval z flashky do slozky na plochu ulozi…
Dawa 13.03.2016 16:01
Dawa
1)Stáhni doplněk na plochu. 2)Ulož soubor na plochu - neměň koncovku nechej *.xls 3)poklepáním spusť…
Siki83 13.03.2016 16:13
Siki83
Funguje to na všech souborech, jenom ne na tom co potřebuju udělat :D Při ukládání to háže upozorněn…
Dawa 13.03.2016 16:30
Dawa
To znamená, že se listy do souborů neuloží? Co se stane, když zdrojový soubor "přeuložíš" do formátu…
Siki83 13.03.2016 16:45
Siki83
Původní formát i přeuložený do xlsx háže stejnou chybovou hlášku: Vyskytla sa neočekávaná chyba. Te…
Dawa 13.03.2016 16:54
Dawa
Ahoj, pokiaľ mu to vypísalo "Vyskytla sa neočakávaná chyba" v slovenčine, tak je tá hláška súčasťou…
robert13 13.03.2016 17:33
robert13
v doplnku se na makro nedostanu. v nem se mi pouze zobrazi chybova hlaska a soubory se nerozdeli. t…
Dawa 13.03.2016 20:38
Dawa
Makro z doplňku Sub SheetsToFiles() On Error GoTo Chyba Application.ScreenUpdating = False Zdroj =…
Siki83 13.03.2016 20:53
Siki83
...sorry sekol som sa, myslel som doplnok od Sikiho zo 17.1.2016... Tak ešte raz, lebo fakt neviem,…
robert13 13.03.2016 21:07
robert13
Ahoj, už mi to psal výše, že doplněk funguje jen né na tom souboru který potřebuje. Pokud rozdělení…
Siki83 13.03.2016 21:19
Siki83
Áno, to som čítal, ale ako vravím, nevedel som sa v tom jednoznačne orientovať ako to myslí, aj pret…
robert13 13.03.2016 21:39
robert13
Pánové díky za pomoc. Bohužel soubor poskytnout nemohu (neměl bych ho mít ani já :D) Problém sic nev…
Dawa 14.03.2016 16:54
Dawa
Tak problém vyřešen, v datovém souboru byl skrytý list, o kterém mi nikdo neřekl, po odkrytí vše fun… poslední
Dawa 17.03.2016 16:42
Dawa
Nejak to tu stíchlo...:-) Ak je to pre niekoho ešte zaujímavé, potom pridávam tento link, kde je ná…
pme 16.01.2016 21:22
pme
Všem se omlouvám, něco důležitějšího nyní "ruší mé kruhy". Neberte to prosím jako nezájem, problém b…
mif 16.01.2016 21:33
mif
Pánové nebylo by jednodušší použít doplněk? Použil sem kód od Roberta
Siki83 16.01.2016 21:56
Siki83
Pánové nebylo by jednodušší použít doplněk? jednoznačne! najrýchlejšia a najjednoduchšia cesta.
pme 16.01.2016 22:14
pme
Paráda! Myslel som, že bude najprv treba v nastaveniach excelu pridať a aktivovať doplnok, ale takto…
robert13 17.01.2016 08:19
robert13
Tak sem právě otestoval doplněk na office xp a je funkční. Jen vytváří "zdvojenou" koncovku souboru…
Siki83 17.01.2016 13:12
Siki83
To je přesně ono, co jsem potřeboval. Sorry, že jsem se dlouho ve svém vlákně neobjevil, ale měl jse…
mif 18.01.2016 19:12
mif

V posledním odstavci máš návod, jak to tam vložit.

It is not a built-in feature.

However, if you run this code, it should do the job.

Sub SaveSheets()
Dim strPath As String
Dim ws As Worksheet

Application.ScreenUpdating = False

strPath = ActiveWorkbook.Path & "\"
For Each ws In ThisWorkbook.Sheets
ws.Copy
'Use this line if you want to break any links:
BreakLinks Workbooks(Workbooks.Count)
Workbooks(Workbooks.Count).Close True, strPath & ws.Name & ".xlsx"
Next

Application.ScreenUpdating = True
End Sub

Sub BreakLinks(wb As Workbook)
Dim lnk As Variant
For Each lnk In wb.LinkSources(xlExcelLinks)
wb.BreakLink lnk, xlLinkTypeExcelLinks
Next
End Sub

To run the code, do the following:

Open the VBA editor (Alt+F11)
In the tree in the top left corner, right click on your workbook and insert a new module
Copy the above code into this module
Close the VBA editor
In Excel press Alt+F8 to run macros and select SaveSheets

Ja sice tomu nerozumiem tiez, ale popis je dostacujuci na to, aby sto aspon skusil.
Na konci mas popis ako mas otvorit makro, co donho vlozit ako ulozit a ako sa nasledne spusti priamo z Excelu.

Open the VBA editor (Alt+F11)
In the tree in the top left corner, right click on your workbook and insert a new module
Copy the above code into this module
Close the VBA editor
In Excel press Alt+F8 to run macros and select SaveSheets

Ano, má to nejakú chybu ale nechcel som nad tým rozmýšľať, tak som vyrobil krátke makro bez nejakých ďalších ošetrovačiek, aby som Ti to zjednodušil...
Prikopíruj si sem za prvý hárok všetky hárky Tvojho zošita a na prvom hárku "xxx" stlač tlačidlo.
Súbory sa Ti vytvoria do toho istého adresára, kde budeš mať uložený tento súbor.
(Pôvodný Tvoj súbor si ponechaj pre istotu ako zálohu)

Ak sa Ti zdá hlúpe prikopírovávať do môjho súboru svoje hárky (aj keď sa to dá veľmi jednoducho a naraz), tak proste si pozri makro, ktoré mám v mojom súbore (nájdeš ho v "module1" editora VBA (ALT+F11)) a celý modul skopíruj i do svojho súboru.
Potom vo svojom súbore dáš zobraziť makrá a spustíš SheetsToFiles. V tomto prípade však nevyrobí súbor z prvého hárku, lebo to je ten môj spúšťací.
Ak to chceš napraviť, tak si alebo môj prvý hárok skopíruješ do svojho súboru ako prvý, alebo upravíš cyklus v makre na for i=1 to .... namiesto terajšieho for i=2 to...
Prípadne mi ten súbor pošleš cez poštu, ja Ti to upravím a pošlem späť, Ty to u seba už len spustíš

Ale to je detto, či Ti tu radia, len Ty si to vkladáš cez editor do modulu zošita. Ja ti to dávam do všeobecného modulu.
Takže Ty by si potreboval doplnok, ktorý bude všeobecne prítomný...
Takto som to zatiaľ neriešil ale ani to nie je problém, len momentálne nestíham.
Takže zatiaľ Ti viem poradiť len toľko, že môj modul si skopíruj do svojho zošita tiež do všeobecného modulu a uprav si for i=2 na for i=1
Potom už len spusti makro a máš prvý súbor rozsekaný...

Ak chceš skúšať, ulož si to ako doplnok a potom doplnok aktivuj a malo by sa to stať globálnym...
Prakticky som to osobne ešte neskúšal ale takto nejak to funguje, prípadne Ti tu poradia ostatní.
Lenže pozor, moje makro nie je blbuvzdorné, zbachol som ho narýchlo pre jednorazovku...

Takže je to veľmi jednoduché:
Jedná sa o osobný zošit makier, ktorý je globálny a do neho si nasáčkuješ všetky makrá, ktoré chceš mať stále poruke.

Nasledujúci kód:

Sub SheetsToFiles()
    On Error GoTo Chyba
    Application.ScreenUpdating = False
    Zdroj = ActiveWorkbook.Name
    Cesta = ActiveWorkbook.Path & "\"
    For i = 1 To ActiveWorkbook.Sheets.Count
        Meno = Sheets(i).Name & ".xlsx"
        Sheets(i).Copy
        ActiveWorkbook.SaveAs Filename:=Cesta & Meno
        ActiveWindow.Close
        Workbooks(Zdroj).Activate
    Next i
    Application.ScreenUpdating = True
    MsgBox "Vytvorenie samostatných súborov z hárkov súboru " & Zdroj & " bolo úspešne ukončené." & Chr(13) & "Nové súbory sú uložené v zložke " & Cesta, vbInformation, "Oznam"
    Exit Sub
Chyba:
    MsgBox "Vyskytla sa neočakávaná chyba", vbCritical, "Chyba"
End Sub

si nakopíruj do Module1 osobného zošita makier PERSONAL.XLSB (viď priložený obrázok). Ten sa otvára pri každom spustení Excelu. Zošit s osobnými makrami ostáva neviditeľný ale jeho makrá sú k dispozícii.

Potom si otvoríš zošit (nesmie byť nový, musí ísť o už existujúci súbor) a "nad ním" si spustíš makro (karta Vývojár- zobraziť makrá) SheetsToFiles.

Tadááááá

zaznamenáš si najprimitívnejšie makro len kvôli tomu, aby si si sprístupnil v tom okne, screen ktorého si poslal, súčasť projektu personal.xlsb

Preto sa pýtam, či vieš zaznamenať makro. Pri zahájení zaznamenávania sa totiž môžeš rozhodnúť, či má byť zaznamenané do aktuálneho zošita alebo do osobného zošita makier...

Nechcem sa do toho veľmi montovať, ale v rámci čo najväčšieho zjednodušenia pre mifa, prosímťa skús mu vyexportovať to makro ako *.bas, to bude asi jednoduchšie ako navigovať čo kde nakopírovať.

Inak základy vytvorenia makra a zobrazenie tabu "vývojár" /developer:
Create your first macro in excel: MYNVaRnZRgY

file-import sa mi zdalo jednoduchšie ako kopírovať zdroják.

Inak problém s chýbajúcim personal.xls som kedysi riešil, nakoniec som vytvoril prázdny súbor personal.xls a nakopíroval do "xlstart" foldra lebo inak som excel nevedel presvedčiť aby si ho vytvoril :)

Ja neviem, ale tento jednoduchý postup by si mohol zvládnuť:

1. Otvor si súbor v Exceli
2. Stlač Alt + F11 (otvorí sa Microsoft Visual Basic for Applications)
3. Choď do Menu - Insert -> Module (otvorí sa okno, kde píšeš VBA)
4. Vraž tam tento kód:

Sub SplitWorkbook()
'Updateby20140612
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim xWs As Worksheet
Dim xWb As Workbook
Dim FolderName As String
Application.ScreenUpdating = False
Set xWb = Application.ThisWorkbook
DateString = Format(Now, "yyyy-mm-dd hh-mm-ss")
FolderName = xWb.Path & "\" & xWb.Name & " " & DateString
MkDir FolderName
For Each xWs In xWb.Worksheets
xWs.Copy
If Val(Application.Version) < 12 Then
FileExtStr = ".xls": FileFormatNum = -4143
Else
Select Case xWb.FileFormat
Case 51:
FileExtStr = ".xlsx": FileFormatNum = 51
Case 52:
If Application.ActiveWorkbook.HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsx": FileFormatNum = 51
End If
Case 56:
FileExtStr = ".xls": FileFormatNum = 56
Case Else:
FileExtStr = ".xlsb": FileFormatNum = 50
End Select
End If
xFile = FolderName & "\" & Application.ActiveWorkbook.Sheets(1).Name & FileExtStr
Application.ActiveWorkbook.SaveAs xFile, FileFormat:=FileFormatNum
Application.ActiveWorkbook.Close False
Next
MsgBox "You can find the files in " & FolderName
Application.ScreenUpdating = True
End Sub

5. Stlač F5 - vytvorí sa adresár s názvom pôvodného súboru, kde budú vyexportované všetky listy pod svojimi názvami

Good luck...

Zdravím, pokouším se řešit stejný problém. Při spuštění tohoto makra mi to hodí chybovou hlášku: Run time error '1004': Method 'Copy of object'_Worksheet failed

Potřebuju pouze rozhodit jednotlivé listy na samostatné soubory s názvem listu.

Soubor je verze 97-2003
ja mam office 2007
soubor sem zkopíroval z flashky do slozky na plochu
ulozil ho jako xlsm s podporou maker
pak vyzkoušel jak postup s vytvořením makra tak vámi vytvořený doplněk. Bohužel se pokaždé vyskytla nějaká chyba.
V makru mi to vysvítí chybu v řádku (když kliknu na debug): ws.copy

Původní formát i přeuložený do xlsx háže stejnou chybovou hlášku: Vyskytla sa neočekávaná chyba.

Ten doplněk funguje správně, něco je zle v tom zdrojovém sešitu. Nechám si ho poslat znovu. Blbli tam nějak se zamčeným/odemčeným souborem. Když v něm zadám jednoduché makro (přes záznam) pro vyplnění buňky číslem a barvou tak to funguje na všech listech. Ale jakmile jsem zkusil přes záznam udělat makro na uložení listů do jednotlivých souborů, že si to po jednotlivých listech proklikám, tam už se to makro seklo a háže chybu (asi při kopírování daného listu).

Ahoj,
pokiaľ mu to vypísalo "Vyskytla sa neočakávaná chyba" v slovenčine, tak je tá hláška súčasťou môjho makra a nie systémové hlásenie Excelu. (Má preklep, na základe ktorého sa nedá povedať, či má tú hlášku v češtine alebo slovenčine, má to napísané federálne - česko-slovensky "Vyskytla sa neočekávaná chyba" :-))
Proste som sa vtedy nezaoberal ďalším ošetrovaním toho, aké druhy chýb sa vo všeobecnosti môžu vyskytnúť... Malo by to fungovať bez problémov za predpokladu, že v zdroji nie sú žiadne "špeciality", napr. poskrývané či pouzamykané hárky...
Ako prvé by som skúsil z môjho makra vyhodiť On Error GoTo Chyba a na základe takto obdržanej hlášky by šlo testovať, aký druh chyby nastal... Teda... ak robí vôbec s našim doplnkom...
Mám totiž obavy, či nehovoríme o odlišných veciach - akoby nepoužíval ten "náš" doplnok - v ňom totiž žiadny zápis ws.copy neexistuje!?!

Ťažko takto povedať...

Dawa používaš doplnok, ktorý sem postol Siki 16.1.2016 o 21:56???

Makro z doplňku

Sub SheetsToFiles()
    On Error GoTo Chyba
    Application.ScreenUpdating = False
    Zdroj = ActiveWorkbook.Name
    Cesta = ActiveWorkbook.Path & "\"
    For i = 1 To ActiveWorkbook.Sheets.Count
        Meno = Sheets(i).Name '& ".xlsx"
        Sheets(i).Copy
        ActiveWorkbook.SaveAs Filename:=Cesta & Meno
        ActiveWindow.Close
        Workbooks(Zdroj).Activate
    Next i
    Application.ScreenUpdating = True
    MsgBox "Vytvorenie samostatných súborov z hárkov súboru " & Zdroj & " bolo úspešne ukončené." & Chr(13) & "Nové súbory sú uložené v zložke " & Cesta, vbInformation, "Oznam"
    Exit Sub
Chyba:
    MsgBox "Vyskytla sa neočakávaná chyba", vbCritical, "Chyba"
End Sub

...sorry sekol som sa, myslel som doplnok od Sikiho zo 17.1.2016...

Tak ešte raz, lebo fakt neviem, o ktorej verzii píšeme...

1. stiahni si súbor od Sikiho zo 17.1.2016 13:12 (viď nižšie) napr na plochu
2. spusti si svoj súbor, ktorý chceš po hárkoch poukladať do súborov
3. v Exceli 2007 choď na: Možnosti programu Excel-Doplnky a tam dole daj Spustiť (Doplnky programu Excel), tam v okne Doplnky, ktoré sa Ti otvorí, stlač Prehľadávať, nastav si cestu na Sikiho súbor xla, ktorý si stiahol na plochu. Keď ho nájdeš, dvojklik naň a v okne Doplnky Ti pribudne Sikiho doplnok, ktorý sa hneď aj zafajkne. Dáš OK a tým to je hotové. Nad pásom nástrojov sa v Tvojom súbore automaticky objaví nová karta Doplnky. Choď na ňu a v páse nástrojov klikni na Sikiho doplnok. Tým sa makro spustí a vykoná, t.j. vyrobí x súborov, ktoré sú kópiami hárkov Tvojho súboru.

Robíš to tak?

Ahoj, už mi to psal výše, že doplněk funguje jen né na tom souboru který potřebuje.
Pokud rozdělení listů do souborů je jednorázová akce není třeba doplněk "vkládat do Excelu" ale pouze spustit poklepem na soubor a k tomu si otevřít soubor, který chceme "dělit".

Někde výše psal/a

Ten doplněk funguje správně, něco je zle v tom zdrojovém sešitu. Nechám si ho poslat znovu. Blbli tam nějak se zamčeným/odemčeným souborem. Když v něm zadám jednoduché makro (přes záznam) pro vyplnění buňky číslem a barvou tak to funguje na všech listech. Ale jakmile jsem zkusil přes záznam udělat makro na uložení listů do jednotlivých souborů, že si to po jednotlivých listech proklikám, tam už se to makro seklo a háže chybu (asi při kopírování daného listu).

Bohužel se mi to nepodařilo nasimulovat. I když sem listy i soubor pozamykal (bez hesla) tak rozdělení do souborů proběhlo korektně.

Áno, to som čítal, ale ako vravím, nevedel som sa v tom jednoznačne orientovať ako to myslí, aj preto som to napísal radšej ešte raz a polopatisticky...

A áno, aj pri uzamknutých hárkoch to musí šlapať, dá sa urobiť kópia uzamknutého hárka, čo je podľa mňa trocha prúser, aj keď ma to už párkrát zachránilo pri zabudnutom hesle :-D.

Makro som trocha upravil, no najlepšie by bolo, keby mohol ten súbor proste poskytnúť...

Sub SheetsToFiles()
    On Error GoTo Chyba
    i=0
    Application.ScreenUpdating = False
    Zdroj = ActiveWorkbook.Name
    Cesta = ActiveWorkbook.Path & "\"
    For i = 1 To ActiveWorkbook.Sheets.Count
        Meno = Sheets(i).Name
        Sheets(i).Copy
        ActiveWorkbook.SaveAs Filename:=Cesta & Meno
        ActiveWindow.Close
        Workbooks(Zdroj).Activate
    Next i
    Application.ScreenUpdating = True
    MsgBox "Vytvorenie samostatných súborov z hárkov súboru " & Zdroj & " bolo úspešne ukončené." & Chr(13) & "Nové súbory sú uložené v zložke " & Cesta, vbInformation, "Oznam"
    Exit Sub
Chyba:
    MsgBox "Vyskytla sa chyba pri indexe " & i, vbCritical, "Chyba"
    If i <> 0 Then MsgBox "Problematický hárok: " & Meno, vbCritical, "Chyba"
End Sub

Nejak to tu stíchlo...:-)

Ak je to pre niekoho ešte zaujímavé, potom pridávam tento link, kde je návod ako pridať
ponuku/tlačítko na panel rýchleho spustenia. Postup je tam pre 2007/2003 v 2010 je to podobné

Vyskúšal som to v Exceli 2010 a funguje to:
1. Otvorím Excel (netreba otvárať žiadny súbor)
2. Vytvorím makro - napríklad môj postup vyššie s mojim makrom (treba makro trošku upraviť...)
3. Zatvorím okno MVB for Aplication... - prepnem sa späť do Excelu
4. Postupujem podľa návodu z odkazu
5. Ukončím Excel - netreba ukladať nič...
6. Opäť otvorím Excel - ponuka - tlačítko na paneli je tam - makro funguje...

P.S. ak bude záujem - vytvorím podrobný obrázkový návod aj s "pokecom" - ale len pre Excel 2010 - inú verziu nemám...

Paráda!
Myslel som, že bude najprv treba v nastaveniach excelu pridať a aktivovať doplnok, ale takto je to veľmi šikovné.
Predpokladám však, že na 2003 mu to nepôjde, keďže ribbony sú kapitola sama osebe... či?

Rozhodne si tento štýl zavediem v práci, potom bude normálka radosť chodiť do práce :-D;-):beer:

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