Di sini saya merangkum beberapa kode VBA Macro Excel yang sering digunakan. Hal ini sengaja saya tampilkan untuk memudahkan pencarian dan penggunaan kode Macro tersebut.
Menyembunyikan dan Menampilkan Tombol
Sub Rectangle1_Click() If Sheets("Sheet1").Range("C2") = 2 Then ActiveSheet.Shapes("picture").Visible = xlhiden End If If Sheets("Sheet1").Range("C2") = 1 Then ActiveSheet.Shapes("picture").Visible = True End If End Sub
Menyembunyikan dan Menampilkan Gambar
Sub Rectangle4_Click() If Sheets("Sheet1").Range("C9") = 2 Then ActiveSheet.Shapes("picture 2").Visible = xlhiden End If If Sheets("Sheet1").Range("C9") = 1 Then ActiveSheet.Shapes("picture 2").Visible = True End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Static oldRange As Range Dim nRow As Integer, nCol As Integer If Not oldRange Is Nothing Then nRow = oldRange.Row nCol = oldRange.Column If nRow > 1 Then 'Menampilkan nomor urut otomatis. If Len(Cells(nRow, 2).Value) > 0 Then Cells(nRow, 1).Formula = "=COUNTA($B$2:B" & nRow & ")" Else: Cells(nRow, 1).Value = "" End If End If End If Set oldRange = Target End Sub
Sub Auto_Open()
Sheets("Sheet1").Range("A1") = "copyright by :"
Sheets("Sheet1").Range("A2") = "https://baladaka.blogspot.com"
If Sheets("Sheet1").Range("D1") <> "djamaludin" Then
MsgBox "Maaf....Anda telah menghapus / mengganti nama website saya, sehingga file ini akan langsung ditutup", vbInformation, "https://baladaka.blogspot.com"
ThisWorkbook.Close
Exit Sub
ElseIf Sheets("Sheet1").Range("F1") <> "https://baladaka.blogspot.com" Then
MsgBox "Maaf....Anda telah menghapus / mengganti nama website saya, sehingga file ini akan langsung ditutup", vbInformation, " https://baladaka.blogspot.com"
ThisWorkbook.Close
Exit Sub
ElseIf Sheets("Sheet2").Range("A1") <> "Jampang Manggung" Then
MsgBox "Maaf....Anda telah menghapus / mengganti nama website kami, sehingga file ini akan langsung ditutup", vbInformation, "https://baladaka.blogspot.com"
ThisWorkbook.Close
Exit Sub
End If
End Sub
'Perintah Hapus Data Dengan menampilkan pesan pilihan
Sub HapusData_Click() If MsgBox("Apakah anda yakin akan menghapus data ?", vbYesNo, "Hapus Data") = vbNo Then Exit Sub Sheets("INPUT").Range("B2:B16").ClearContents Sheets("INPUT").Range("D2:D16").ClearContents Sheets("INPUT").Range("data").ClearContents MsgBox ("Data berhasil dikosongkan"), vbInformation, "https://baladaka.blogspot.com" Exit Sub End Sub
'Perintah Hapus Data tanpa menampilkan pesan pilihan.
Sub HapusData2_Click() Sheets("INPUT").Range("N2:O16").ClearContents MsgBox ("Data berhasil dikosongkan"), vbInformation, "https://baladaka.blogspot.com" Exit Sub End Sub
Menyembunyikan Sheet pada saat file di tutup
Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheets("Home").Select Call Proteksi End Sub Sub Proteksi() Sheets("Sheet1").Visible = xlSheetVeryHidden Sheets("Sheet2").Visible = xlSheetVeryHidden Sheets("Sheet3").Visible = xlSheetVeryHidden End Sub
Menampilkan Sheet pada saat file di buka
Private Sub Workbook_Open() Sheets("Sheet1").Visible = xlSheetVisible Sheets("Sheet2").Visible = xlSheetVisible Sheets("Sheet3").Visible = xlSheetVisible End Sub
'Menampilkan Pilihan Jenis Printer Sub JenisPrint() Application.Dialogs(xlDialogPrinterSetup).Show End Sub
'Menampilkan Print Preview Sub PrintPreview() ActiveSheet.PrintPreview End Sub
'Print Langsung Sub PrintLangsung() ActiveSheet.PrintOut End Sub
'Pilihan print sheet dengan jumlah print Sub PrintBanyak() formPrint1.Show End Sub
'Pilihan print sheet tanpa jumlah print Sub PrintBanyak2() formPrint2.Show End Sub
'Print Area Tertentu Sub cetakareatertentu_Click() Worksheets("Sheet2").PageSetup.PrintArea = "$B2:$H25" Worksheets("Sheet2").PrintOut Copies:=1, Collate:=True End Sub
Private Sub Workbook_Open()
JumlahBuka = GetSetting("baladaka26", "Demo", "JumlahBuka", 0) + 1
If JumlahBuka > 3 Then
MsgBox "Mohon Maaf Sobat...!!!, Masa Aktif aplikasi ini sudah habis. File akan langsung dihapus permanen." & vbCrLf _
& "Untuk mendapat Full Version, silahkan " _
& " konfirmasi melalui SMS", vbCritical, "https://baladaka.blogspot.com"
With ThisWorkbook
.Saved = True
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
End If
SaveSetting "baladaka26", "Demo", "JumlahBuka", JumlahBuka
End Sub
Private Sub Workbook_Open()
JumlahBuka = GetSetting("baladaka72", "Demo", "JumlahBuka", 0) + 1
If JumlahBuka > 3 Then
MsgBox "Mohon Maaf Sobat...!!!, Masa Aktif aplikasi ini sudah habis. File akan segera ditutup." & vbCrLf _
& "Untuk mendapat Full Version, silahkan " _
& " konfirmasi melalui SMS", vbCritical, "https://baladaka.blogspot.com"
Application.DisplayAlerts = False
Application.Quit
End If
SaveSetting "baladaka72", "Demo", "JumlahBuka", JumlahBuka
End Sub
1. Menempatkan tanggal pada Cell D6 'forms yang digunakan fmdCalender 'Nama Calender nya yaitu Calender1 Option Explicit Private Sub cmdclose_Click() Unload Me End Sub Private Sub UserForm_Initialize() If IsDate(ActiveCell.Value) Then Calender1.Value = DateValue(ActiveCell.Value) Else Calender1.Value = Date End If End Sub 'Perintah Ini untuk menempatkan posisi tanggal pada cell D6 Private Sub Calender1_Click() Range("D6").Value = Calender1.Value Unload Me End Sub
2. Menempatkan tanggal pada posisi data tanggal terakhir 'forms yang digunakan formCalender 'Nama Calender nya yaitu Calender2 Option Explicit Private Sub cmdclose_Click() Unload Me End Sub Private Sub UserForm_Initialize() If IsDate(ActiveCell.Value) Then Calender2.Value = DateValue(ActiveCell.Value) Else Calender2.Value = Date End If End Sub 'Perintah Ini untuk menempatkan posisi data tanggal terakhir Private Sub Calender2_Click() Dim iRow As Integer Dim Ws As Worksheet iRow = ActiveSheet.Cells(Rows.Count, 2) _ .End(xlUp).Offset(1, 0).Row ActiveSheet.Cells(iRow, 2).Value = Me.Calender2.Value Calender2.Value = Calender2.Value Unload Me End Sub
3. Menempatkan tanggal pada posisi tanggal pada cell/kursor yang aktif 'forms yang digunakan frmCalender 'Nama Calender nya yaitu Calender3 Option Explicit Private Sub cmdclose_Click() Unload Me End Sub Private Sub UserForm_Initialize() If IsDate(ActiveCell.Value) Then Calender3.Value = DateValue(ActiveCell.Value) Else Calender3.Value = Date End If End Sub 'Perintah Ini untuk menempatkan posisi tanggal pada cell/kursor yang aktif Private Sub Calender3_Click() ActiveCell.Value = Calender3.Value Unload Me End Sub
Sub pindahkan_data()
Worksheets("SPP").Select
Worksheets("SPP").Range("saat_ini").Select
Application.CutCopyMode = False
Sheets("SPP").Range("saat_ini").Copy
Sheets("SPP").Range("F14").PasteSpecial xlPasteValues
'Menghapus Data
Sheets("SPP").Range("sekarang").ClearContents
'Menampilkan Pesan
MsgBox "Data Sudah di Pindahkan... by baladaka.blogspot.com"
End Sub
Sub PindahDataKasUmum()
Dim terima, keluar As String
Dim BarisTerakhir, BarisTujuan As Integer
With Worksheets("Kas Umum")
terima = .Cells(18, 11).Value
keluar = .Cells(18, 12).Value
End With
'Memindahkan Data
With Worksheets("Kas Umum")
BarisTerakhir = .Cells(.Rows.Count, 1).End(xlUp).Row
BarisTujuan = BarisTerakhir + 1
.Cells(6, 11).Value = terima
.Cells(6, 12).Value = keluar
'Menghapus Data
Sheets("Kas Umum").Range("B7:B16").ClearContents
Sheets("Kas Umum").Range("J7:M16").ClearContents
'Menampilkan Pesan
MsgBox "Data Sudah di Pindahkan... by https://baladaka.blogspot.com"
End With
End Sub
'Adapun perintah untuk menampilkan data yang disembunyikan :
Sub Unfilter_Tampilkan()
ActiveSheet.Range("$A$16:$A$93" ).AutoFilter Field:=1
End Sub
Sub Filter_Sembunyikan()
ActiveSheet.Range("$A$16:$A$93" ).AutoFilter Field:=1, Criteria1:="<>"
End Sub
'Adapun perintah untuk menampilkan data yang disembunyikan :
Sub Unfilter_Tampilkan()
ActiveSheet.Range("$A$16:$A$93" ).AutoFilter Field:=1
End Sub
Public Function Terbilang(x As Currency)
Dim triliun As Currency
Dim milyar As Currency
Dim juta As Currency
Dim ribu As Currency
Dim satu As Currency
Dim sen As Currency
Dim baca As String
If x > 1000000000000# Then
Terbilang = "https://baladaka.blogspot.com !!!"
Exit Function
End If
If x < 0 Then
x = Int(x * -1)
End If
'Jika x adalah 0, maka dibaca sebagai 0
If x = 0 Then
baca = angka(0, 1)
Else
'Pisah masing-masing bagian untuk triliun, milyar, juta, ribu, rupiah, dan sen
triliun = Int(x * 0.001 ^ 4)
milyar = Int((x - triliun * 1000 ^ 4) * 0.001 ^ 3)
juta = Int((x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3) / 1000 ^ 2)
ribu = Int((x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2) / 1000)
satu = Int(x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2 - ribu * 1000)
sen = Int((x - Int(x)) * 100)
'Baca bagian triliun dan ditambah akhiran triliun
If triliun > 0 Then
baca = ratus(triliun, 5) + "triliun "
End If
'Baca bagian milyar dan ditambah akhiran milyar
If milyar > 0 Then
baca = ratus(milyar, 4) + "milyar "
End If
'Baca bagian juta dan ditambah akhiran juta
If juta > 0 Then
baca = baca + ratus(juta, 3) + "juta "
End If
'Baca bagian ribu dan ditambah akhiran ribu
If ribu > 1 Then
baca = baca + ratus(ribu, 2) + "ribu "
End If
If ribu = 1 Then
baca = baca + "seribu "
End If
'Baca bagian rupiah dan ditambah akhiran rupiah
If satu > 0 Then
baca = baca + ratus(satu, 1)
End If
'Baca bagian sen dan ditambah akhiran sen
If sen >= 0 Then
baca = baca & ratus(sen, 0) + ""
End If
If x >= 1 Then
baca = baca + "rupiah "
End If
End If
Terbilang = UCase(Left(baca, 1)) & LCase(Mid(baca, 2))
End Function
Function ratus(x As Currency, Posisi As Integer) As String
Dim a100 As Integer, a10 As Integer, a1 As Integer
Dim baca As String
a100 = Int(x * 0.01)
a10 = Int((x - a100 * 100) * 0.1)
a1 = Int(x - a100 * 100 - a10 * 10)
'Baca Bagian Ratus
If a100 = 1 Then
baca = "Seratus "
Else
If a100 > 0 Then
baca = angka(a100, Posisi) + "ratus "
End If
End If
'Baca Bagian Puluh dan Satuan
If a10 = 1 Then
baca = baca + angka(a10 * 10 + a1, Posisi)
Else
If a10 > 0 Then
baca = baca + angka(a10, Posisi) + "puluh "
End If
If a1 > 0 Then
baca = baca + angka(a1, Posisi)
End If
End If
ratus = baca
End Function
Function angka(x As Integer, Posisi As Integer)
Select Case x
Case 0: angka = "Nihil"
Case 1: angka = "Satu "
Case 2: angka = "Dua "
Case 3: angka = "Tiga "
Case 4: angka = "Empat "
Case 5: angka = "Lima "
Case 6: angka = "Enam "
Case 7: angka = "Tujuh "
Case 8: angka = "Delapan "
Case 9: angka = "Sembilan "
Case 10: angka = "Sepuluh "
Case 11: angka = "Sebelas "
Case 12: angka = "Dua belas "
Case 13: angka = "Tiga belas "
Case 14: angka = "Empat belas "
Case 15: angka = "Lima belas "
Case 16: angka = "Enam belas "
Case 17: angka = "Tujuh belas "
Case 18: angka = "Delapan belas "
Case 19: angka = "Sembilan belas "
End Select
End Function
Public Function Terbilang(x As Currency)
Dim triliun As Currency
Dim milyar As Currency
Dim juta As Currency
Dim ribu As Currency
Dim satu As Currency
Dim sen As Currency
Dim baca As String
If x > 1000000000000# Then
Terbilang = "https://baladaka.blogspot.com !!!"
Exit Function
End If
If x < 0 Then
x = Int(x * -1)
End If
'Jika x adalah 0, maka dibaca sebagai 0
If x = 0 Then
baca = angka(0, 1)
Else
'Pisah masing-masing bagian untuk triliun, milyar, juta, ribu, rupiah, dan sen
triliun = Int(x * 0.001 ^ 4)
milyar = Int((x - triliun * 1000 ^ 4) * 0.001 ^ 3)
juta = Int((x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3) / 1000 ^ 2)
ribu = Int((x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2) / 1000)
satu = Int(x - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2 - ribu * 1000)
sen = Int((x - Int(x)) * 100)
'Baca bagian triliun dan ditambah akhiran triliun
If triliun > 0 Then
baca = ratus(triliun, 5) + "triliun "
End If
'Baca bagian milyar dan ditambah akhiran milyar
If milyar > 0 Then
baca = ratus(milyar, 4) + "milyar "
End If
'Baca bagian juta dan ditambah akhiran juta
If juta > 0 Then
baca = baca + ratus(juta, 3) + "juta "
End If
'Baca bagian ribu dan ditambah akhiran ribu
If ribu > 1 Then
baca = baca + ratus(ribu, 2) + "ribu "
End If
If ribu = 1 Then
baca = baca + "seribu "
End If
'Baca bagian rupiah dan ditambah akhiran rupiah
If satu > 0 Then
baca = baca + ratus(satu, 1)
End If
'Baca bagian sen dan ditambah akhiran sen
If sen >= 0 Then
baca = baca & ratus(sen, 0) + ""
End If
If x >= 1 Then
baca = baca + "rupiah "
End If
End If
Terbilang = UCase(Left(baca, 1)) & LCase(Mid(baca, 2))
End Function
Function ratus(x As Currency, Posisi As Integer) As String
Dim a100 As Integer, a10 As Integer, a1 As Integer
Dim baca As String
a100 = Int(x * 0.01)
a10 = Int((x - a100 * 100) * 0.1)
a1 = Int(x - a100 * 100 - a10 * 10)
'Baca Bagian Ratus
If a100 = 1 Then
baca = "Seratus "
Else
If a100 > 0 Then
baca = angka(a100, Posisi) + "ratus "
End If
End If
'Baca Bagian Puluh dan Satuan
If a10 = 1 Then
baca = baca + angka(a10 * 10 + a1, Posisi)
Else
If a10 > 0 Then
baca = baca + angka(a10, Posisi) + "puluh "
End If
If a1 > 0 Then
baca = baca + angka(a1, Posisi)
End If
End If
ratus = baca
End Function
Function angka(x As Integer, Posisi As Integer)
Select Case x
Case 0: angka = "Nihil"
Case 1: angka = "Satu "
Case 2: angka = "Dua "
Case 3: angka = "Tiga "
Case 4: angka = "Empat "
Case 5: angka = "Lima "
Case 6: angka = "Enam "
Case 7: angka = "Tujuh "
Case 8: angka = "Delapan "
Case 9: angka = "Sembilan "
Case 10: angka = "Sepuluh "
Case 11: angka = "Sebelas "
Case 12: angka = "Dua belas "
Case 13: angka = "Tiga belas "
Case 14: angka = "Empat belas "
Case 15: angka = "Lima belas "
Case 16: angka = "Enam belas "
Case 17: angka = "Tujuh belas "
Case 18: angka = "Delapan belas "
Case 19: angka = "Sembilan belas "
End Select
End Function
Public Function Terbilang(a As Currency)
Dim triliun As Currency
Dim milyar As Currency
Dim juta As Currency
Dim ribu As Currency
Dim satu As Currency
Dim Sen As Currency
Dim baca As String
If a > 1000000000000# Then
Terbilang = "< Silahkan input nilai dibawah satu triliun rupiah >"
Exit Function
End If
'Jika a = 0, maka dibaca 0
If a = 0 Then
baca = angka(0, 1)
Else
'bilangan triliun, milyar, juta, ribu, rupiah, dan sen
triliun = Int(a * 0.001 ^ 4)
milyar = Int((a - triliun * 1000 ^ 4) * 0.001 ^ 3)
juta = Int((a - triliun * 1000 ^ 4 - milyar * 1000 ^ 3) / 1000 ^ 2)
ribu = Int((a - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2) / 1000)
satu = Int(a - triliun * 1000 ^ 4 - milyar * 1000 ^ 3 - juta * 1000 ^ 2 - ribu * 1000)
Sen = Int((a - Int(a)) * 100)
'membuat bilangan triliun
If triliun > 0 Then
baca = ratus(triliun, 5) + "triliun "
End If
'membuat bilangan milyar
If milyar > 0 Then
baca = ratus(milyar, 4) + "milyar "
End If
'membuat bilangan juta
If juta > 0 Then
baca = baca + ratus(juta, 3) + "juta "
End If
'membuat bilangan ribu
If ribu > 0 Then
baca = baca + ratus(ribu, 2) + "ribu "
End If
'membuat bilangan rupiah
If satu > 0 Then
baca = baca + ratus(satu, 1) + ""
Else
baca = baca + ""
End If
'membuat bilangan sen
If Sen > 0 Then
baca = baca + ratus(Sen, 0) + "sen "
End If
End If
Terbilang = UCase(Left(baca, 1)) & LCase(Mid(baca, 2))
End Function
Function ratus(a As Currency, Posisi As Integer) As String
Dim a100 As Integer, a10 As Integer, a1 As Integer
Dim baca As String
a100 = Int(a * 0.01)
a10 = Int((a - a100 * 100) * 0.1)
a1 = Int(a - a100 * 100 - a10 * 10)
'Spesifikasi Ratus
If a100 = 1 Then
baca = "Seratus "
Else
If a100 > 0 Then
baca = angka(a100, Posisi) + "ratus "
End If
End If
'Spesifikasi Puluhan dan Satuan
If a10 = 1 Then
baca = baca + angka(a10 * 10 + a1, Posisi)
Else
If a10 > 0 Then
baca = baca + angka(a10, Posisi) + "puluh "
End If
If a1 > 0 Then
baca = baca + angka(a1, Posisi)
End If
End If
ratus = baca
End Function
Function angka(a As Integer, Posisi As Integer)
Select Case a
Case 0: angka = "Nol"
Case 1:
If Posisi <= 1 Or Posisi > 2 Then
angka = "Satu "
Else
angka = "Se"
End If
Case 2: angka = "Dua "
Case 3: angka = "Tiga "
Case 4: angka = "Empat "
Case 5: angka = "Lima "
Case 6: angka = "Enam "
Case 7: angka = "Tujuh "
Case 8: angka = "Delapan "
Case 9: angka = "Sembilan "
Case 10: angka = "Sepuluh "
Case 11: angka = "Sebelas "
Case 12: angka = "Dua belas "
Case 13: angka = "Tiga belas "
Case 14: angka = "Empat belas "
Case 15: angka = "Lima belas "
Case 16: angka = "Enam belas "
Case 17: angka = "Tujuh belas "
Case 18: angka = "Delapan belas "
Case 19: angka = "Sembilan belas "
End Select
End Function
terima kasih sangat membantu sekali kepada saya yang baru tertarik belajar micro vba. dan mohon share juga kode untuk menghapus foto dalam sheet karena saya coba pakai kode diatas yang terhapus hanya data didalamnya saja sedangkan foto tetap tidak terhapus. trm kasih
BalasHapus