Pada Kesempatan tutorial kali ini ini kita akan belajar membuat aplikasi penjualan dan stok barang di excel dengan bantuan ChatGPT. Langsung saja buka ChatGPT.com kemudian ketikkan perintah berikut ini:
Saya memiliki sheet Data Barang terdiri dari kolom Kode Barang, Nama Barang, Harga Barang, Harga Jual. lalu sheet Pembelian terdiri dari kolom Kode Barang, Nama Barang, Harga Barang, Harga Jual, Jumlah Barang. lalu sheet Penjualan terdiri dari kolom Kode Barang, Nama Barang, Harga Jual, Jumlah Barang, Total Harga. lalu sheet Stok Barang terdiri dari kolom Kode Barang, Nama Barang, Harga Beli, Harga Jual, Stok Akhir. Buatkan script VBA Excel untuk membuat UserForm untuk sheet Data Barang, Pembelian, Penjualan. untuk userform Pembelian, Nama Barang, Harga Barang, Harga Jual diambil otomatis dari sheet Data Barang berdasarkan Kode Barang. untuk userform Penjualan, Nama Barang, Harga Jual diambil otomatis dari sheet Data Barang berdasarkan Kode Barang. Untuk sheet Stok Barang berdasarkan Pembelian dikurangi Penjualan.
Dari perintah diatas akan menghasilkan seperti yang ada dibawah ini.
Berikut adalah skrip VBA untuk membuat UserForm yang sesuai dengan kebutuhan Anda. Skrip ini mencakup pembuatan UserForm untuk Data Barang, Pembelian, dan Penjualan. Data Nama Barang, Harga Barang, dan Harga Jual diambil secara otomatis dari sheet Data Barang berdasarkan Kode Barang yang dimasukkan.
- UserForm Data Barang:
vbaPrivate Sub cmdAddDataBarang_Click() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Data Barang") Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1 ws.Cells(lastRow, 1).Value = txtKodeBarang.Value ws.Cells(lastRow, 2).Value = txtNamaBarang.Value ws.Cells(lastRow, 3).Value = txtHargaBarang.Value ws.Cells(lastRow, 4).Value = txtHargaJual.Value MsgBox "Data Barang berhasil ditambahkan!" txtKodeBarang.Value = "" txtNamaBarang.Value = "" txtHargaBarang.Value = "" txtHargaJual.Value = "" End Sub
- UserForm Pembelian:
vbaPrivate Sub cmdAddPembelian_Click() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Pembelian") Dim dataWs As Worksheet Set dataWs = ThisWorkbook.Sheets("Data Barang") Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1 Dim kodeBarang As String kodeBarang = txtKodeBarangPembelian.Value Dim namaBarang As String Dim hargaBarang As Double Dim hargaJual As Double Dim dataLastRow As Long dataLastRow = dataWs.Cells(dataWs.Rows.Count, 1).End(xlUp).Row Dim i As Long For i = 2 To dataLastRow If dataWs.Cells(i, 1).Value = kodeBarang Then namaBarang = dataWs.Cells(i, 2).Value hargaBarang = dataWs.Cells(i, 3).Value hargaJual = dataWs.Cells(i, 4).Value Exit For End If Next i ws.Cells(lastRow, 1).Value = kodeBarang ws.Cells(lastRow, 2).Value = namaBarang ws.Cells(lastRow, 3).Value = hargaBarang ws.Cells(lastRow, 4).Value = hargaJual ws.Cells(lastRow, 5).Value = txtJumlahBarangPembelian.Value MsgBox "Pembelian berhasil ditambahkan!" txtKodeBarangPembelian.Value = "" txtJumlahBarangPembelian.Value = "" End Sub Private Sub txtKodeBarangPembelian_Change() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Data Barang") Dim kodeBarang As String kodeBarang = txtKodeBarangPembelian.Value Dim dataLastRow As Long dataLastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Dim i As Long For i = 2 To dataLastRow If ws.Cells(i, 1).Value = kodeBarang Then lblNamaBarangPembelian.Caption = ws.Cells(i, 2).Value lblHargaBarangPembelian.Caption = ws.Cells(i, 3).Value lblHargaJualPembelian.Caption = ws.Cells(i, 4).Value Exit For End If Next i End Sub
- UserForm Penjualan:
vbaPrivate Sub cmdAddPenjualan_Click() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Penjualan") Dim dataWs As Worksheet Set dataWs = ThisWorkbook.Sheets("Data Barang") Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1 Dim kodeBarang As String kodeBarang = txtKodeBarangPenjualan.Value Dim namaBarang As String Dim hargaJual As Double Dim dataLastRow As Long dataLastRow = dataWs.Cells(dataWs.Rows.Count, 1).End(xlUp).Row Dim i As Long For i = 2 To dataLastRow If dataWs.Cells(i, 1).Value = kodeBarang Then namaBarang = dataWs.Cells(i, 2).Value hargaJual = dataWs.Cells(i, 4).Value Exit For End If Next i ws.Cells(lastRow, 1).Value = kodeBarang ws.Cells(lastRow, 2).Value = namaBarang ws.Cells(lastRow, 3).Value = hargaJual ws.Cells(lastRow, 4).Value = txtJumlahBarangPenjualan.Value ws.Cells(lastRow, 5).Value = txtJumlahBarangPenjualan.Value * hargaJual MsgBox "Penjualan berhasil ditambahkan!" txtKodeBarangPenjualan.Value = "" txtJumlahBarangPenjualan.Value = "" End Sub Private Sub txtKodeBarangPenjualan_Change() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Data Barang") Dim kodeBarang As String kodeBarang = txtKodeBarangPenjualan.Value Dim dataLastRow As Long dataLastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Dim i As Long For i = 2 To dataLastRow If ws.Cells(i, 1).Value = kodeBarang Then lblNamaBarangPenjualan.Caption = ws.Cells(i, 2).Value lblHargaJualPenjualan.Caption = ws.Cells(i, 4).Value Exit For End If Next i End Sub
- Menghitung Stok Barang:
vbaSub UpdateStokBarang() Dim dataWs As Worksheet Set dataWs = ThisWorkbook.Sheets("Data Barang") Dim pembelianWs As Worksheet Set pembelianWs = ThisWorkbook.Sheets("Pembelian") Dim penjualanWs As Worksheet Set penjualanWs = ThisWorkbook.Sheets("Penjualan") Dim stokWs As Worksheet Set stokWs = ThisWorkbook.Sheets("Stok Barang") Dim lastDataRow As Long lastDataRow = dataWs.Cells(dataWs.Rows.Count, 1).End(xlUp).Row Dim lastPembelianRow As Long lastPembelianRow = pembelianWs.Cells(pembelianWs.Rows.Count, 1).End(xlUp).Row Dim lastPenjualanRow As Long lastPenjualanRow = penjualanWs.Cells(penjualanWs.Rows.Count, 1).End(xlUp).Row Dim i As Long, j As Long, k As Long For i = 2 To lastDataRow Dim kodeBarang As String kodeBarang = dataWs.Cells(i, 1).Value Dim namaBarang As String namaBarang = dataWs.Cells(i, 2).Value Dim hargaBeli As Double hargaBeli = dataWs.Cells(i, 3).Value Dim hargaJual As Double hargaJual = dataWs.Cells(i, 4).Value Dim jumlahBeli As Long jumlahBeli = 0 For j = 2 To lastPembelianRow If pembelianWs.Cells(j, 1).Value = kodeBarang Then jumlahBeli = jumlahBeli + pembelianWs.Cells(j, 5).Value End If Next j Dim jumlahJual As Long jumlahJual = 0 For k = 2 To lastPenjualanRow If penjualanWs.Cells(k, 1).Value = kodeBarang Then jumlahJual = jumlahJual + penjualanWs.Cells(k, 4).Value End If Next k Dim stokAkhir As Long stokAkhir = jumlahBeli - jumlahJual Dim stokLastRow As Long stokLastRow = stokWs.Cells(stokWs.Rows.Count, 1).End(xlUp).Row + 1 stokWs.Cells(stokLastRow, 1).Value = kodeBarang stokWs.Cells(stokLastRow, 2).Value = namaBarang stokWs.Cells(stokLastRow, 3).Value = hargaBeli stokWs.Cells(stokLastRow, 4).Value = hargaJual stokWs.Cells(stokLastRow, 5).Value = stokAkhir Next i MsgBox "Stok Barang berhasil diperbarui!" End Sub
Untuk menggunakan skrip di atas, ikuti langkah-langkah berikut:
- Buka Excel dan tekan
ALT + F11
untuk membuka editor VBA. - Klik kanan pada
VBAProject (Nama File Anda)
dan pilihInsert > UserForm
. - Tambahkan kontrol (TextBox, Label, CommandButton) sesuai kebutuhan pada masing-masing UserForm.
- Salin dan tempelkan kode masing-masing UserForm ke dalam modul UserForm yang sesuai.
- Buat modul baru untuk kode
UpdateStokBarang
dan jalankan subrutin ini setelah setiap pembelian atau penjualan untuk memperbarui stok.
0 komentar:
Posting Komentar