|
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.
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:
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
xlSheetHidden
xlSheetVeryHidden
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ý, 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
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
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, ChartsFunguje 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
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
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 ;)
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.
Co jde s listy a v listech tvořit, jsem sepsal v samostatných článcích:
Soubor ke stažení zdarma v přípravě. Soubor využívá makra.
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: 19.09.2020 11:07
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.
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ů.
Můžete být prvními co zanechají smysluplný komentář.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
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 - 2021 |