< návrat zpět

MS Excel


Téma: Makro-kopírování listů z jednoho sešitu do druhé rss

Zaslal/a 1.4.2016 11:02

Dobrý den,

potřeboval bych poupravit makro na kopírování více listů z jednoho sešitu do druhého.

Doteď jsem používal pouze makro na kopírování buněk.

Jedná se o to, že vždy otevřu první sešit, následně spustím makro a vyberu sešit ze kterého se má buňka kopírovat(první část makra). Ta se následně zkopíruje do druhého sešitu.

Nyní bych chtěl, aby se mi kopírovalo více listů z jednoho sešitu do druhého.

Bohužel se mi nepodařilo upravit makro tak, aby mi to listy zkopírovalo. Pouze je to natáhne do pamneťi, ale už nezkopíruje.

Zde zasílám vzor původního makra.

Sub nacti_z_vybraneho_souboru()
Application.DisplayAlerts = False
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = "C:\Users\Dell\Dropbox\data"
.Title = "Vyber adresář"
.Filters.Add "Soubory Excelu (xls/xlsx)", "*.xl*", 1
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Nebyly načteny žádné soubory": Exit Sub
ElseIf .SelectedItems.Count > 1 Then
MsgBox "Vyberte pouze jeden soubor!": Exit Sub
Else
zdrojovy_soubor = .SelectedItems(1)
End If
End With
Workbooks.Open (zdrojovy_soubor)
docasna = ActiveWorkbook.Worksheets("List1").Range("B5")
ActiveWorkbook.Close
ThisWorkbook.Activate
Worksheets("List1").Range("C10") = docasna
Application.DisplayAlerts = True
End Sub

Zaslat odpověď >

#030963
elninoslov
To nieje problém, len prosím upresnite, či toto kopírovacie makro bude spúšťať zošit z ktorého sa bude kopírovať (xlsm), alebo zošiť do ktorého sa bude kopírovať (xlsm), alebo nejaký iný riadiaci zošiť (xlsm), a či tam treba zakomponovať aj zoznam listov na výber.citovat
#030965
elninoslov
Napr. takto.
Ak majú k tomuto adresáru prístup aj iný užívatelia po sieti, tak treba ešte doplniť testovanie otvorenia súboru niekde iným užívateľom. To tiež nieje problém.
Příloha: zip30965_kopirovanie-listov-subor-subor.zip (38kB, staženo 84x)
citovat
#030968
avatar
Odpovím první na Váš pozdější dotaz.
Více uživatelů nebude potřeba. Jedná se o PC které není připojeno do sítě.

Makro by mělo spouštět sešit z kterého se bude kopírovat.

Představa byla taková, pracovník si otevře sešit s makrem.
Následně spustí makro v tomto sešitě.
To se ho zeptá který sešit chce vybrat pro kopírování listů.
Pro větší jednoduchost bych seznam listů na výběr nedával a dal bych natvrdo listy které se budou kopírovat.
Následně už by měli být listy zkopírované a pracovník si z nich vybere co potřebuje.

Děkuji za poučnou odpověď.citovat
#030977
elninoslov
OK, ešte podotázky na upresnenie.
Užívateľ si teda vyberá len zdrojový súbor, a listy z neho sa kopírujú do toho súboru v ktorom spustil makro ?
Keď vravíte pevný zoznam listov, máte na mysli, že zdrojový zošiť obsahuje napr listy "A", "B", "C", a na pevno sa určí, že sa budú kopírovať len listy "B" a "C" ? Alebo tým pevným zoznamom myslíte to, že sa skopírujú všetky listy ?citovat
#030978
elninoslov
Tu máte teda ešte verzie, bez výberu listov, kopírujú všetky listy. Líšia sa iba tým, že v2 dáva na výber zdroj aj cieľ, naproti tomu v3 dáva na výber iba zdroj, a cieľ je zošit, z ktorého sa to spustilo.

Ak si chcete zadať iba konkrétne názvy listov, alebo pozície listov, tak nahradte konštrukciu
For Each SH In WBZ.Worksheets
If Not Not LST Then u = UBound(LST) + 1: ReDim Preserve LST(1 To u) Else ReDim LST(1 To 1): u = 1
LST(u) = SH.Name
Next SH

za
LST = Array("list1", "list222")
alebo
LST = Split("list1,list222", ",")
pri týchto dvoch treba myslím nahradiť deklaráciu Dim LST() za DIM LST

alebo
ReDim LST(1 to 2)
LST(1) = WBZ.Worksheets(1).Name
LST(2) = WBZ.Worksheets(3).Name


Myslím, že ďalej už to zvládnete :)
Příloha: zip30978_kopirovanie-listov-subor-subor23.zip (41kB, staženo 85x)
citovat
#030979
avatar
Děkuji mnohokrát. v3 jsem si upravil a je to přesně to co jsem potřeboval.

Ještě jednou děkuji a přeji krásný den.citovat
#041650
elninoslov
Na požiadanie úprava/oprava verzie 30965_kopirovanie-listov-subor-subor.zip z 1.4.2016 14:26 (končilo chybou pri nevybratí súboru).
Příloha: zip41650_kopirovanie-listov-subor-subor.zip (39kB, staženo 107x)
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