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

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

Zobrazovat a skrývat list - VBA Excel

Videokurzy Excel

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

Jak využitím VBA skrývat a zobrazovat listy v Excel. Zjišťovat jejich počet, vypisovat do listu atd.

Úvodem do skrývání a zobrazování listů

Někdy se hodí místo vymazaní list skrýt. jak na to ve VBA a co za zajímavé skutečnosti mohou nastat se pokusím zmínit v tomto článku, který z důvodu přehlednosti mám rozdělen na kapitoly:


Trocha teorie - skrývání/zobrazování listů

Na první pohled vypadá, že list lze skrýt a zobrazit. pravdu máte z poloviny. ještě existuje superskrtý list, který lze zobrazit jen přes VBA, pravé tlačítko nepomůže. Co může nastat?

  • xlSheetVisible - neboli True pro vlastnost Visible pro viditelný list - který lze zobrazit i přes pravé tlačítko nad ouškem listu
  • xlSheetHidden - neboli False pro neviditelný list - který lze skrýt i přes pravé tlačítko nad ouškem listu
  • xlSheetVeryHidden - velice skrytý list - je nastavitelný ve vlastnostech listu ve VBA případně využitím VBA kódu víz dále
xlSheetVisible xlSheetHidden xlSheetVeryHidden Superskrytý list - ukázka VBA

Skrýt zobrazit list základ

Jak skrývat využitím vlastnosti Visible

' skrýt Sheets(1).Visible = False ' zobrazit ' Sheets(1).Visible = True

Využít zapis přes pořadí, náze, kódový název:

Sheets(1).Visible = xlSheetHidden Sheets("MujList").Visible = xlSheetHidden List6.Visible = xlSheetHidden ' ActiveSheet, Worksheets, Charts

Super skrytý list - skrýt

Super skrytý, neboli list který v Excel nevidíte, ami přes pravé tlačítko. Možno využít ke skrývání informací a monitoringu. Pro skrytí.

Sheets(1).Visible = xlSheetVeryHidden Sheets("MujList").Visible = xlSheetVeryHidden List6.Visible = xlSheetVeryHidden ' ActiveSheet, Worksheets, Charts

Pro zobrazení:

Sheets(1).Visible = xlSheetVisible Sheets("MujList").Visible = xlSheetVisible List6.Visible = xlSheetVisible ' ActiveSheet, Worksheets, Charts

Zobraz / skrýt více listů

Potřebuji skrýt listy, které (názvy, pořadí, kódové názvy) máte například v poli.

PoleListy = Array("List1", "List2") For Each ws In PoleListy Worksheets(ws).Visible = xlSheetHidden Next ws

Zobrazit více listů pomocí VBA:

PoleListy = Array("List1", "List2") For Each ws In PoleListy Worksheets(ws).Visible = xlSheetVisible Next ws

Vše zobrazit

Zobrazit úplně všechny listy (grafy i s buňkami):

For Each ws In Sheets ws.Visible = True Next ws ' ukázka ze kody lze psat i na jeden radek, osobne nemam rad tak jen pro info For Each ws In Sheets:ws.Visible=True:Next

Všechny listy s buňkami

Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Visible = xlSheetVisible Next ws

Všechny lsity s grafy

Dim ws As Chart For Each ws In ActiveWorkbook.Charts ws.Visible = xlSheetVisible Next ws

Poznámka - možno zobrazovat jen listy s grafy nebo listy s buňkami.

' Worksheets, Charts

Funguje i cyklus For ... Next, ale mám zde jen pro pobavení.

Dim i As Integer For i = 1 To Sheets.Count Sheets(i).Visible = True Next i

Zobrazit/skrýt podmínka

Pokud název listu obsahuje část specifického jména tak se skryje (využívám pro listy s nastavením atd.). Využívá funkci InStr, aneb na které pozici je hledaný znak slovo. Takže pokud je číslo větší než nula, tak název listu obsahuje.

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

A když ty stejné listy potřebujete zobrazit:

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

Seznam viditelných skrytých listů

Jak na seznamy? Někdy potřebuji vypsat seznam, proto následující kód:

Dim ws As Worksheet Dim PoradoveList As Integer ' nastaveni PoradoveList = 1 Application.ScreenUpdating = False For i = 1 To ThisWorkbook.Sheets.Count If Sheets(i).Visible = xlSheetVisible Then ' jiný typ listů Cells(PoradoveList + 5, 1) = Sheets(i).Name ' nechci začítnat od řásku 1 ;) PoradoveList = PoradoveList + 1 End If Next i Application.ScreenUpdating = True ' přenastavit na skryté, superskryté již nechám na vás ' tip můžete vypisovat do samostatných sloupců a ty nadepsat ;)

Počty listů

Potřebuji-li spočítat kolik listů je skrytých atd.

' rychlá ukázka, bez deklarace proměných atd x = 0 For i = 1 To ThisWorkbook.Sheets.Count If Sheets(i).Visible = xlSheetHidden Then x = x + 1 End If If Sheets(i).Visible = xlSheetVisible Then y = y + 1 End If Next i MsgBox ("Skryté: " & x & " a viditelné: " & y) ' počty superskrytých si doplnite určitě lehce sami ' zbytek = ThisWorkbook.Sheets.Count - x - y ' stejně tak deklarace proměných, nepřekreslování obrazovky atd.

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

Pár kódu, které se hodí na práci při skrývání a zobrazování listů. Pokud něco chybí, potřebuje vylepšit, budu rád za nápady. Děkuji za pomoc, ať je článek prospěšný a pomáhá.

Článek byl aktualizován: 26.12.2018 11:26

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

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