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

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

Přidávat vkládat, mazat list VBA Excel

Videokurzy Excel

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

Jak na vkládání, přidávání, mazání listu v sešitech Excel využitím VBA. Od vložení listu jeho pojmenování, přesunutí, přes vkládaní několika listů s patřičným jménem, mazání listů atd.

Úvodem do vkládaní a mazání listů využitím VBA


Trocha teorie metoda Add

Vkládat se dá několik typů listů

  • xlWorksheet nejčastěji používaný, obsahuje vám dobře známe listy s buńkami, tento list se vkládá defaultně pokud použijete sheet bez patřičnému upřesnění /viz dále/
  • xlChart list pro graf - do tohoto listu můžete umístit jen jeden graf
  • xlExcel4MacroSheet - list s makry 4.0 je zde z historických důvodů
  • xlExcel4IntlMacroSheet
Add( Before , After , Count , Type )
Atribut jméno Povinost Datový typ Popis
Before Nepovinný Variant před který list se umístí nově vložený list
After Nepovinný Variant za který list se umístí nově vložený list
Count Nepovinný Variant počet vkládaných list – možno řešit cyklem
Type Nepovinný Variant co se vloží list pro graf, list s buńkami …

Základní vložení listu

Přidání listu, přidá se před list ze kterého je spuštěn kód - Excel 2016 CZ a přidá se obecný název List** nebo Sheet, Blatt, Hárok. Což pokud vám je jedno máte hotovo.

' přidá list s buńkami Sheets.Add ' přidá list grafu Charts.Add ' přidá list s buńkami Worksheets.Add

Vložení listu se jménem

Vloží list - nekontroluje se, zda již takovéto jméno se v sešitě nenachází a neovlivní pozici umístění.

Worksheets.Add().Name = "Moje jméno" ' podobně Charts, Sheets

Jméno na základě rok, měsíc a den

Sheets.Add().Name = WorksheetFunction.Text(Now(), "yyyy-mm-dd")

nebo složitěji

Sheets.Add ActiveSheet.Name = WorksheetFunction.Text(Now(), "m-d-yy")

Vložení listu na pozici

Na konec, neboli vložit/ přidat za poslední list, včetně pojmenování a zároveň tento list "nasetovat" pro další použití

Dim ws As Worksheet Set ws = Sheets.Add(After:=Sheets(Sheets.Count)) ws.Name = "MUJ LIST 2"

List na začátek, bude jako první.

ThisWorkbook.Worksheets.Add(Before:=Worksheets(1)).Name = "MUJ LIST 1"

Vložení více listu

Vloží více listů za poslední list.

' vloží více listů Worksheets.Add After:=Worksheets(Worksheets.Count), Count:=2

Osobně mám raději vkládání přes cyklus. Vím počet a mohu nadefinovat i jméno listů. Například potřebuji vložit 3 list se jménem MUJ a číslo vloženého listu MUJ1, MUJ2, MUJ3.

Dim ws As Worksheet Dim i As Integer For i = 1 to 3 Worksheets.Add(Before:=Worksheets(1)).Name = "MUJ" & i Next i

Smazání listu

Smazat list jehož jméno znáte. Excel se zeptá, zda opravdu chcete list smazat.

Worksheets("Moje jméno").Delete

Smazat list jehož jméno znáte. Excel se nezeptá a list rovnou smaže.

Application.DisplayAlerts = False Worksheets("Moje jméno").Delete Application.DisplayAlerts = True

Doplním i o deklaraci

Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Moje jméno") Application.DisplayAlerts = False ws.Delete Application.DisplayAlerts = True

Mazání název, pořadí a kódový název listu

Worksheets("Sheet1").Delete Sheets("Sheet1").Delete Sheet1.Delete Sheets(1).Delete

Smazání listu - nazev obsahuje - cyklus

Smazat list jehož název obsahuje nějaký text. Využívám funkci InStr, která v případě, že text v názvu naleze vrátí pozici, nebo-li číslo větší než nula.

Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets If InStr(ws.Name, "List") > 0 Then ws.Visible = xlSheetHiden End If Next ws

Existuje list s názvem

Pred vložením list s požadovaným názvem je potřeba zkontrolovat zda takovýto list již neexistuje. pokud existuje list vložit nelze.

existuje = False For i = 1 To Worksheets.Count If Worksheets(i).Name = "skryt" Then existuje = True ' Exit For End If Next i MsgBox (existuje)

Projde všechny listy

Dim ws As Worksheet existuje = False For Each ws In ActiveWorkbook.Worksheets If ws.Name = "skryt" Then existuje = True End If Next ws MsgBox existuje

Více v článku o informacích o litech

Další informace:

Co jde s listy a v listech tvořit, jsem sepsal v samostatných článcích:

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 pro vkládání a mazaní listů. Co se dá provádět a zatím zde tato informace chybí, můžete zmínit v komentáři. Rád se inspiruji a doplním, stejně průběžně doplňují kódy, které se mi hodí pro práci.

Článek byl aktualizován: 26.12.2018 21:01

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 | 766

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