Hoe een blad verbergen/tonen met vba?
U kunt VBA-code gebruiken om een blad in Excel te verbergen of weer te geven. Wanneer u met de rechtermuisknop op het bladtabblad klikt, ziet u de optie om het te verbergen of weer te geven, en hetzelfde kunt u doen met een VBA-code.
In dit artikel zullen we enkele manieren en methoden bekijken die we kunnen gebruiken.
VBA-code om een blad te verbergen
Stel dat u ‘Blad1’ wilt verbergen in de actieve werkmap. In dit geval moet u code als deze gebruiken.
Sheets("Sheet1").Visible = False
In de bovenstaande code heb je naar Sheet1 verwezen, de eigenschap zichtbaar gebruikt en deze gewijzigd in false.
Maak een blad heel verborgen
Er is nog een andere optie die u kunt gebruiken om een zeer verborgen blad te maken dat niet gemakkelijk door de gebruiker kan worden verborgen.
Verberg een blad op basis van de waarde van een cel
Oké, als je een celwaarde wilt gebruiken in plaats van rechtstreeks de bladnaam in de code te gebruiken, kun je naar deze cel verwijzen.
Sheets(Range("A1").Value).Visible = True
Deze code verwijst naar cel A1 en gebruikt de waarde daar om te verwijzen naar het blad dat u wilt verbergen.
Handige links: Een macro uitvoeren – Macrorecorder – Visual Basic Editor – Handboek voor persoonlijke macro’s
Controleer het blad voordat u het verbergt
U kunt ook een kleine code als deze gebruiken om het werkblad te controleren waarvan u de uitvoer wel of niet wilt verbergen.
Sub vba_hide_sheet() Dim sht As Worksheet For Each sht In ThisWorkbook.Worksheets If sht.Name = "Sheet1" Then sht.Visible = False Exit Sub End If Next sht MsgBox "Sheet not found", vbCritical, "Error" End Sub
De bovenstaande code gebruikt FOR EACH LOOP + IF STATEMENT om elk blad in de werkmap te doorlopen. En vink het blad aan dat u wilt verbergen.
Alle bladen verbergen (behalve ActiveSheet)
Nu is er één ding dat je moet begrijpen: je kunt niet alle bladeren verbergen. Er moet altijd één blad zichtbaar zijn.
Sub vba_hide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ActiveSheet.Name <> ws.Name Then ws.Visible = False End If Next ws End Sub
De bovenstaande code doorloopt alle bladen in de werkmap, vergelijkt vervolgens de naam van elk blad met de naam van het actieve blad en verbergt deze als deze niet overeenkomt.
VBA-code om een blad weer te geven
Om een blad weer te geven, moet u de eigenschap zichtbaar wijzigen in TRUE.
Sheets("Sheet1").Visible = False
Als het blad dat u wilt weergeven al zichtbaar is, geeft deze code geen fouten weer. Maar als dit blad niet bestaat, krijgt u een runtime-fout ‘9’.
Gebruik VBA om alle verborgen bladen weer te geven
Stel je voor dat je meerdere verborgen werkbladen in een werkmap hebt en als je ze handmatig wilt verbergen, moet je dat een voor een doen.
Maar hier is de code die dit in één keer doet.
Sub vba_unhide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ws.Visible = False Then ws.Visible = True End If Next ws End Sub
Hij doorzoekt elk blad en ontmaskert het.