Kode VBA Menyembunyikan dan Menampilkan Sheet

Seperti banyak yang sudah diketahui bahwa sebuah sheet (lembar kerja) dalam excel dapat disembunyikan maupun ditampilkan dengan cara meng-klik kanan sheet kemudian pilih perintah hide atau unhide.
Tentunya urusan menyembunyikan atau menampilkan sebuah sheet dapat dengan mudah dilakukan dengan cara seperti di atas.

Namun, bagaimana jika ingin menyembunyikan atau menampilkannya dilakukan dengan menggunakan kode VBA ?

Kode untuk menyembunyikan sheet
Sheets("Sheet1").Visible = False

kode untuk menampilkan sheet
Sheets("Sheet1").Visible = True
Kode-kode di atas berfungsi untuk menyembunyikan dan atau menampilkan Sheet1 saja. Jika ingin menggunakannya untuk sheet-sheet yang lain - ganti nama Sheet1 dalam kode tersebut.

TextBox Hanya Dapat Diisi Dengan Angka (Fixed)

Tutorial kali ini merupakan perbaikan dari tutorial sebelumnya atau mungkin bisa juga dijadikan sebagai alternatif dalam menjadikan TextBox hanya dapat diisi dengan angka saja.

Konsepnya dari tutorial ini adalah pengguna hanya dapat mengentry nilai dari 0 sampai dengan 9, dengan menggunakan kode sederhana dalam sebuah prosedur KeyPress untuk TextBox
Untuk dapat melakukannya, saya berasumsi dalam UserForm Anda terdapat sebuah TetBox dengan nama TextBox1.
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
   Case Asc("0") To Asc("9")
   Case Else
     KeyAscii = 0
End Select
End Sub
Kode diatas akan memaksa pengguna untuk mengentry angka atau karakter mulai dari 0 sampai dengan 9

Jika ingin menyertakan simbol mata uang dalam textbox secara otomatis, maka tambahkan kode berikut
Private Sub TextBox1_Change()
   TextBox1 = Format(TextBox1, "Rp #,###")
End Sub
Artinya, setiap kali pengguna mengentry sebuah angka maka akan secara otomatis menampilkan sebuah simbol mata uang (Rp) didepannya.

Cara Menampilkan Letak File Di Status Bar

Secara default tampilan status bar dari Microsoft Excel tampak seperti gambar berikut :
default status bar
Akan tetapi mungkin sebagian pengguna excel ingin menggantinya dengan sebuah informasi letak dari file dokumen excel yang sedang aktif di buka. Seperti tampilan berikut :
User custom status bar

untuk melakukan ini tinggal paste kode-kode berikut di ThisWorkbook
Private Sub Workbook_Activate()
Application.StatusBar = Application.ActiveWorkbook.Path
End Sub
Kode ini akan secara otomatis menampilkan informasi letak file ketika workbook dibuka atau diaktifkan

Private Sub Workbook_Deactivate()
Application.StatusBar = False
End Sub
Kode ini akan secara otomatis mengembalikan status bar sesuai dengan aslinya

Menampilkan Gambar Photo Dalam Database Excel

Pernah suatu hari saya diberi sebuah masukan oleh beberapa rekan kerja mengenai sebuah database siswa yang saya buat dengan excel tidak lengkap lantaran tanpa disertai photo dari siswa itu sendiri. Awalnya saya berpikir hal itu tidak mungkin dilakukan, terlebih jika memakai Aplikasi Excel – karena aplikasi ini hanya dibuat untuk mengentry database saja.

Pertanyaan sekaligus permintaan tersebut membuat saya tertantang untuk mencoba serta mencari tahu tentang apakah Excel bisa melakukan ini…. Dari yang saya dapat dari googling, akhirnya saya mendapat beberapa module dan kode VBA untuk menginsert gambar dengan menggunakan bantuan macro. Kemudian, saya menemui kendala lagi – bagaimana jika ini digunakan dalam database yang memiliki banyak data.

Setelah beberapa hari berikutnya saya mencoba untuk bereksperimen dan memodifikasi serta menambahkan beberapa Kode serta module yang saya dapatkan dari internet tersebut agar bisa digunakan dalam database yang saya miliki.

Dan, sekarang saya share kepada anda yang barangkali sedang mencari cara bagaimana menampilkan gambar foto ke dalam database excel, dari hasil tutorial ini akan menghasilkan sebuah database yang terlihat seperti gambar berikut :

Menampilkan photo dalam database excel

Memulai Mengetry Database
Sebagai latihan dalam tutorial ini, masukkan database seperti berikut dan letakkan di Sheet1 :
database untuk menampilkan gambar dalam excel
Menggunakan Fungsi VLOOKUP
Fungsi ini dibutuhkan untuk memanggil data dalam database Masukkan formula VLOOKUP berikut di sel F2
=VLOOKUP(E2;A2:B8;2;0)
Untuk sementara hasil yang didapatkan dari formula ini adalah #N/A hal ini disebabkan tidak adanya sebuah nilai yang dijadikan pedoman, jika anda ingin menghilangkan pesan error bisa anda tambahkan fungsi IFERROR dalam serangkaian kode diatas.
Design Bingkai Photo
Bukan hanya aplikasi sekelas Corel atau Adobe saja yang bisa digunakan untuk design, excel-pun juga bisa…
Berikut langkah membuat desain sederhana  :
  1. Aktifkan dan pilih Menu Tab Developer jika belum klik disini untuk melihat cara menampilkannya
  2. Buat 2 buah Image dengan cara klik Insert > Image (ActiveX Control)
  3. membuat desain aplikasi sederhana di excel
  4. Untuk Image1 (biarkan (name)nya asli seperti itu saja)
  5. Kemudian klik kanan dan pilih properties
    properties image1
    pada bagian PictureSizeMode pilih 3 - fmPictureSizeModeZoom
    Artinya, gambar yang akan kita insert nanti akan dimaksimalkan ukurannya sesuai dengan ukuran frame dari Image1.
  6. Untuk Image2 (biarkan juga (name) seperti aslinya)
  7. Klik klik kanan Image2 dan pilih properties
    properties image2
    pada bagian Picture (None) anda klik tanda (…) untuk mencari gambar yang akan ditempelkan di Image2.
    Kemudian pada bagian Visible rubah menjadi False Gambar ini nantinya akan digunakan jika data belum atau tidak memiliki Photo, dan Image2 ini kita sembunyikan (Visible=False) karena hanya sebagai acuan saja dan bukan sebagai gambar utama.

Saya harap sampai dengan langkah ini, anda bisa mengikutinya..
Menambahkan Tombol Untuk Mencari dan Mengambil Gambar
Masih dalam menu Tab Developer, Tambahkan 2 buah tombol di lembar kerja anda antara lain :
  • Command Button (ActiveX Control)
  1. klik menu Insert > Command Button (ActiveX Control)
  2. letakkan di lembar kerja
  3. jika anda ingin me-rename tombol ini klik kanan > properties Pada bagian Caption ubah nama sesuai dengan yang anda inginkan
  4. Membuat tmobol command button di lembar kerja
  • Spin Button (ActiveX Control)
  1. klik menu Insert > Spin Button (ActiveX Control)
  2. letakkan di lembar kerja
  3. Membuat spin button di lembar kerja

Desain sudah selesai, sekarang tinggal memasukkan kode untuk beberapa tombol yang sudah kita buat
Memasang Kode untuk Mengambil Gambar
Sebelum anda memasukkan kode-kode untuk masing-masing tombol, pastikan icon DESIGN MODE yang terdapat pada Tab Developer dalam keadaan aktif (menyala) sehingga ketika klik ganda objek control – maka akan langsung menuju jendela Microsoft Visual Basic
Berikut kode yang harus anda pasang:
  • Klik ganda CommandButton1 (atau sesuai dengan nama yang anda ketikkan pada langkah sebelumnya)
  • On Error Resume Next
    Dim Filter As String, Title As String, FileX As String
    Dim SourceFile, DestinationFile

    X.SetFocus
    Filter = "JPG Image Files Only(*.jpg),*.jpg,"
    Title = "Silahkan Pilih Logo" FileX = Application.GetOpenFilename(Filter, , Title)
    NamaFile = Range("F2")

    Sheets("sheets1").Image1.Picture = LoadPicture(FileX)
    Image1.Picture = LoadPicture(FileX)

    DestinationFile = ActiveWorkbook.Path & "\Photo\" & NamaFile & ".jpg"
    FileCopy FileX, DestinationFile

    Keterangan:
    Filter = "JPG Image Files … : adalah gambar yang diperbolehkan untuk di masukkan ke dalam database
    NamaFile = Range(“F2") : adalah nama dari file gambar yang nantinya akan tersimpan dalam komputer anda, nama file ini berdasarkan dari data yang tertulis di sel F2
    \Photo\ : adalah nama folder tempat menyimpan file gambar, dengan kata lain anda WAJIB membuat sebuah folder dengan nama Photo ditempat anda menyimpan hasil kerjaan excel ini.

    Tutup atau minimize jendela Microsoft Visual Basic untuk kembali ke jendela Microsoft Excel
  • klik ganda SpinButton1
  • On Error GoTo GbKosong
    SpinButton1.Min = 1
    SpinButton1.Max = 7
    Range("E2") = SpinButton1

    Application.ScreenUpdating = False
    NamaData = Range("F2")
    Files = ActiveWorkbook.Path & "\Photo\" & NamaData & ".jpg" '
    Image1.Picture = LoadPicture(Files)
    Application.ScreenUpdating = True

    Exit Sub
    GbKosong:
    Image1.Picture = Image2.Picture

    Keterangan :
    SpinButton1.Min = Data minimal dari database yang di baca
    SpinButton1.Max = Data tertinggi dari sebuah database, dalam contoh di atas nilai tertinggi adalah 7
Finishing
Langkah akhir dari semua pekerjaan adalah dengan melakukan proses menyimpan. Untuk penyimpanan file ini gunakan excel dengan type Macro enabled.

Teks Berkedip (blink) Excel

Microsoft Excel bukanlah merupakan aplikasi animasi yang bisa membuat tampilan berbagai macam efek, termasuk membuat efek teks berkedip. Pada intinya dalam membuat efek berkedip (blink) pada Microsoft Excel hanyalah merubah warna teks itu sendiri secara simultan dan bergantian dalam hitungan sekian detik.

Yang perlu dilakukan dalam membuat efek seperti ini adalah sebuah module yang berfungsi untuk menjalankan sebuah procedur. Langkah awal tentunya adalah dengan membuka Aplikasi Microsoft Excel itu sendiri, kemudian buat sebuah dokumen baru atau buka dokumen excel anda. selanjutnya buka jendela Microsoft Visual Basic.
Membuat Module Berkedip salah satu langkah untuk membuat sebuah module baru adalah dengan cara klik Insert > Module.
paste kode berikut dalam module baru dibuat :
Public RunWhen As Double

Sub Berkedip()
With ThisWorkbook.Worksheets("Sheet1").Range("A1").Font
If .ColorIndex = 5 Then ' Warna biru
.ColorIndex = 2 ' Warna putih
Else
If .ColorIndex = 2 Then ' Warna hijau
.ColorIndex = 3 ' Warna merah
Else
.ColorIndex = 5 ' Warna biru
End If
End If
End With

RunWhen = Now + TimeSerial(0, 0, 1)
Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!Berkedip", , True
End Sub

Sub Berhenti()
On Error Resume Next
ThisWorkbook.Worksheets("Sheet1").Range("A1").Font.ColorIndex = xlColorIndexAutomatic
Application.OnTime RunWhen, "'" & ThisWorkbook.Name & "'!Berkedip", , False
End Sub

Keterangan :
  • Teks yang akan berkedip terletak pada Sheet1 dan sel A1
  • Worksheets("Sheet1").Range("A1")
  • Module ini akan merubah teks menjadi warna merah - biru - putih secara simultan
  • ColorIndex = 5 ...
  • perubahan warna teks akan terjadi setiap hitungan 1 detik
  • TimeSerial(0, 0, 1)

Panduan ColorIndex dalam Microsoft Excel

Kode untuk menjalankan efek berkedip
Masih dalam jendela Microsoft Visual Basic, paste kode-kode berikut pada ThisWorkbook
Private Sub Workbook_Activate()
Berkedip
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Berhenti
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Berhenti
End Sub

Langkah terakhir adalah Ketikkan teks pada Sheet1 sel A1,
kemudian simpan file anda dengan type Excel Macro-Enable Workbook.
Hasil dari efek ini bisa terlihat ketika file ini dibuka atau file ini diaktifkan, dan akan secara otomatis berhenti ketika file tertutup.