Senin, 16 Maret 2015

Teknik Menyembunyikan Banyak Sheet Sekaligus dan Menampilkannya

Ketika Contoh Aplikasi Raport yang Sudah Jadi diluncurkan, banyak email masuk ke saya yang menanyakan bagaimana caranya agar yang tampil dilayar hanya satu sheet saja sebagaimana tampilan pada file Raport tersebut. Nah, agar mempermudah memberikan penjelasan, posting kali ini membahas hal tersebut.

Dalam VBA, “Penampakan” (visiblity) suatu sheet dalam sebuah workbook ada tiga jenis:
  1. xlSheetVisible : Sheet tampil sebagaimana biasa. Kodenya adalah (-1)
  2. xlSheetHidden: Sheet di-hide disembunyikan dengan cara biasa. Untuk menampilkannya cukup dengan klik kanan sebuah sheet, kemudian pilih Unhide. Kodenya adalah (0)
  3. xlSheetVeryHidden : Menyembunyikan sheet dengan cara ini, menyebabkan sheet tidak bisa ditampilkan denga cara biasa, walaupun sebuah nama sheet di-klik kanan, tulisan Unhide tidak muncul. Untuk menampilkannya harus masuk ke VBA Editor, kemudian mengubah properti visible-nya menjadi xlSheetVisible, atau melalui kode makro. Kodenya adalah (2)

Kode macro terkait dengan "penampakan" sheet ini adalah:
Sheets("NamaSheet").Visible = kode
Contoh, untuk menyembunyikan "Sheet1" :
Sheets("Sheet1").Visible = 2
atau
Sheets("Sheet1").Visible = xlSheetVeryHidden
Untuk menampilkannya kembali :
Sheets("Sheet1").Visible = -1
atau
Sheets("Sheet1").Visible = xlSheetVisible

Bagaimana cara menyembunyikan banyak sheet sekaligus?


Untuk menyembunyikan beberapa sheet dalam satu klik saja, maka langkah makro-nya adalah sbb:
1. Tampilkan terlebih dahulu sheet yang akan ditampakkan
2. Semua sheet selain yang ditampakkan disembunyikan dengan prosedur LOOPING.
Misal kita ingin menampilkan "Sheet2" saja, padahal kita punya 20 Sheet. Kode makronya kira-kira begini:

Sub TampilkanSheet2()
Dim sh As Worksheet
'Menampilkan "Sheet2" terlebih dahulu
Sheets("Sheet2").Visible = -1

'Sembunyikan selain "Sheet2" dengan LOOPING For Each
For Each sh in ThisWorkbook.Worksheets
If sh.Name <>"Sheet2" Then
sh.Visible = 2
End If
Next sh

End Sub

Kode makro LOOPING di atas, akan mengecek nama semua sheet. Jika nama sheet bukan "Sheet2", maka sheet tersebut akan disembunyikan.

Agar nama sheet yang ingin ditampilkan bisa diubah-ubah, maka kita membuat Private Sub terlebih dahulu, baru memanggil Private Sub tersebut. Contoh

Private Sub SembunyikanSemuaSheetKecualiAku(NamaSheet As String)
Dim sh As Worksheet
Sheets(NamaSheet).Visible = 1

For Each sh in ThisWorkbook.Worksheets
If sh.Name <> NamaSheet Then
sh.Visible = 2
End If
Next sh
End Sub

Sehingga jika kita ingin menyembunyikan semua sheet kecuali "Sheet2", maka tinggal memanggil Private Sub tadi dengan:
Call SembunyikanSemuaSheetKecualiAku "Sheet2"

Bagaimana cara menampilkan semua sheet sekaligus?
Untuk menampilkan semua sheet sekaligus, sangat mudah yakni:

Sub TampilkanSemuaSheet()
Dim sh As Worksheet
For Each sh in ThisWorkbook.Worksheets
sh.Visible = -1
Next sh
End Sub

Kiranya cukup sekian dulu.

Sumber : http://excelheru.blogspot.com/2012/01/teknik-menyembunyikan-banyak-sheet.html

Tidak ada komentar:

Posting Komentar