Cara Membuat Nota di Excel – Bagi pelaku usaha kecil dan menengah (UMKM), cara membuat nota di Excel yang otomatis dan efisien sangat penting untuk mempercepat transaksi dan menghindari kesalahan. Artikel ini akan membahas cara membuat nota di Excel menggunakan VBA (Visual Basic for Applications), termasuk fitur-fitur unggulan seperti:
- Dropdown list nama barang yang dinamis dan tidak menampilkan barang yang sudah dipilih.
- Barang dengan stok 0 tidak akan muncul di dropdown list.
- Stok barang otomatis berkurang setiap kali terjadi transaksi.
- Fitur cetak nota langsung dari Excel.
- Simpan nota dalam format PDF secara otomatis.
Dengan tutorial ini, Anda tidak perlu software mahal—cukup Excel dan sedikit sentuhan VBA!
Struktur Data yang Dibutuhkan
Sebelum mulai membuat VBA, berikut struktur sheet yang digunakan untuk cara membuat nota di Excel ini:
1. Sheet DataBarang
- Kolom B (mulai B3): Nama Barang
- Kolom C (mulai C3): Harga Satuan
- Kolom D (mulai D3): Jumlah Stok
2. Sheet NotaPenjualan
- Kolom B7:B16: Nomor Urut. Gunakan rumus
=IF(ISBLANK(C7);"";ROW(A1))
. - Kolom C7:C16: Input Nama Barang. Ini akan muncul dropdown list otomatis
- Kolom D7:D16: Jumlah Beli
- Kolom E7:E16: Harga Satuan. Gunakan rumus:
=IFERROR(INDEX(DataBarang!$C$3:$C$12; MATCH(C7; DataBarang!$B$3:$B$12; 0));"")
- Kolom F7:F16: Jumlah. Gunakan rumus:
=IF(ISBLANK(D7);"";D7*E7)
Catatan: Jangan lupa untuk menyalin rumus-rumus di atas ke sel-sel yang ada di bawahnya agar semua kolom otomatis mengkalkulasi hasilnya.
Script VBA: Dropdown List Dinamis Otomatis
Script ini akan menampilkan dropdown list nama barang berdasarkan data di sheet DataBarang
, menyembunyikan barang yang sudah dipilih, dan mengabaikan barang dengan stok 0, yang akan menjadi nilai lebih dari cara membuat nota di Excel ini:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim daftarBarang As Range, cell As Range
Dim listBarang() As String
Dim sudahDipilih As Collection
Dim i As Long
Dim stok As Double
Dim wsData As Worksheet
On Error GoTo ExitHandler
If Sh.Name = "NotaPenjualan" Then
If Not Intersect(Target, Sh.Range("C7:C16")) Is Nothing And Target.Cells.Count = 1 Then
Set wsData = ThisWorkbook.Sheets("DataBarang")
Set daftarBarang = wsData.Range("B3:B100")
Set sudahDipilih = New Collection
' Ambil barang yang sudah dipilih
For Each cell In Sh.Range("C7:C16")
If cell.Value <> "" And cell.Address <> Target.Address Then
On Error Resume Next
sudahDipilih.Add cell.Value, CStr(cell.Value)
On Error GoTo 0
End If
Next cell
' Filter daftar barang
ReDim listBarang(0)
i = 0
For Each cell In daftarBarang
If cell.Value <> "" Then
stok = wsData.Cells(cell.Row, "D").Value
On Error Resume Next
sudahDipilih.Item CStr(cell.Value)
If Err.Number <> 0 And stok > 0 Then
ReDim Preserve listBarang(i)
listBarang(i) = cell.Value
i = i + 1
End If
Err.Clear
On Error GoTo 0
End If
Next cell
With Target.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=Join(listBarang, ",")
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
End If
End If
ExitHandler:
Exit Sub
End Sub
Cara Memasang VBA Ini
Berikut adalah langkah-langkah memasang VBA untuk cara membuat nota di Excel ini:
- Tekan
Alt + F11
untuk masuk ke Editor VBA. - Di ThisWorkbook, tempelkan kode di atas.
- Simpan workbook sebagai Excel Macro-Enabled Workbook (*.xlsm).
Penjelasan Singkat Script VBA
Secara singkat, VBA ini dapat dijelaaskan sebagai berikut:
If Sh.Name = "NotaPenjualan"
. Script hanya aktif di sheet bernama NotaPenjualan.Intersect(Target, Sh.Range("C7:C16"))
. Aktif jika sel yang diklik berada di kolom C7 sampai C16 (kolom Nama Barang).Set daftarBarang = wsData.Range("B3:B100")
. Mengambil daftar nama barang dari sheet DataBarang, kolom B baris 3 ke bawah.sudahDipilih.Add cell.Value
. Mengumpulkan barang yang sudah dipilih di baris C7:C16 agar tidak muncul lagi.stok = wsData.Cells(cell.Row, "D").Value
. Mengambil nilai stok dari kolom D pada baris yang sama.If Err.Number <> 0 And stok > 0 Then
. Barang hanya ditambahkan ke dropdown jika belum dipilih dan stoknya lebih dari 0.Target.Validation.Add ...
. Membuat dropdown list di sel yang aktif (Target) dengan barang yang lolos filter.
Script Cetak dan Simpan PDF Nota
Dua script berikut membuat tombol terpisah untuk mencetak dan menyimpan nota sebagai PDF:
Sub CetakNotaSaja()
Dim ws As Worksheet
Dim lastRow As Long
Dim rngCetak As Range
Set ws = ThisWorkbook.Sheets("NotaPenjualan")
lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row
If lastRow < 7 Then lastRow = 7
Set rngCetak = ws.Range("A1:G" & lastRow)
rngCetak.PrintOut
End Sub
Sub SimpanPDF()
Dim ws As Worksheet
Dim lastRow As Long
Dim namaFile As String
Dim folderPath As String
Dim noInvoice As String
Dim rngCetak As Range
Set ws = ThisWorkbook.Sheets("NotaPenjualan")
lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row
If lastRow < 7 Then lastRow = 7
Set rngCetak = ws.Range("A1:G" & lastRow)
noInvoice = ws.Range("A1").Value
folderPath = ThisWorkbook.Path & "\PDFNota\"
If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath
namaFile = folderPath & "Nota_" & noInvoice & ".pdf"
rngCetak.ExportAsFixedFormat Type:=xlTypePDF, Filename:=namaFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
Cara Memasang VBA Ini
Berikut langkah-langkah untuk memasang Script Cetak dan Simpan PDF Nota:
- Tekan
Alt + F11
→ buka VBA Editor. - Klik kanan pada project →
Insert > Module
dan tempelkan kode di atas - Pasang Tombol
- Aktifkan tab Developer.
- Klik Insert > Button (Form Control).
- Gambar tombol di sheet
NotaPenjualan
. - Pilih macro
CetakNotaSaja
atauSimpanPDF
. - Buat 2 tombol: satu untuk cetak, satu untuk simpan PDF.
Dengan fitur ini, kamu bisa mencetak dan menyimpan nota secara cepat langsung dari Excel. Sangat cocok sebagai bagian dari cara membuat nota di Excel yang efisien dan profesional. Berikut tampilannya:
Fitur-Fitur yang Ada di Nota Excel Ini
Berikut fitur yang membuat nota ini sangat bermanfaat bagi pelaku UMKM:
- Dropdown barang dinamis: hanya menampilkan barang yang belum dipilih dan stoknya masih tersedia.
- Stok otomatis berkurang: dapat dikombinasikan dengan script pengurangan stok (opsional).
- Cetak nota sekali klik melalui tombol cetak.
- Simpan PDF otomatis: nama file disesuaikan dengan nomor invoice.
- Bisa digunakan di Excel versi lama karena hanya menggunakan VBA, tanpa Power Query atau Office Script.
Penutup
Itulah panduan lengkap cara membuat nota di Excel dengan fitur lengkap berbasis VBA. Dengan mengikuti tutorial ini, Anda tidak hanya menghemat waktu dalam membuat nota, tetapi juga menciptakan sistem penjualan sederhana yang efisien dan profesional.
Semoga artikel cara membuat nota di Excel ini membantu Anda meningkatkan produktivitas dalam mengelola transaksi harian. Jangan lupa untuk menyimpan file Anda sebagai .xlsm
dan mengaktifkan macro saat membuka workbook.
Jika kamu ingin menambahkan fitur lain seperti total otomatis, diskon, atau bahkan integrasi ke laporan bulanan, silakan tinggalkan komentar!
Download Template Gratis
Bagi Anda yang ingin mencoba teknik ini secara langsung, kami telah menyiapkan template gratis yang dirancang khusus untuk membantu Anda mempraktikkan Cara Membuat Nota di Excel Otomatis dengan VBA ini. File Excel bisa didownload melalui tautan berikut:
Atau juga jika ingin mempelajari langkah demi langkah secara visual, bisa kunjungi Youtube Channel Depot Excel. Di sana teman-teman akan melihat bagaimana rumusnya bekerja. Semoga bermanfaat!
0 Komentar