Přeskočit navigaci | Přeskočit na novinky
     

Jste zde: Úvodní stránka » excel » vba-listy-sheet » Kopirovani-presouvani-listy-VBA-Excel
Microsoft Excel logo

Kopírování a přesouvaní listu - VBA Excel

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Jak na kopírování a přesouvaní listů využitím VBA Excel. Kopie do stejného, jiného, přejmenování listu, určitý počet listů, jména listů. Přesunutí atd.

Úvodem do kopírování a přesouvání listů ve VBA Excel

Zkopírovat list se velice hodí. Máte šablonu (měsíčního, týdenního) kalendáře a potřebujete 12, 54 kopií listu a nechcete provádět ručně, někdy jen chcete vyexportovat (přesunout) list do jiného sešitu. Na vše lze využít VBAčko.

pro přehlednost je článek rozdělen


Copy metoda - teorie

Trocha teorie na začátek, jak je definována metoda Copy.

Copy( _Before_ , _After_ ) Copy After:=
název povinný typ popis
Before Volitelně Variant Před který list umístit
After Volitelně Variant Za který list umístit

Kopie listu základ - nový sešit

Jak na kopií listu. Kopie se provede do nového sešitu, otevře se.

' bude v novem sesitu ActiveSheet.Copy

Máte-li označeno více listů.

' vice listu kopie do noveho sesitu ' predpoklad mate vybrany ActiveWindow.SelectedSheets.Copy ' kapitola označování listů

Definice proměnných

Dim ws As Worksheet Set ws = Worksheets("List3") ws.Copy ' kapitola označování listů

Máte-li označeno více listů.

Worksheets(Array("List1", "List2", "List4")).Copy

Ve stejném sešitě

Zkopírovat na konec

Dim ws As Worksheet Sheets(1).Copy After:=Sheets(Sheets.Count) Set ws = ActiveSheet

Zkopírovat na začátek a pojmenovat

Dim ws As Worksheet MujKodovyNazevListu.Copy Before:=Sheets(1) Set ws = ActiveSheet ws.Name = "kopie listu začátek"

Zkopírovat za před/konkrétní list, pojmenovat a skrýt

Dim ws As Worksheet MujKodovyNazevListu.Copy Before:=Sheets(5) ' After:= Set ws = ActiveSheet ws.Name = "kopie mezi" ws.Visible = False ' skrýt list

Do jiného sešitu

Potřebujete-li překopírovat do otevřeného (existujícího souboru). Na začátek.

ActiveSheet.Copy Before:=Workbooks("Sesit-smazat.xlsx").Sheets(1)

Potřebujete-li překopírovat do otevřeného (existujícího souboru). Na konec.

ActiveSheet.Copy After:=Workbooks("Sesit-smazat.xlsx").Sheets(Workbooks("Sesit-smazat.xlsx").Worksheets.Count)

Do nového souboru a zavřít

' uloží do nového soubpopru a ten zavre Worksheets("presun").Copy With ActiveWorkbook .SaveAs Filename:="D:\NovySoubor1.xlsx", FileFormat:=xlOpenXMLWorkbook ' zmenit umísteni a take typ ukladaneho souboru .Close SaveChanges:=False End With ' pozor aktuální složka ' Range("A3") = CurDir

Pro více listů

Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Copy

Poznámka, opět možno definovat proměnné, umístit před nebo za vybraný, existující list. Kopírovat více listů, využít kódový název listu atd. Kontrola otevřenosti souboru kam. Přejmenovat a skrývat vkopírovaný list.

Z jiného sešitu

V přípravě

V přípravě

Více kopií

Využitím cyklu pro tvorbu například 12 měsíců, kdy budou listy i pojmenovány. Základní ukázka, ošetření (max a min velikost čísla) zadaného čísla, existenci listu, které se vytvářejí atd. Již nechám na čtenáři.

Dim n As Integer n = InputBox("Kolik kopií chceš?") ' nekontroluji zadanou hodnotu spoleham na inteigenci uzivatele ' pro aktivni list, ale zvolte si i jiny For pocet = 1 To n ActiveSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) ' nekontroluji existenci názvu M- a prislusne cislo ActiveSheet.Name = "M-" & pocet Next

Další typy jsou v přípravě.

Tipy a triky pro kopírování

Po přesunutí skrýt ;)

Dim ws As Worksheet MujKodovyNazevListu.Copy Before:=Sheets(5) Set ws = ActiveSheet ws.Name = "kopie mezi" ws.Visible = False ' skrýt list

Další typy jsou v přípravě.

Move metoda - teorie

Trocha teorie na začátek jak je definována metoda Move.

Move( _Before_ , _After_ ) Move After:=
název povinný typ popis
Before Volitelně Variant Před který list umístit
After Volitelně Variant Za který list umístit

Základ move

Základní ukázka, jen přesune list do nového sešitu.

' pozor novy sesit ActiveSheet.Move

Přesunutí stejný sešit.

Přesunutí stejný sešit a potřebuji vybraný list dostat/přesunout na začátek

' aktivní list ActiveSheet.Move Before:=Worksheets(1) ' nebo konkretní list Worksheets("List1").Move Before:=Worksheets(1) ' nebo přes kodové jméno

Přesunout na konec.

ActiveSheet.Move After:=Worksheets(Worksheets.Count) Worksheets("List1").Move After:=Worksheets(Worksheets.Count)

Podobně za/před konkrétní list

Worksheets("List1").Move Before:=Sheets("List5")

Jiný sešit / nový

Přesun do jiného otevřeného souboru

Sheets("presun").Move Before:=Workbooks("JinySesit.xls").Sheets(3)

Do nového souboru a zavřít

' uloží do nového soubopru a ten zavre Worksheets("presun").Move With ActiveWorkbook .SaveAs Filename:="D:\NovySoubor2.xlsx", FileFormat:=xlOpenXMLWorkbook ' zmenit umísteni a take typ ukladaneho souboru .Close SaveChanges:=False End With ' pozor aktuální složka ' Range("A3") = CurDir

Opět

Tipy a triky pro přesouvání

V přípravě

...
Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor ke stažení zdarma v přípravě. Soubor využívá makra.


Závěrem

Napadá vás něco co při kopírování s listy se dá provádět a zatím zde chybí, můžete změnit v komentáři. Rád se inspiruji a doplním, stejně ta průběžně doplňují kódy které se i hodí pro práci.

Článek byl aktualizován: 25.12.2018 16:43

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře zatím nejsou

Můžete být prvními co zanechají smysluplný komentář.







Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2019 | 2661

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.