VBA Excel práce se sešitem

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod pb03 12. 5. 2022 06:12

Zdravím,
začínám s makry v Excelu...
chtěl bych si ujasnit co všechno musím udělat pokud chci:
z původního sešitu "puvodni.xlsx" (ActiveWorkbook) spustit tlačítkem vykopírování nějakých buněk z druhého zavřeného sešitu "druhy.xlsx" (nachází se ve stejném adresáři)

Abych s tím druhým druhým mohl pracovat, musím provést?
Workbooks("druhy.xlsx").Sheets("List1").Open
Workbooks("druhy.xlsx").Sheets("List1").Activate

prosím o správné příkazy... musí se soubor otevřít (open) nebo aktivovat (activate) nebo obojí??

Předem díky za pomoc.
Petr
pb03
Junior

Odeslat příspěvekod bruco 12. 5. 2022 07:52

Aktivacia nie je nutna.
Workbooks.Open Filename:="C:\tvoja_cesta\druhy.xlsx"
Workbooks("druhy.xlsx").Worksheets("Sheet1").Range("B3:B4").Copy _
Workbooks("prvy.xlsm").Worksheets("Sheet1").Range("C5")

Pre zaciatok je dobre nahrat si makro, ktore robi to co chces a potom si preskumat a upravit takto ziskany kod.
bruco
Junior

Odeslat příspěvekod pb03 12. 5. 2022 08:01

díky moc.
...a na co se používá Aktivace?

Petr
pb03
Junior

Odeslat příspěvekod bruco 12. 5. 2022 08:44

Popravde neviem. :-)
bruco
Junior

Odeslat příspěvekod JanFiala 12. 5. 2022 11:09

Když se budeš učit, tak nejrychlejší cestou, jak získat hrubý kód je zapnout záznam makra, udělat, co potřebuješ, ukončit záznam a jít do editace. Tam máš pak kód ve VBA, který potřebuješ jen upravit.
Co můžeš udělat dnes, odlož na včerejšek
JanFiala
Expert
Uživatelský avatar

Odeslat příspěvekod pb03 12. 5. 2022 13:27

díky. PB.

-- 12. 5. 2022 14:40 --

ještě mám jeden dotaz:
chci po kopírování dat uzavřít sešit bez uložení příkazem:
ActiveWorkbook.Close SaveChanges:=False

ale ještě mi vyskočí hláška - něco jako:
"Schránka obsahuje množství informací. chcete ponechat data v paměti?" (nechci)

dá se tato hláška potlačit?
Díky.

-- 12. 5. 2022 14:47 --

už jsem na to asi přišel - pomocí nahrávání makra :-D
Application.CutCopyMode = False

díky.
pb03
Junior

Odeslat příspěvekod bruco 12. 5. 2022 13:49

Pred prikazom na ulozenie das na potlacenie vystraznych hlasok:
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=False
Application.DisplayAlerts =True

Pokial ale kopirujes tak, ako som pisal vyssie, tak by si nemal mat v clipboarde nic.
bruco
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků