< návrat zpět

MS Excel


Téma: otevření *.xls a jeho uložení jako 1 2 3.xls rss

Zaslal/a 20.10.2014 13:13

Ahoj,
ve složce mám soubory:
krycí list.xls a
1.xls
2.xls
.
.
86.xls
a potřeboval bych zda by někdo nedal dohromady macro které by dokázalo otevřít soubor krycí list.sxl a uložit ho jako další číslo.xls

tzn. když bude ve složce 1-86.xls tak aby se uložil jako 87.xls.

Zaslat odpověď >

Strana:  1 2   další »
#021970
avatar
Zkusil jsem něco vytvořit.
Soubor v příloze přidej do adresáře se soubory. Předpokladem je souvislá řada souborů .xls bez vynechání čísla! Mimo tyto soubory s číselným názvem a "krycí list" by tam neměly být jiné soubory .xls, ale můžou být jiné soubory Excelu (xlxs, xlsm).
Příloha: zip21970_sesit1.zip (17kB, staženo 28x)
citovat
#021971
avatar
Díky moc, funguje skoro jak má jen při prvním pokusu vynechá jedno číslo v tomto případě když je ve složce 86.xls vytvoří až 88.xls pak funguje normálně než soubor s macrem zavřu a otevřu znovu pak opět vynechá jedno pořadové číslo.

Macro jsem byl nucen kosmeticky upravit o to aby se samo nezavíralo a změnil jsem cestu odkazovanou protože soubor ve kterém mám macro je o adresář výše.

Sub ulozit_jako_dalsi()

Dim soubor_zdroj As Workbook
Dim soubor As String
Dim soubor_novy As String
Dim akt_cesta As String
Dim i As Double

akt_cesta = "\\apache\Spol\Krycí listy"
' zjistit posledni cislo souboru
soubor = Dir(akt_cesta & "\*.xls")
i = 0
Do While soubor <> "" ' opakuje dokud existuje soubor
If soubor <> "krycí list.xls" _
And Right(soubor, 4) = ".xls" Then
i = i + 1
End If
soubor = Dir 'nacteni dalsiho souboru
Loop

' kontrola zda "krycí list.slx" neni otevreny
Set soubor_zdroj = Nothing
On Error Resume Next
Set soubor_zdroj = Workbooks("krycí list.xls")
On Error GoTo 0
If Not soubor_zdroj Is Nothing Then ' then plati, kdyz je otevren
GoTo Pokracovat
Else ' else plati, kdyz neni otevren
Set soubor_zdroj = Nothing
Set soubor_zdroj = Workbooks.Open _
(akt_cesta & "\krycí list.xls")
End If
Pokracovat:

soubor_novy = i + 1 & ".xls"
soubor_zdroj.SaveAs Filename:=akt_cesta & "\" & soubor_novy, _
FileFormat:=xlExcel8

End Sub

citovat
#021972
avatar
Problém bude nejspíš v tom počítání souborů v adresáři. U mě to funguje i při prvním puštění správně. Smyčka Do - Loop spočítá všechny .xls mimo "krycí list". Vypadá to na jeden další .xls v adresáři, nebo je tam i 0.xls ? Zkus to otestovat jen se soubory 1,2,3, + krycí list.citovat
#021973
avatar
Tak funguje :) ono to rozlišuje velikost písmen a tak to nefiltrovalo Krycí list, proto to vynechání :) Díky moc za pomoc ulehčil jsi mi život :)citovat
#021979
avatar
Ahoj,
ještě mě napadlo, nešlo by na vytvořené excelové soubory rovnou dát do hlavní tabulky hypertextový odkaz, který bude odkazovat na tento soubor?
Buňka A8 by měla odkazovat na 1.xls A9 na 2.xls atd..

V příloze přikládám jak to vypadá.
Příloha: zip21979_tabulka.zip (184kB, staženo 28x)
citovat
#021984
avatar
Přidat hypertext.odkazy asi půjde.
Ale v příloze se nějak nevyznám. Co to má dělat? Hlavně makro na uložení dalšího souboru bych nedával do ThisWorkbook, ale do modulu. Proč dvě tlačítka? Tlačítko "Vyplnění funkce" přednastaví x-řádků dopředu se vzorci, ale nejsou k nim přeuložené soubory, tak jaké hyp.odkazy?
Tlačítko "Nový záznam" uloží nový soubor s posledním číslem a zafunguje nový řádek, tedy pod tohle tlačítko dodělat ten hyp.odkaz?
Nechci měnit vize, ale šlo by jedním tlačítkem přidat zadaný počet záznamů, ke kterým by se uložil správný počet souborů a přibyl správný počet řádků i se vzorci a odkazy.citovat
#021994
avatar
Hypertextový odkaz stačí při použítí "nový záznam" který by se odkazoval na nově vytvořený soubor ve sloupci A kde se mi propisují pořadová čísla souborů.

Samozřejmě úplně nejlepší by bylo kdybych kliknul na nový záznam a vytvořil se soubor s hypertextovým odkazem a zároveň se přidaly i odkazy z "vyplnění funkce" aby v tabulce nebyly zbytečně buňky s #ODKAZ! které odkazují na neexistují soubory. :)citovat
#022013
avatar
Trochu jsem to poupravil. Adresář může být rozbalen kdekoliv, podadresář a krycí soubor musí mít tato jména. "Ulož jako" jsem nahradil kopírováním, odpadá tím rozeznání jména souboru a pořadí se bere z tabulky. Vyhovuje?
Příloha: zip22013_tabulka2.zip (184kB, staženo 27x)
citovat
#022051
avatar
Vyhovuje :) ale bohužel jsem narazil na 2 problémy a to že když jsem v tabulce a nedám uložit tak to bere údaje z tabulky a tak se může stát že si přepíšu již vytvořené a vyplněné soubory prázdnými. Stejně tak pokud mám tabulku otevřenou a kolega si jí otevře pro čtení tak si navzájem budeme přepisovat záznamy :(citovat
#022053
avatar
Zkusil jsem to vylepšit:
- kontroluje, zda je sešit jen pro čtení. Když ano, dá hlášku a makro skončí
- kontroluje, zda cílový soubor existuje. Když ano, zeptá se, zda přepsat nebo ne. Je možná varianta, aby se neptal a nikdy nepřepsal existující soubor. Ale to, že dá vědět o souboru, upozorní na to, že je něco divně.
- na konci makra samo uloží soubor, aby souhlasily záznamy se soubory
Příloha: zip22053_tabulka3.zip (186kB, staženo 29x)
citovat

Strana:  1 2   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje