Jumat, 13 Januari 2012

Teknik Menyembunyikan Banyak Sheet Sekaligus dan Menampilkannya

Setelah Contoh Aplikasi Raport yang Sudah Jadi dirilis, saya menerima banyak email dari pembaca yang bertanya bagaimana caranya agar hanya satu sheet yang tampil di layar, seperti yang terlihat pada tampilan file raport tersebut. Untuk mempermudah penjelasannya, posting kali ini akan membahas cara mengatur tampilan sheet di Excel menggunakan VBA.

Jenis "Penampakan" (Visibility) Sheet dalam VBA

Dalam VBA, "penampakan" (visibility) suatu sheet memiliki tiga jenis:

  1. xlSheetVisible
    Sheet tampil seperti biasa. Kode VBA: -1
  2. xlSheetHidden
    Sheet disembunyikan biasa. Bisa dimunculkan kembali melalui klik kanan > Unhide. Kode VBA: 0
  3. xlSheetVeryHidden
    Sheet disembunyikan khusus dan tidak bisa dimunculkan lewat Unhide. Harus melalui VBA Editor. Kode VBA: 2

Contoh Kode VBA untuk Mengatur Penampakan Sheet

Menyembunyikan Sheet1 dengan metode Very Hidden:

Sheets("Sheet1").Visible = 2
' atau:
Sheets("Sheet1").Visible = xlSheetVeryHidden

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, ikuti langkah-langkah berikut:

  1. Tampilkan terlebih dahulu sheet yang akan ditampilkan.
  2. Semua sheet selain yang ditampilkan disembunyikan menggunakan prosedur looping.

Misalnya, hanya ingin menampilkan "Sheet2" dari total 20 sheet:

Sub TampilkanSheet2()
    Dim sh As Worksheet
    Sheets("Sheet2").Visible = -1
    For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> "Sheet2" Then
            sh.Visible = xlSheetVeryHidden
        End If
    Next sh
End Sub

Bagaimana Jika Nama Sheet yang Ditampilkan Berubah-ubah?

Buat prosedur VBA yang menerima nama sheet sebagai parameter:

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 = xlSheetVeryHidden
        End If
    Next sh
End Sub

Untuk menampilkan hanya Sheet2:

Call SembunyikanSemuaSheetKecualiAku("Sheet2")

Bagaimana Cara Menampilkan Semua Sheet Sekaligus?

Gunakan makro berikut:

Sub TampilkanSemuaSheet()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        sh.Visible = xlSheetVisible
    Next sh
End Sub

Kode ini akan menampilkan semua sheet, termasuk yang disembunyikan dengan metode Very Hidden.

Download Contoh File

File contoh bisa diunduh di sini

18 komentar:

  1. Mas,gmana pula membatasi kolom dan baris sehingga tak bisa digeser lagi...hanya area tertentu saja.

    BalasHapus
  2. ass...mas heru..saya belajar mencoba kode yang diatas, namun link yang udah saya buat..setelah sheet di sembunyikan ...tidak berfungsi...mohon pencerahannya....
    ini alamat email saya
    == effendi.dmth@gmail.com ==

    BalasHapus



  3. maaf mas mau tanya, nama saya rachmad,kalo kita buat forminput trus sheet masih terprotect, apa data bisa terinput, makasi mas

    BalasHapus
  4. Ya harus di-Unprotect terlebih dahulu
    Sheets("aaaa").Unprotect "passwornya"
    kalau tidak dipassword:
    Sheets("aaaaa").Unprotect

    BalasHapus
  5. Assalamualaikum Mas Heru .... Setelah saya coba code dari Mas Heru,sudah berhasil meng-hiden beberapa sheet, tapi yang terjadi link-nya gak berfungsi. Mohon bantuan dan ilmunya. Wassalam. dari "kangmunirdemak@gmail.com"

    BalasHapus
  6. @t:effendi
    gampang---
    carannya link tersebut ganti dengan macro diatas tapi jangan ambil semua cukup macro yg pertama aja...terus buat shape dan masukkan macro itu--maka shape itu sdh jd pengganti hyperlink...untuk lebih jelas silahkan berimajinasi yahhh...

    BalasHapus
  7. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  8. assalam mas heru..
    jika saya mempunyai 3 sheet (a,b dan b), dan 3 sheet tersebut mempunyi hyperlink (sheeet a ada hyperlink ke sheet b, dan sebaliknya)jika saya tekan tombol hyperlink pd sheet a maka masuk ke sheet b dan sheet a dan c terhiden begitu juga sebaliknya jika hyperlink pada sheet a saya klik maka sheet b dan c terhiden...bagaimana cara menyelesaikan kasus tersebut mas heru..syukron..

    BalasHapus
  9. assalamu'alaikum...
    Mas Heru, alhamdulillah banyak ilmu yg sy dapat dr blog mas heru ini...very very very thank you mas heru...
    tapi..., mi' pening tang cetak nikah ka', caranah lo' bise e praktekkin bi buleh...
    memanggil hyperlink sheet yang disembunyikan... sama keluhannya ama mas effendi.., sy punya file buat penilaian guru, tp pas di hide gak bisa terbuka menggunakan hyperlink.
    kalo boleh diajarin caranya yg lebih detail mas..., maklum nih... newbie banget soal excel.
    thanks banget nih mas heru, smoga Allah selalu memberikan kesehatan ama mas heru

    dari
    Ijall
    Kota Tangerang

    BalasHapus
  10. Hade... susah amid caranya. Ya rada gampangan dikit ada nggak?

    BalasHapus
  11. Cukup menarik saya may coba.
    Ini sang at bermanfaat asap mau berlatih.
    Trims.buat pengarang...!

    BalasHapus
  12. Ampun suhu..badan meriang nih. Susye bener penjelasannya

    BalasHapus
  13. Ampun suhu..badan meriang nih. Susye bener penjelasannya

    BalasHapus
  14. 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

    dari code macro di atas... di antara 20 sheets, sheet 2 yang ditampilkan dan yang lainnya terhidden..jika kita ingin sheet 1 dan sheet 2 ditampilkan,,,bagaimana code macronya..makasih...

    BalasHapus
  15. Mas mau tanya dong..?
    kalo saya punya 10 sheets, sheets 1 mau ditampilkan yang lainnya hiden
    tp di sheet 1 ada menu link ke sheets 2 dan sheets 3
    jika dipilih menu 1 maka keluar sheets 2 saja dan menu
    jika dipilih menu 2 maka keluar sheets 3 saja dan menu

    nah kodingnya gmn mas?
    mohon batuannya

    terima kasih

    BalasHapus
  16. Hedeeeehhhh ... susah amit mo donlot contoh file nya ....

    BalasHapus