< návrat zpět

MS Excel


Téma: Vytvoření složky a následný export sešitu xlsx rss

Zaslal/a 19.11.2018 11:46

Ahoj všem, můžete mi poradit? Potřeboval bych vytvořit složku dle názvu určité buňky a do vytvořené složky následně vyexportovat sešit se stejným názvem.
A nejlépe pokud bude již složka existovat, aby ji to nebralo v potaz. Díky

FJmeno = Sheets("Neshoda").Range("D2").Text
FSlozka = Sheets("Neshoda").Range("D2").Text
MkDir "D:\N - Neshody\" & a & FSlozka
Sheets("Formulář").Visible = True
Sheets("Formulář").Select
ActiveSheet.Copy
ActiveWorkbook.SaveCopyAs Filename:="D:\????????????????????????????"
ActiveWorkbook.Close (False)
Sheets("Formulář").Visible = False

Sheets("Neshoda").Select

i = MsgBox("Uložení do složky neshod dokončeno", vbOKOnly + vbInformation, "INFO")

Zaslat odpověď >

#041924
avatar
Ahoj, koukni sem:
https://office.lasakovi.com/excel/vba-soubory/excel-vba-vytvorit-smazat-adresar/
https://office.lasakovi.com/excel/vba-soubory/SaveAs-metoda-ulozit-jako/citovat
#041925
avatar

Rejpal napsal/a:

Ahoj, koukni sem:
https://office.lasakovi.com/excel/vba-soubory/excel-vba-vytvorit-smazat-adresar/
https://office.lasakovi.com/excel/vba-soubory/SaveAs-metoda-ulozit-jako/


To mi asi moc nepomůže...potřebuju v jednom makru:
a) vytvořit složku (název dle buňky D2)
b) a posléze zkopírovat "sheet NESHODA" do vytvořené složky v bodě "a" (pod názvem opět dle buňky D2.xlsx)

...to vše v jednom kroce, díky :)citovat
#041926
elninoslov
Tak raz uvádzate "vyexportovat sešit se stejným názvem" a potom zasa "zkopírovat "sheet NESHODA"". To sú dve úplne iné veci. Tu máte na Export LISTU (nie ZOŠITU !!!):

Sub ExportujList()
Dim Cesta As String, Nazev As String, CP, i As Byte

With ThisWorkbook.Worksheets("Neshoda")
Nazev = .Range("D2")
CP = Split("D:\N - Neshody\" & Nazev, "\") 'Rozlož na podadresáre
Cesta = CP(0)

If UBound(CP) > 0 Then
For i = 1 To UBound(CP) 'Cyklus vytvorí všetky požadované podadresáre, ak ešte neexistujú
Cesta = Cesta & "\" & CP(i)
If Len(Dir(Cesta, vbDirectory)) = 0 Then MkDir Cesta
Next i
End If

Nazev = Cesta & "\" & Nazev

Application.ScreenUpdating = False
Application.DisplayAlerts = False 'Vynechá hlášku o existujúcom súbore, a prepíše ho

.Copy
With ActiveWorkbook
.ActiveSheet.Shapes("btnExportListu").Delete 'Ak sa kopíruje list so spúšťacím tlačítkom, tak sa tlačítko zmaže
.SaveAs Nazev & ".xlsx", xlOpenXMLWorkbook
.Close
End With

Application.DisplayAlerts = True
Application.ScreenUpdating = True
End With
End Sub
Příloha: zip41926_vytvor-adresar-a-exportuj-list.zip (18kB, staženo 20x)
citovat
#041928
avatar
Omlouvám se za "export LISTU". 6

Funguje, super...díky moc!! 1citovat
#041930
avatar
Ještě by mě zajímala jedna věc...kopírovaný list je plný funkcí, potřeboval bych kopírovat pouze hodnoty, tak aby zůstalo formátování, je to možné? Díky 1citovat
#041934
elninoslov
Som len na mobile, ale skúste zatiaľ pred .SaveAs pridať
.ActiveSheet.UsedRange.Value = .ActiveSheet.UsedRange.Value
Keď prídem pridám Vám tam ešte odchyt prípadnej chyby...citovat
#041954
elninoslov
Neviem, aký máte Excel. Riešenie bude záležať aj na stave inštalácie, aj na verzii, aj na nainštalovaných aktualizáciách, postavení Jupitera voči Slnku a pod. Proste pri metóde Copy listu, dochádza v Exceli k bugu. Dosť vážnemu, spadne celý Excel, bez možnosti odchytiť chybu (preto v kóde na tom mieste ani On Error nieje).

Ako sa to správa na aktuálnom Exceli 2019 (Verzia 1808 zostava 10730.20102) + Win 10 v.1809 (zostava 17763.134) x64 SK Pro? Nuž takto:
-Ak súbor neexistuje - vytvorí sa - OK
-Ak súbor už existuje - prepíše sa - OK
-Ak súbor existuje a je otvorený - upozorní Vás to a nič neurobí - OK
-Ak ale po zatvorení daného exportovaného súboru znovu spustíte makro, spadne celý Excel.
-Pomôže iba zatvorenie tohoto spúšťacieho zošitu, potom to už ide zase bez chyby.

Obdobný problém sa tu už riešil s Office 2016 tuším. Narýchlo som to nenašiel, ale myslím, že sme na spoľahlivé riešenie ani neprišli. Zdá sa mi, že najspoľahlivejšie to bolo pri vytvorení novej inštancie, a kopírovanie do nej.

Ak niekto na to nájde link, tak ho sem šupnite.

A teraz ešte k samotnej požiadavke. Toto Vám ale urobí zo vzorcov hodnoty. Ale nezruší napr Podmienené formátovanie a vzorce v ňom, Výberové zoznamy, ani Definované názvy. Veľmi bude záležať ako to presne máte, čo tam máte použité a pod. Ak napr. kopírujete nejakú rovnakú oblasť (rovnaká šírka, výška, formátovanie,...) Tak bude lepšie iba vkladať hodnoty do šablóny, ako toto.
Příloha: zip41954_vytvor-adresar-a-exportuj-list.zip (23kB, staženo 16x)
citovat

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