Zdravím, všude, kde jsem hledal jsem našel kopírování aktivního listu, ale co když potřebuji zkopírovat list ze zavřeného sešitu v úplně jiném úložišti?
Poradil by mi někdo jak do otevřeného sešitu (za list "5") zkopírovat list ze sešitu "C:/file/zkouška.xlsx" s tím, že by to měl být list, který se jmenuje stejně jako text v buňce A1 listu "Data" daného otevřeného sešitu. Název zkopírovaného listu by měl zůstat stejný. Budu moc rád za radu, děkuju
kopie listu z jiného sešitu makrem Vyřešeno
-
- Pohlaví:
Re: kopie listu z jiného sešitu makrem
Od boku:
a) Vzorce provázané z naformátovaných buněk do zdroje dat
b) Pokud mají data databázové uspořádání (seznam), pak dotaz přes MS Query
c) Makra (GetObject a zkopírování, databázově - ADO, ACE, ExecuteExcel4macro - zde asi nevhodné)
a) Vzorce provázané z naformátovaných buněk do zdroje dat
b) Pokud mají data databázové uspořádání (seznam), pak dotaz přes MS Query
c) Makra (GetObject a zkopírování, databázově - ADO, ACE, ExecuteExcel4macro - zde asi nevhodné)
Re: kopie listu z jiného sešitu makrem
a) se mi nechce dělat, složité
b) nemají
c) pomocí makra to chci řešit, ale neumím napsat správný kod.
Jak jsem psal, všude jsem našel kopii aktivního listu, nikoli listu z jiného souboru. Mám část (malou část) kodu, ale ve VBA začínám a nikde jsem nedohledal, jak přesně to má být.
Sub kopie()
GetObject("C:\file\zkouška.xlsx") - nevím jak mu říct, který list to vlastně chci
- příkaz na jeho zkopírování také nevím
after:=ActiveWorkbook.Sheets("5")
End sub
Budu rád, když mě někdo nakopne jak dál.
b) nemají
c) pomocí makra to chci řešit, ale neumím napsat správný kod.
Jak jsem psal, všude jsem našel kopii aktivního listu, nikoli listu z jiného souboru. Mám část (malou část) kodu, ale ve VBA začínám a nikde jsem nedohledal, jak přesně to má být.
Sub kopie()
GetObject("C:\file\zkouška.xlsx") - nevím jak mu říct, který list to vlastně chci
- příkaz na jeho zkopírování také nevím
after:=ActiveWorkbook.Sheets("5")
End sub
Budu rád, když mě někdo nakopne jak dál.
-
- Pohlaví:
Re: kopie listu z jiného sešitu makrem
a) Složité? Jeden vzorec rozkopírovat a nahradit vzorce hodnotami? Maximálně 10 sekund.
b) OK
c) Přes GetObject obdržíte co? Sešit. Neumíte se odkázat na jeho druhý list? Máte nastudovaný model Excelu? A GetOject používáme proto, že s pomocí Set si ho přiřadíme do objektové proměnné. Do objektové proměnné si přiřaďte i cíl (namísto používání ActiveWorkbook).
Až přestanete tvrdit, že je něco složité a "nechce se mi", tak se mě možná bude chtít uvést příklad. Zatím v tom vidím jen lenost.
b) OK
c) Přes GetObject obdržíte co? Sešit. Neumíte se odkázat na jeho druhý list? Máte nastudovaný model Excelu? A GetOject používáme proto, že s pomocí Set si ho přiřadíme do objektové proměnné. Do objektové proměnné si přiřaďte i cíl (namísto používání ActiveWorkbook).
Až přestanete tvrdit, že je něco složité a "nechce se mi", tak se mě možná bude chtít uvést příklad. Zatím v tom vidím jen lenost.
Re: kopie listu z jiného sešitu makrem
a) ano (sloučené buňky, formátování, různý počet sloupců a řádků v čase)- daný list nevytvářím já, jen ho potřebuju dostat do svého reportu
c) jsem samouk a ve volných chvílí se snažím aspon něco naučit. Asi model Excelu nastudovaný nemám, ale rád to doženu. Nechci abyste mi napsal celý kod, jsem rád, že se mým problémem zdržujete a rád kod vytvořím sám. Jen nápovědy musí být pro BFÚ...
c) jsem samouk a ve volných chvílí se snažím aspon něco naučit. Asi model Excelu nastudovaný nemám, ale rád to doženu. Nechci abyste mi napsal celý kod, jsem rád, že se mým problémem zdržujete a rád kod vytvořím sám. Jen nápovědy musí být pro BFÚ...
-
- Pohlaví:
Re: kopie listu z jiného sešitu makrem
Dobrá, trochu od boku, snad to půjde:
Kód: Vybrat vše
Sub KopieListu()
Dim wkbZdroj As Workbook
Dim wkbCil As Workbook
Dim wshZdroj As Worksheet
Set wkbCil = ThisWorkbook
Set wkbZdroj = GetObject(ThisWorkbook.Path & "\" & "zdroj.xlsx")
Set wshZdroj = wkbZdroj.Worksheets("List2")
wshZdroj.Copy After:=wkbCil.Worksheets("List3")
Set wshZdroj = Nothing
Set wkbZdroj = Nothing
End Sub
Re: kopie listu z jiného sešitu makrem
Paráda, funguje výborně. Sice zdroj je v jiné složce než cíl a název kopírovaného listu musí být z buňky A1, ale s tím jsem si poradil.
Mám jeden dotaz. Zdroj, ze kterého kopíruju list má nějaká externí data a proto se vždy při otevření ptá, zda chci data akutualizovat. Při použití tohoto makra se zdroj otevře, zeptá se mě to zda chci aktualizovat, pak se zdroj zavře a list se nezkopíruje, jakmile ale makro použiji znovu, tak se list zkopíruje už bez ptaní.
Nedá se mu nadefinovat, at se neptá a bere ty data, která tam byla uložena při posledním ukládání, případně, ať si sám potvrdí, že se mají zaktualizovat?
Jinak díky za makro, toto je pro mě vyšší dívčí, to bych sám nedal..
Mám jeden dotaz. Zdroj, ze kterého kopíruju list má nějaká externí data a proto se vždy při otevření ptá, zda chci data akutualizovat. Při použití tohoto makra se zdroj otevře, zeptá se mě to zda chci aktualizovat, pak se zdroj zavře a list se nezkopíruje, jakmile ale makro použiji znovu, tak se list zkopíruje už bez ptaní.
Nedá se mu nadefinovat, at se neptá a bere ty data, která tam byla uložena při posledním ukládání, případně, ať si sám potvrdí, že se mají zaktualizovat?
Jinak díky za makro, toto je pro mě vyšší dívčí, to bych sám nedal..
-
- Pohlaví:
Re: kopie listu z jiného sešitu makrem
Chování ve vztahu k aktualizaci propojených dat zkuste nastavit přímo v propojeném sešitu.
Excel 2010: Soubor / Informace / Upravit odkazy na soubory / Výzva při spuštění
Excel 2010: Soubor / Informace / Upravit odkazy na soubory / Výzva při spuštění
Re: kopie listu z jiného sešitu makrem
měl bych ještě dotaz. Při testování jsem zjistil, že po zkopírování listu, nejde zdroj otevřít, respektive se otevře, zeptá se na aktualizace externích dat,ale zůstane šedivý excel jako by soubor nebyl otevřený. Když excel zavřu,tak se ptá, zda ho chci uložit.
Soubor jsem tedy obnovil ze zálohy a použil Tvou radu:
Teď soubor funguje, takže dík.
Dotaz spočívá v tom, že poté co se list nakopíruje, tak zůstane zdrojový soubor někde na pozadí otevřen, sice není vidět, že je otevřen (opět vidím jen šedivý excel), ale když excel zavírám tak se ptá zda ho chci uložit. Problém je, že se souborem pracuje více lidí a já ho tímto blokuju. Nevím proč se to děje,ale nešlo by tam přidat, že po nakopírovaní se zdrojový excel bez uložení zavře?
nefunguje:-(
Soubor jsem tedy obnovil ze zálohy a použil Tvou radu:
xlnc píše:Soubor / Informace / Upravit odkazy na soubory / Výzva při spuštění
Teď soubor funguje, takže dík.
Dotaz spočívá v tom, že poté co se list nakopíruje, tak zůstane zdrojový soubor někde na pozadí otevřen, sice není vidět, že je otevřen (opět vidím jen šedivý excel), ale když excel zavírám tak se ptá zda ho chci uložit. Problém je, že se souborem pracuje více lidí a já ho tímto blokuju. Nevím proč se to děje,ale nešlo by tam přidat, že po nakopírovaní se zdrojový excel bez uložení zavře?
Kód: Vybrat vše
Workbooks("sesit.xls").Close SaveChanges:=False
-
- Level 4.5
- Příspěvky: 1544
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: kopie listu z jiného sešitu makrem
Vynechej v názvu sešitu koncovku.
Kód: Vybrat vše
Workbooks("sesit").Close SaveChanges:=False
Re: kopie listu z jiného sešitu makrem
Kód: Vybrat vše
Sub kopie()
Dim wshZdroj As Worksheet
Set wkbCil = ThisWorkbook
Set wkbZdroj = GetObject("T:\Správa\Mel 3, P2.xls")
Set wshZdroj = wkbZdroj.Worksheets([A1].Value)
wshZdroj.Copy After:=wkbCil.Worksheets("Data")
Set wshZdroj = Nothing
Set wkbZdroj = Nothing
Workbooks("T:\Správa\Mel 3, P2").Close SaveChanges:=False
End Sub
Nefunguje:-( List zkopíruje, hodí mi to chybu "Subscript out of range" a opět je zdrojový soubor otevřený
Nevadí mezera v názvu souboru?
-
- Level 4.5
- Příspěvky: 1544
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: kopie listu z jiného sešitu makrem
Upraveno.
Kód: Vybrat vše
Sub kopie()
Dim wshZdroj As Worksheet
Set wkbCil = ThisWorkbook
Set wkbZdroj = GetObject("T:\Správa\Mel 3, P2.xls")
Set wshZdroj = wkbZdroj.Worksheets([A1].Value)
wshZdroj.Copy After:=wkbCil.Worksheets("Data")
wkbZdroj.Close SaveChanges:=False
Set wshZdroj = Nothing
Set wkbZdroj = Nothing
End Sub
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
com.android.documentsui - jak přenést z jiného zařízení
od MK_Vs » 06 pro 2023 11:49 » v Mobily, tablety a jiná přenosná zařízení - 0
- 1983
-
od MK_Vs
Zobrazit poslední příspěvek
06 pro 2023 11:49
-
-
-
Excel - automatický export listů xls do pdf včetně pojmenování Příloha(y)
od kalosek » 28 čer 2023 20:31 » v Kancelářské balíky - 2
- 2202
-
od kalosek
Zobrazit poslední příspěvek
29 čer 2023 19:39
-
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti