Penjualan
dengan Macro Excel
Yudhy Wicaksono & Solusi Kantor
Membuat Aplikasi Penjualan dengan Macro Excel
Sanksi Pelanggaran Pasal 113
Undang-Undang Nomor 28 Tahun 2014
tentang Hak Cipta
1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran hak ekonomi
sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf i untuk Penggunaan
Secara Komersial dipidana dengan pidana penjara paling lama 1 (satu) tahun
dan/ atau pidana denda paling banyak Rp100.000.000 (seratus juta rupiah).
2. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau
pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta
sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf c, huruf d, huruf f, dan/
atau huruf h untuk Penggunaan Secara Komersial dipidana dengan pidana
penjara paling lama 3 (tiga) tahun dan/atau pidana denda paling banyak
Rp500.000.000,00 (lima ratus juta rupiah).
3. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau
pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta
sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf a, huruf b, huruf e, dan/
atau huruf g untuk Penggunaan Secara Komersial dipidana dengan pidana
penjara paling lama 4 (empat) tahun dan/ atau pidana denda paling banyak
Rp1.000.000.000,00 (satu miliar rupiah).
4. Setiap Orang yang memenuhi unsur sebagaimana dimaksud pada ayat (3)
yang dilakukan dalam bentuk pembajakan, dipidana dengan pidana penjara
paling lama 10 (sepuluh) tahun dan/atau pidana denda paling banyak
Rp4.000.000.000,00 (empat miliar rupiah).
Ko.Mp.\.s GR.
Membuat Aplikasi Penjualan dengan Macro Excel
Yudhy Wicaksono & Solusi Kantor
0 2017, PT Elex Media Komputindo, Jakarta
Hak cipta dilindungi undang-undang
Diterbitkan pertama kali oleh
Penerbit PT Elex Media Komputindo
Kelompok Gramedia, Anggota IKAPI, Jakarta 2017
717050310
ISBN: 978-602-04-0144-7
[eEp]
KATA PENGANTAR
Yudhy
Wicaksono yudhy
wicakson02000@yahoo.com
www.solusi-kantor.com
vi
DAFTAR ISI
KATA PENGANTAR
DAFTAR ISI
BAB
1
Penggunaan
Menonaktifl<an
vii
1.10 Operator VBA ..........
28
1 . 10. 1 Operator Aritmatika. ..........
28
1 . 10.2 Operator Perbandingan ... .. .. ......
29
1 . 10.3 Operator Teks ..........
29
1 . 10.4 Operator Referensi ... ... ... ... ..
...... 30
1 . 10.5 Operator Logika..................
...... 30 1 . 11
Variabel ...... 30
ı . 12 Konstanta ... .. ... ..
31 ı . 13 Array ......
32 14 Tipe Data ......
33 ı . 15 Bekerja dengan Nama Range ...
......35
1 . 15. 1 Membuat Nama Range Melalui Name Box .. ... .. ......35
1 . 15.2 Membuat Nama Range Melalui Kotak Dialog Create
Names form Selection .......... 36
1 . 15.3 Membuat Nama Range Melalui Kotak dialog New
Name ... ......37
1 . 15.4 Edit Nama Range ..........39
1 . 15.5 Menghapus Nama Range
1 . 15.6 Membuat Nama Range Dinamis
ı . 16 Pengaturan Setting Regional Komputer.........
MENAMBAH İNTERAKTIVITAS MACRO 49
2. 1 Kotak Pesan (Message Box)...............................
................49
2.1.1 Membuat Kotak Pesan ............................... ......51
2.1.2 Nilai Kotak Pesan ...... 53
2.2 Kotak Input (Input Box) ...................... ......
55
2.3 Built İn Kotak Dialog . ......
58
2.4 OserForm . ... ..
60
2.4. 1 ToolBox ................ 60
2.4.2 Menambahkan Kontrol................. ......
62
2.4.3 Mengubah Okuran dan Posisi Kontrol........... ........
63
2.4.4 Menyalin Kontrol ......
65
2.4.5 Menghapus Kontrol ......
66
2.4.6 Membuat Kotak Dialog..
...... 66
2.4.7Ekspor Kotak Dialog . .. ...... 72
2.4.8Impor Kotak Dialog . ... ..
74
2.5 ActiveX Controls .... ...
76
2.5. ı Pengaturan Keamanan ActiveX Controls .. .. .. ................ 77
2.5.2 Menambahkan Kontrol . ... ..
78
2.5.3 Kotak Dialog Forrnat Control .. .. ... ... ... ..
79
2.5.4 Memasukkan Nilai SpinButton ke TextBox ... ................
82
2.6 Form Control dan Shape .... .. .. ... ...
84
viii
MENYIAPKAN WORKSHEET APLIKASI 89
3.1 Worksheet TabelBantu ..
90
3.2 Worksheet DatabaseBarang . ..
93
3.3 Worksheet DatabasePemasok
.. 97
3.4 Worksheet DatabasePelanggan ..
100
3.5 Worksheet HeaderPembelian ..
103
3.6 Worksheet DetailPembelian ..
106
3.7 Worksheet HeaderPenjualan ..
109
3.8 Worksheet DetailPenjualan .. 1
12
3.9 Worksheet PembayaranHutang 1
14
3.10 Worksheet PenerimaanPiutang. 1
17
BAB 4 MEMB(.IAT FORM APLIKASI
121
4.1 Membuat Form Barang ..
121
4.2 Membuat Form Pemasok. ..
146
4.3 Membuat Form Pelanggan.
162
4.4 Membuat Form Cari Barang.
178
4.5 Membuat Form Cari Pemasok
185
4.6 Membuat Form Transaksi Pembelian
191
4.7 Membuat Form Cari Pelanggan
218
4.8 Membuat Form Transaksi Penjualan
224
4.9 Membuat Form Kasir
256
4.10 Membuat Form Pembayaran Hutang
...273
4.1 1 Membuat Form Penerimaan Piutang
...286
4.12 Membuat Form Cetak
...299
4.13 Membuat Form Cetak Barang
...303
4.14 Membuat Form Cetak Pemasok.
...308
4.15 Membuat Form Cetak Pelanggan .
...312
4.16 Membuat Form Cetak Pembelian .
...316
4.17 Membuat Form Cetak Penjualan
...329
MEMB(.IAT TAMPILAN (ITAMA APLIKASI
339 5.1 Desain Tampilan Otama Aplikasi ..
339
5.2 Menambahkan Macro ..
343
5.3 Menambahkan Tombol Kelompok Database. ..
345
5.4 Menambahkan Tombol Kelompok Fitur ..
349
5.5 Proteksi Aplikasi Penjualan .
.. 352
5.5.1 Proteksi Worksheet .. 352
5.5.2 Proteksi Macro .. 354
PENGG(.INAAN APLIKASI PENJ(.IALAN
357
6.1 Menggunakan Form Barang 357
6.1.1 Input Data Barang 357
6.1.2 Pencarian Barang 361
6.1.3 Edit dan Hapus Record Data
363
6.2 Menggunakan Form Pemasok 364
6.2.1 Input Data Pemasok 365
6.2.2 Pencarian Pemasok 368
6.2.3 Edit dan Hapus Record Data 370
6.3 Menggunakan Form Pelanggan 371
6.3.1 Input Data Pelanggan 371
6.3.2 Pencarian Pelanggan 375
6.3.3 Edit dan Hapus Record Data 377
6.4 Menggunakan Form Transaksi Pembelian 378
6.5 Menggunakan Form Transaksi Penjualan 385
6.6 Menggunakan Form Kasir
389
6.7 Menggunakan Form Pembayaran Hutang 391
6.8 Menggunakan Form Penerimaan Piutang 394
6.9 Menggunakan Form Cetak Barang 396
6.10 Menggunakan Form Cetak Pemasok 398
6.11 Menggunakan Form Cetak Pelanggan 399
6.12 Menggunakan Form Cetak Pembelian 400
6.13 Menggunakan Form Cetak Penjualan 402
TENTANG PENOLIS 405
MENGENAL MACRO
EXCEL
DAN MENGOPTIMALKANNYA
Visual Basic for Application (VBA) atau biasa dikenal dengan istilah
Macro, merupakan pengembangan bahasa pemrograman Visual Basic
yang diterapkan dalam aplikasi Excel. Berbeda dengan program
pengembang Visual Basic, pemrograman yang dibuat menggunakan
Macro hanya dapat dibangun dan digunakan pada aplikasi Excel.
Program yang dibuat menggunakan Macro tidak dapat berjalan,
sebelum Anda menjalankan Excel terlebih dahulu. Pemrograman
Macro Excel mempunyai beberapa keuntungan sebagai berikut:
> Menghemat waktu. Penyelesaian pekerjaan menggunakan Macro
lebih cepat dibandingkan dengan cara manual, karena prosesnya
dikerjakan secara otomatis.
> Menghemat tenaga. Selain menghemat waktu, penyelesaian
pekerjaan menggunakan Macro juga dapat menghemat tenaga.
> Mengurangi tingkat kesalahan. Kemungkinan adanya kesalahan
dalam menyelesaikan pekerjaan secara manual dapat saja terjadi,
meskipun Anda seorang yang sangat ahli dalam menggunakan
Excel. Penyelesaian pekerjaan menggunakan Macro secara
1
konsisten akan menyelesaikan suatu pekerjaan berdasarkan
perintah yang tertulis dalam kode Macro sehingga tingkat
kesalahan yang mungkin timbul sangat kecil. Kesalahan hanya
dapat terjadi jika ada kesalahan perintah pada kode Macro.
1.1 Penggunaan Fitur Macro
Sebelum menggunakan fitur Macro, Anda harus menampilkan tab
Developer dalam Ribbon terlebih dahulu. Berikut langkah-langkah
untuk mengaktifkan tab Developer:
1. Ontuk pengguna Excel 2007, klik Office Button kemudian pilih
Excel Options. Muncul kotak dialog Excel Options.
3
5. Pilih Main Tabs pada kotak pilihan Customize the Ribbon: Beri
tanda contreng tab Developer dalam daftar di sebelah kanan.
Klik tombol OK.
New folder
5
Gambar 1.6 Kotak dialog Save As.
1.3 Menonaktifkan Penyimpanan Workbook
Otomatis
Excel menyediakan fitur yang digunakan untuk menyimpan workbook
secara otomatis setiap interval waktu tertentu. Cara ini memang
sangat bermanfaat untuk menghindari kejadian yang tidak diinginkan,
misalnya listrik yang tiba-tiba padam. Namun demikian, penyimpanan
secara otomatis dalam bentuk workbook backup tidak mendukung
fitur Macro sehingga terkadang malah menyebabkan error. Oleh
karena itu, untuk sementara fitur tersebut kita non-aktifl<an.
1. Bagi pengguna Excel 2007 klik Office Button kemudian pilih Excel
Options. Ontuk pengguna Excel 2010 klik tab File kemudian pilih
menu Options. Muncul kotak dialog Excel Options.
2. Pilih opsi Save kemudian hilangkan tanda contreng pada pilihan
Save AutoRecover information every. Jika sudah, klik tombol OK.
6
1.4 Keamanan Macro
Otomatisasi Macro Excel terkadang disalahgunakan oleh pengguna
yang tidak bertanggung jawab untuk menyebarkan kode Macro yang
berpotensi menimbulkan kerugian, misalnya kode Macro untuk
menghapus data. Ontuk mengantisipasi hal tersebut, Excel secara
default memberi peringatan jika pengguna membuka workbook berisi
Macro. Excel 2007 secara otomatis akan menon-aktifkan Macro saat
workbook yang berisi Macro pertama kali dibuka. Muncul peringatan
keamanan seperti terlihat pada Gambar 1.8.
7
Gambar 1.9 Kotak dialog Microsoft Office Security Options.
8
Disable all macros without notification. Apabila opsi ini dipilih,
Macro dalam workbook tidak akan dijalankan ketika dibuka.
Disable all macros with notification. Apabila opsi ini dipilih, Excel
akan menampilkan informasi peringatan ketika Anda membuka
workbook yang berisi Macro. Dijalankan atau tidaknya Macro
selanjutnya tergantung pada pilihan Anda.
Disable all macros except digitally signed macros. Jika opsi ini
dipilih, Macro dalam workbook tidak akan dijalankan ketika
dibuka, kecuali untuk Macro yang disimpan dalam folder
terpercaya, yang sudah ditentukan. Folder terpercaya dapat kita
masukkan, kita ubah atau kita hapus melalui kotak dialog Trust
Center opsi Trusted Locations.
Enabled all macros (not recommended; potentially dangerous code
can run). Apabila opsi ini dipilih, Macro yang ada dalam workbook
akan selalu dijalankan, tanpa melalui informasi peringatan. Opsi ini
tidak direkomendasikan, terutama untuk macro dalam workbook
yang tidak Anda kenal, karena berpotensi menimbulkan kerugian.
Jika Anda tetap memilih opsi ini, beri tanda contreng pada pilihan
Trust access to the VBA project object model. Ontuk
memperlancar dalam pembuatan aplikasi yang dibahas dalam
buku, untuk sementara pilih opsi ini.
9
Gambar 1.12 Kotak dialog Trust Center.
10
Gambar 1.13 Tampilan Visual Basic Editor.
12
Properties - UserFormI Properties - UserFormI
Alphabeåc I Categonzed I
E
Left E (Name)
13
Gambar 1.17 Tampilan Window Code.
Toolbox
14
Gambar 1.19 Tampilan Object Browser.
Italic
Gambar 1.20 Menggunakan fasilitas pencarian.
2. Klik tombol Search atau tekan tombol Enter pada keyboard. Hasil
pencarian kemudian ditampilkan seperti terlihat pada Gambar
1.21.
15
Gambar 1.21 Tampilan hasil pencarian.
3. Klik salah satu item hasil pencarian yang Anda inginkan, misalnya
pilih properti Italic pada Library Excel dan Class Font. Informasi
properti yang Anda pilih akan ditampilkan di bagian pojok kiri
bawah Object Browser.
4. dntuk mengcopy properti yang Anda pilih klik tombol Copy to
Clipboard h . Tekan kombinasi Ctrl+V untuk menyalin properti
yang sudah Anda copy.
Object Browser menggunakan ikon yang berbeda untuk
memudahkan Anda dalam membedakan objek, properti, method
atau event. Berikut ikon yang digunakan Object Browser untuk
membedakan objek, properti, method atau event:
ikon objek.
ikon properti.
ikon event.
ikon method.
ikon predifened constant, yaitu konstanta yang secara default
sudah disediakan. Konstanta untuk VBA diawali dengan prefiks vb,
misalnya vbYes. dntuk Excel, konstanta diawali dengan prefiks xl,
misalnya xlChart.
Apabila toolbar Edit belum ditampilkan, pilih menu Yiew > Toolbar >
Edit untuk menampilkan toolbar Edit.
17
Gambar 1.23 Menampilkan toolbar Edit.
18
1.6.3 Fitur Auto List Members
Saat menuliskan kode Macro, Anda dapat memanfaatkan fitur Auto
List Members yaitu fitur yang akan menampilkan daftar objek, koleksi
objek, properti atau method yang dimiliki sebuah objek. Dengan
menggunakan fitur Auto List Members, kesalahan penulisan objek,
koleksi objek, properti ataupun method dapat diminimalkan. VBA
secara default mengaktifl<an fitur Auto List Members. Apabila tidak
aktif, Anda dapat mengaktifl<annya melalui kotak dialog Options.
Berikut langkah-langkah pengaturan fitur Auto List Members:
1. Pilih menu 1001s > Qptions... kemudian muncul kotak dialog
Options. Pilih tab Editor.
19
Gambar 1.25 Tampilan fitur Auto List Members.
20
properti atau method. VBA secara default
mengaktifl<an fitur Auto Quick Info. Apabila
tidak aktif, Anda dapat mengaktifl<annya
melalui kotak dialog Options tab Editor pilihan
Auto Quick Info.
(General)
Sub TarohahSheets ( )
Sheets . Add
[Aftetj, [Couno, [Type]) As
Object
End Sub
Gambar 1.27 Informasi yang ditampilkan Auto Quick
Info.
21
o Size. Pada kotak pilihan Size: Anda dapat mengatur ukuran
font elemen kode Macro pada daftar pilihan yang tersedia.
o Margin Indicator Bar. Beri tanda contreng pada pilihan ini
untuk menampilkan indikator visual saat debugging Macro.
1.7 Objek
Objek merupakan komponen dalam Macro yang mempunyai properti
dan method sehingga dapat diubah atau dimanipulasi. Suatu objek
dapat berupa satu objek atau kumpulan dari beberapa objek (koleksi
objek). Sebuah koleksi juga merupakan objek sehingga mempunyai
properti dan method yang dapat diubah (dimanipulasi). Objek dalam
Macro mempunyai tingkatan dari yang paling umum sampai
tingkatan yang paling khusus. Excel merupakan Objek yang paling
umum (Application) yang mempunyai tingkatan Objek dibawahnya
sebagai koleksi Objek, misalnya Workbook, WorksheetFunction dan
koleksi Objek lainnya.
Saat menuliskan kode Macro, Objek dan koleksi Objek dipisahkan
menggunakan tanda titik (.). Ontuk kondisi tertentu, Anda dapat
menuliskan Objek tanpa perlu menyebutkan Objek tingkatan di
atasnya, misalnya kode Macro untuk menyeleksi worksheet Data
sebagai berikut:
22
Sheets( "Data II
) . Select
1.8 Properti
Properti merupakan karateristik yang dimiliki Objek. Seperti halnya
benda yang memiliki beberapa identitas, suatu Objek juga memiliki
beberapa properti yang menunjukkan identitas Objek tersebut.
Apabila suatu benda memiliki identitas panjang, lebar, tebal, warna
dan identitas lainnya, maka Objek VBA memiliki beberapa properti
yang menunjukkan identitas misalnya Name, Height, Width,
BackColor atau Caption. Pengaturan properti Objek sangat penting
untuk membedakan satu Objek dengan Objek yang lain. Properti
Objek dapat diatur melalui window Properties atau melalui kode
Macro saat runtime (saat Macro dijalankan).
23
mengetikkan secara langsung adalah Name, Height, Width, Left,
Top.
Memilih salah satu opsi yang disediakan dalam bentuk daftar panel.
Contoh properti yang ditentukan dengan cara seperti ini adalah
BackColor, BorderColor, ForeColor.
24
Gambar 1.31 Memilih opsi pengaturan properti ForeColor.
25
menggunakan tanda titik (.). Anda dapat memanfaatkan fitur Auto
List Members untuk menampilkan daftar properti sebuah objek.
(General)
Tebal
. Bo
Range ( "Al") . Font
End
ESt Italic
Name
26
pengaturan properti BackColor
berlaku.
BackColor merupakan properti yang digunakan untuk menentukan
warna latar belakang (background) objek. Warna latar belakang
objek ditampilkan jika properti BackStyle diatur ke
fmBackStyleOpaque. Ontuk mengubah properti BackColor melalui
window Properties klik drop down properti BackColor kemudian
pilih warna yang Anda inginkan. Ontuk mengubah properti
BackColor melalui kode Macro, Anda dapat memilih warna
konstan yang disediakan Visual Basic:
Konstanta Nilai Keterangan
vbBlack Warna hitam
27
cmdOK CommandButton
Alphabetic I Categonzed
(Name) cmdOK
28
ukuran, dan efek font yang Anda inginkan. Jika sudah, klik tombol
OK.
Ontuk mengubah properti Font menggunakan kode Macro,
masingmasing sub properti Font memiliki pengaturan tersendiri.
Sub Keterangan
properti
Name dntuk menentukan jenis font. Pengaturan diakukan
dengan menuliskan jenis font yang akan digunakan
dengan diapit tanda petik.
Bold dntuk mengatur apakah Font menampilkan huruf
tebal atau normal. Pilihannya adalah TRUE (huruf
tebal) atau FALSE (huruf normal).
Italic dntuk mengatur apakah Font menampilkan
huruf miring atau normal. Pilihannya adalah
TRUE (huruf miring) atau FALSE (huruf normal).
Underline dntuk mengatur apakah Font menampilkan huruf
dengan garis bawah. Pilihannya adalah TRUE (huruf
dengan garis bawah) atau FALSE (huruf tanpa garis
bawah).
Size dntuk menentukan ukuran font. Pengaturan
diakukan dengan menuliskan ukuran font yang akan
digunakan.
Strikethrough dntuk mengatur apakah Font menampilkan
huruf dengan tanda coret. Pilihannya adalah
TRUE (huruf dengan tanda coret) atau FALSE
(huruf tanpa tanda coret).
Weight dntuk mengatur ketebalan font. Pengaturan
diakukan dengan menuliskan ketebalan font yang
akan digunakan dari 1 sampai 1000.
Berikut contoh kode Macro untuk melakukan pengaturan
masingmasing sub properti font:
29
Sheets ( " Sheet 1 " ) . chkPria. Font . Name = " Times new
Roman "
Sheets ( " Sheet 1 " ) . chkPria.Font . Bold = False
Sheets( " Sheet 1 " ) . chkPria.Font . Italic = True
Sheets ( " Sheet 1 " ) . chkPria. Font . Underline = True
Sheets ( " Sheet 1 " ) . chkPria.Font.Size = 12
Sheets ( " Sheet 1 " ) . chkPria . Font . Strikethrough =
True
Sheets ( " Sheet 1 " ) . chkPria . Font . Weight = 50
ForeColor merupakan properti untuk menentukan warna font
(teks/nilai) pada objek. Ontuk mengubah properti ForeColor
melalui window Properties klik drop down properti ForeColor
kemudian pilih warna yang Anda inginkan. Ontuk mengubah
properti ForeColor melalui kode Macro, Anda dapat memilih
warna yang disediakan Visual Basic. Anda juga dapat mengubah
warna properti ForeColor menggunakan kombinasi warna merah,
hijau dan biru (RGB).
Height merupakan properti untuk mengatur tinggi objek.
Left merupakan properti untuk mengatur jarak tepi bidang kontrol
di sebelah kiri dengan tepi bidang sebelah kiri tempat penampung
kontrol (worksheet atau OserForm).
Picture merupakan properti untuk menentukan gambar yang akan
ditampilkan pada objek. Ontuk menentukan properti Picture
melalui window Properties klik klik tombol -J pada properti Picture
kemudian muncul kotak dialog Load Picture. Pilih file foto
(gambar) yang akan digunakan. Jika sudah, klik tombol Open.
30
Selain melalui window Properties, Anda juga dapat menentukan
properti Picture menggunakan kode Macro. Pengaturan properti
dilakukan menggunakan fungsi LoadPicture dengan argumen
alamat penyimpanan file gambar yang dituliskan secara lengkap.
Berikut contoh kode Macro untuk menentukan properti Picture:
> Top merupakan properti untuk mengatur jarak tepi atas bidang
kontrol dengan tepi bidang atas tempat penampung kontrol
(worksheet atau OserForm).
> Visible merupakan properti untuk menentukan apakah objek akan
ditampilkan atau tidak. Pilihan yang disediakan adalah:
Konstanta Keterangan
True Objek ditampilkan.
False Objek tidak ditampilkan.
> Width merupakan properti untuk mengatur lebar objek.
1.9 Method
Method merupakan suatu set perintah seperti halnya Function
Procedure dan Sub Procedure, tetapi sudah tersedia di dalam suatu
objek. Penggunaan method dalam kode Macro akan tergantung
kepada kaitan perintah dan jumlah argumen yang diperlukan serta
apakah method tersebut mengembalikan suatu nilai.
31
1.10.1 Operator Aritmatika
Operator aritmatika digunakan untuk melakukan kalkulasi operasi
matematika seperti penambahan, pengurangan, perkalian,
pembagian, perpangkatan dan persentase.
Operator aritmatika Simbol Contoh Hasil
Penambahan 10+5 15
Pengurangan 5
10-5
Perkalian 10*5 50
Pembagian 10/5 2
Persentase 0,10
Apabila dałam suatu proses perhitungan terdapat beberapa operator
aritmatika, urutan prioritas perhitungan adalah sebagai berikut:
> Perhitungan yang diapit tanda kurung dilakukan paling dulu.
> Pada level yang sama, urutan perhitungan dilakukan menurut jenis
operator. Perpangkatan dilakukan lebih dulu baru kemudian
perkalian, pembagian, penambahan dan pengurangan.
> Perhitungan pada level yang sama dilakukan dari sebelah kiri dulu.
32
Lebih kecil 10<5 False
Lebih besar sama dengan True
Lebih kecil sama dengan False
Tidak sama dengan True
1.10.3 Operator Teks
Operator teks digunakan untuk menghubungkan atau
menggabungkan dua nilai teks sehingga menghasilkan satu gabungan
nilai teks.
Operator Simbol Contoh Hasil
Menggabungkan dua nilai
Aku
teks sehingga menghasilkan "Aku " & "malu'
malu
satu gabungan nilai teks.
1.10.4 Operator Referensi
Operator referensi digunakan untuk menggabungkan sel (range) atau
sebagai pemisah argumen.
Operator referensi Simbol Contoh
Operator range Bl:B5
Or Atau Al Or A2
33
1.11 Variabel
Variabel merupakan tempat dalam memori komputer yang diberi
nama sebagai pengenal dan dialokasikan untuk menampung data.
Sesuai data yang ditampung, variabel harus mempunyai tipe data
yang sesuai dengan isinya. Secara default, tipe data yang digunakan
dalam variabel adalah variant. Jika Anda tidak mengetahui dengan
pasti tipe data dalam variabel yang akan digunakan, tipe data
sebaiknya dikosongkan. Deklarasi variabel harus diletakkan sebelum
baris perintah yang menggunakan variabel tersebut.
Dalam mendeklarasikan variabel, Anda perlu memperhatikan
jangkauan dari variabel tersebut. Jangkauan variabel pada VBA dapat
diketahui dengan kata kunci Public, Private dan Dim pada saat
variabel dideklarasikan. Variabel yang dideklarasikan dengan kata
kunci Public tersedia bagi semua Procedure di semua Module dalam
suatu proyek tempat di mana variabel tersebut dideklarasikan.
Variabel yang dideklarasikan dengan kata kunci Private tersedia bagi
semua Procedure dalam Module tempat di mana variabel tersebut
dideklarasikan. Variabel yang dideklarasikan dengan kata kunci Dim
hanya tersedia dalam Procedure tempat di mana variabel tersebut
dideklarasikan. Format kode Macro dalam mendeklarasikan variabel
adalah sebagai berikut:
Jangkauan NamaVariabe1 As TipeData
1.12 Konstanta
Konstanta adalah nama yang menyimpan suatu nilai yang tidak dapat
berubah. Kecepatan proses pada konstanta lebih cepat dibandingkan
variabel karena tidak perlu menunggu pengisian data. Dalam
mendeklarasikan kontanta, Anda perlu memperhatikan jangkauan
dari konstanta tersebut. Jangkauan konstanta pada VBA dapat
34
diketahui dengan kata kunci Public, Private dan Const pada saat
konstanta dideklarasikan. Konstanta yang dideklarasikan dengan kata
kunci Public tersedia bagi semua Procedure di semua Module dalam
suatu proyek tempat di mana konstanta tersebut dideklarasikan.
Konstanta yang dideklarasikan dengan kata kunci Private tersedia
bagi semua Procedure dalam Module tempat di mana konstanta
tersebut dideklarasikan. Konstanta yang dideklarasikan dengan kata
kunci Const hanya tersedia dalam Procedure tempat di mana
konstanta tersebut dideklarasikan. Format kode Macro untuk
mendeklarasikan konstanta adalah sebagai berikut:
1.13 Array
Array merupakan variabel yang mampu menyimpan beberapa nilai
dengan tipe data yang sama. Kumpulan nilai tersebut satu sama lain
dibedakan dengan indeks dan masing-masing disebut elemen array.
Beberapa nilai data yang mempunyai tipe data sama akan lebih
mudah jika dimasukkan ke dalam sebuah array dibandingkan
dimasukkan dalam beberapa variabel yang berbeda. Ada dua jenis
array, yaitu fixed array dan dynamic array. Fixed array merupakan
array yang ukurannya tetap. Format kode Macro dalam
mendeklarasikan fixed array adalah sebagai berikut:
Jangkauan Nama.Array( Indeks) As TipeData
35
NamaBuah ( 2 ) = 5000
Sebuah array dibatasi oleh batas bawah dan batas atas. Secara
default, batas bawah array adalah nol (0). Apabila batas bawah array
adalah nol (O), maka pada Indeks Anda isikan dengan jumlah elemen
dikurangi satu. Misalnya Anda akan menggunakan 3 elemen array,
maka pada saat mendeklarasikan array, Indeks Anda isikan dengan
angka 2.
Selain dengan menggunakan batas bawah nol (O), Anda juga dapat
Anda mengubah batas bawah array dengan angka satu (1). Berikut
cara yang dapat Anda lakukan untuk mendeklarasikan batas bawah
array:
1. Menggunakan pernyataan Option Base. Format kode Macro
dalam menggunakan Option Base adalah sebagai berikut:
Option Base 1
36
KataKunci Nama.Array( ) As TipeData
±79228162514264337593543950335 (tanpa
titik desimal)
Decimal 14 byte ± 7,9228162514264337593543950335
(dengan
28 angka di belakang titik desimal)
37
Bilangan dengan nilai antara
38
> Nama range harus dimulai dari huruf atau tanda underscore (_),
bukan angka atau karakter lainnya.
> Nama range yang terdiri dari dua kata atau lebih tidak boleh
dipisahkan dengan spasi. Anda dapat menggunakan tanda
underscore (_) atau titik (.) untuk menggantikan spasi. Misalnya,
Nama barang dapat Anda ganti dengan Nama_barang,
Nama.barang atau NamaBarang.
> Dalam satu workbook, nama range harus bersifat unik (tidak ada
nama range yang sama dalam satu workbook).
39
Gambar 1.37 Membuat nama range melalui Name Box
40
Gambar 1.38 Kotak dialog Create Names from Selection.
41
2. dntuk membuat nama range baru, klik tombol New... Muncul
kotak dialog New Name. Anda juga dapat menampilkan kotak
dialog New Name secara langsung dengan cara klik tombol
Define Name dalam tab Formulas group Defined Names.
3. Ketikkan nama range yang akan dibuat pada kotak isian Name:,
misalnya ketikkan Nama_Barang.
4. Pada kotak isian Scope: pilih Workbook, yang berarti nama range
Nama Barang dapat digunakan untuk seluruh worksheet.
5. Ketikkan =Database!$C$3:$C$63 pada kotak isian Refers to:
Dalam contoh tersebut, range yang dibuat adalah range C3:C63
pada worksheet Database. Langkah tersebut juga dapat
dilakukan dengan cara klik tombol pada kotak sebelah kanan
Refers to: Muncul collapse dialog seperti terlihat pada Gambar
1.40.
New Name - Refers to:
-Database! SCS3:SCS631
42
6. Blok rance C3:C63 (hasil blok ditandai garis putus-putus). Klik
tombol la-. Muncul kembali kotak dialog New Name kemudian
klik tombol OK.
7. Nama range yang sudah dibuat akan dimasukkan dalam daftar
pada kotak dialog Nama Manager seperti terlihat pada Gambar
1.41. Ontuk membuat nama range yang lain, lakukan dengan
cara yang sama seperti pada langkah 2 sampai 6.
43
Gambar 1.42 Kotak dialog Edit Name.
44
Are you sure you want to delete the name
Tanggal?
2;1). Klik tombol OK. Penjelasan formula pada kotak isian Refers
to: adalah sebagai berikut:
o OFFSET merupakan fungsi yang akan menyalin hasil yang ada
dalam suatu range dengan jumlah baris dan kolom yang
disebutkan jaraknya dari sel acuan.
o TabelBantu!$A$2 merupakan sel acuan (sel A2) yang
dijadikan dasar dalam penggunaan fungsi OFFSET.
0 1 menunjukkan arah baris ke bawah (positiD. Karena nilainya
1, maka sel yang ditunjuk adalah sel 1 baris di bawah sel yang
dijadikan acuan dalam penggunaan fungsi OFFSET.
45
o O merupakan arah kolom. Karena nilainya 0, maka sel yang
ditunjuk terletak dalam kolom yang sama dengan sel yang
dijadikan acuan dalam penggunaan fungsi OFFSET.
o COdNTA(TabelBantu!$A:$A)-2 merupakan tinggi range yang
diwakili jumlah baris pada range dalam kolom A yang tidak
kosong. Karena ada sel yang tidak digunakan dalam range (sel
Al dan A2) maka tinggi range dikurangi 2.
0 1 merupakan lebar range yang diwakili jumlah kolom pada
range.
2;3). Klik tombol OK. Penjelasan formula pada kotak isian Refers
to: adalah sebagai berikut:
46
Gambar 1.45 Membuat nama range Tabel.
47
7. Ketikkan dser dalam Name Box pada Formula Bar kemudian klik
tombol Enter. Apabila semuanya dijalankan dengan benar, nama
user yang baru dimasukkan akan ikut terseleksi.
8. Ketikkan Tabel dalam Name Box pada Formula Bar kemudian klik
tombol Enter. Jika semuanya dijalankan dengan benar, record
data yang baru dimasukkan akan ikut terseleksi.
48
1.16 Pengaturan Setting Regional Komputer
Setiap negara mempunyai aturan penggunaan format bilangan, mata
uang, jam dan tanggal sendiri. Aturan pada setiap negara dapat Anda
terapkan melalui pengaturan setting regional komputer. Pengaturan
setting regional komputer juga berpengaruh pada penggunaan tanda
koma (,) dan titik koma (;) sebagai operator pemisah argumen dalam
penulisan formula dan fungsi Excel. dntuk memudahkan dalam
memahami buku ini, sebaiknya Anda menerapkan setting regional
komputer Indonesian (Indonesia), sama dengan setting regional
komputer yang digunakan penulis.
1. dntuk pengguna Windows XP, klik tombol Start. Pilih menu
Control Panel. Muncul jendela Control Panel.
49
Gambar 1.49 Jendela Date, Time, L.anguage, and Regional Options
Currency:
Tirne:
Location
To help services provide you with local information. such as news
and weather. select your present location:
Apply
50
5. dntuk pengguna Windows 7, klik tombol Start kemudian pilih
Control Panel. Muncul jendela Control Panel.
51
Gambar 1.53 Kotak dialog Region and Language.
52
48
MENAMBAH
INTERAKTIVITAS MACRO
Macro yang Anda buat tentu akan lebih menarik jika dapat
berinteraksi dengan pengguna. Ontuk keperluan tersebut, Anda
dapat membuat kotak pesan, kotak input, kotak dialog atau ActiveX
Control. Pemilihan salah satu model yang digunakan akan sangat
tergantung pada kebutuhan. Macro yang hanya digunakan untuk
membuat worksheet akan lebih tepat jika ditambahkan interaktivitas
menggunakan kotak pesan. Selain lebih mudah, pembuatan kotak
pesan juga tidak memakan banyak waktu. Namun apabila Macro yang
Anda buat membutuhkan kontrol yang tidak tersedia dalam kotak
pesan atau kotak input (misalnya Frame, ComboBox, ListBox), Anda
disarankan untuk membuat kotak dialog menggunakan OserForm.
54
vbCritical 16 Ikon pesan kritis
End Sub
56
Gambar 2.1 Kotak dialog Macro.
Daftar konstanta dan nilai tombol kotak pesan dapat dilihat pada
tabel. Anda dapat memilih apakah akan menggunakan konstanta atau
nilai untuk merespon tombol yang diklik pengguna.
Konstanta Nilai Tombol yang dipilih
vbOK 1 OK
vbCancel 2 Cancel
57
vbAbort 3 Abort
vbRetry 4 Retry
vblgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
1. Tekan kombinasi tombol Ctrl+N untuk membuat workbook baru.
Simpan workbook dengan nama Nilai Kotak Pesan.xlsm
2. Ontuk membuka Visual Basic Editor, tekan kombinasi tombol
Alt+F11 pada keyboard atau klik tombol Visual Basic dalam tab
Developer group Code.
3. Pada jendela Visual Basic Editor pilih menu Insert > Module.
Ketikkan kode Macro berikut pada window Code Modulel :
Sub NilaiKotakPesan( )
' Kotak pesan
Hapus = MsgBox( " Macro akan menghapus data "
vbOKCance1 + vbExc1amation + vbDefau1
tButton2 ,
" Hapus Data " )
58
5. Tekan kombinasi tombol Alt+F8 atau klik tombol Macros dalam
tab Developer group Code untuk menampilkan kotak dialog
Macro.
6. Pilih Macro NilaiKotakPesan kemudian klik tombol Run. Setelah
Macro dijalankan, muncul kotak pesan Hapus Data.
Hapus Data
1 Angka
2 Teks
4 Nilai logika (True atau False)
16 Nilai error
64 Nilai array
60
Pada latihan ini kita akan membuat kotak input berat badan
pengguna. Berat badan yang diisikan pengguna akan ditampilkan
pada kotak pesan serta dimasukkan ke dalam sel Al worksheet aktif.
1. Tekan kombinasi tombol Ctrl+N untuk membuat workbook baru.
Simpan workbook dengan nama Membuat Kotak Input.xlsm.
2. Tekan kombinasi tombol Alt+F11 atau klik tombol Visual Basic
dalam tab Developer group Code untuk membuka Visual Basic
Editor.
3. Pada jendela Visual Basic Editor pilih menu Insert > Module.
Ketikkan kode Macro berikut pada window Code Modulel :
Sub Kotaklnput( )
Kotak input
Berat = InputBox( " Berapa berat badan Anda? t'
& vbCrLf & " Dalam kg" , " Berat Badan 't , 50)
0
' Jika kotak input kosong atau tombol Cancel diklik
If Berat =" Boolean " Then
' Keluar dari Sub Prosedure
Exit Sub
End If
61
Gambar 2.5 Kotak input Berat Badan.
62
Sub BuiltInKotakDiaIog()
KIDialogFontPrope
rties
xlDialogFormatAuto
fÄI
XIDialogFormatChart
Gambar xlDialogFormatCharW
pe
2.7 Daftar
built in kotak
dialog.
End Sub
63
Gambar 2.8 Kotak dialog Format Cells: Font Properties.
6. Pada daftar pilihan Eont: pilih Tahoma. Pada daftar pilihan Font
style: pilih Italic. Pilih 10 pada daftar pilihan Size: Klik tombol OK.
Format font range A3:DIO yang terseleksi kemudian berubah
menyesuaikan hasil pengaturan melalui kotak dialog.
2.4 UserForm
OserForm merupakan tempat penampung objek kontrol. Anda dapat
menggunakan OserForm untuk membuat kotak dialog. Ontuk
menambahkan OserForm, pilih menu Insert > dserForm pada Visual
Basic Editor.
64
Gambar 2.9 Tampilan UserForm.
2.4.1 ToolBox
Toolbox merupakan tempat kontrol yang dapat dipilih untuk
kemudian ditambahkan ke dalam OserForm. Ontuk menampilkan
window Toolbox klik tombol Toolbox (E) pada toolbar Standar, atau
pilih menu utama View > Toolbox.
Toolbox
Controls
A abl
Berikut nama kontrol beserta fungsi kontrol yang secara default ada
dalam Toolbox:
Kontrol Gambar Fungsi
dntuk memilih objek kontrol pada
Toolbox, menempatkan kontrol pada
Select Objects dserForm, mengubah ukuran kontrol
dan memindah posisi kontrol dalam
OserForm.
Label dntuk membuat teks berupa informasi
singkat kepada pengguna. Teks yang
ditampilkan tidak dapat diubah
pengguna pada saat dserForm
65
dijalankan.
dntuk membuat kotak isian pada
dserForm. Pengguna dapat
TextBox
memasukkan nilai (dapat berupa angka
ataupun teks) ke dalam kotak isian.
dntuk menampilkan daftar pilihan yang
dikelompokkan dalam TextBox.
Pengguna juga dapat mengetik
ComboBox
pilihannya dalam ComboBox, namun hal
tersebut tergantung pada style yang
digunakan.
dntuk menampilkan pilihan yang
dikelompokkan dalam sebuah daftar
ListBox
pilihan, yang dapat digeser secara
vertikal.
dntuk menampilkan beberapa pilihan
CheckBox
yang dapat dipilih lebih dari satu.
dntuk menampilkan beberapa pilihan
OptionButton yang hanya dapat dipilih salah satu
dalam suatu dserForm atau Frame.
(Jntuk membuat pilihan tombol on atau
ToggleButton
off pada UserForm.
dntuk mengelompokkan kontrol yang
Frame
mempunyai fungsi sama.
dntuk membuat tombol yang akan
CommandButton menjalankan suatu perintah apabila
tombol tersebut ditekan.
dntuk membuat beberapa kotak dialog
TabStrip
pada dserForm.
dntuk membuat satu pengelompokan
MultiPage
kontrol atau lebih dalam satu tampilan.
(Jntuk melakukan pemasukkan data
ScrollBar
secara analog, yaitu dengan melakukan
66
penggeseran pada bidang ScrollBar
ataupun penekanan pada tombol (atas,
bawah, kiri atau kanan).
dntuk menunjukkan nilai yang berurutan
SpinButton
dengan range yang konsisten.
dntuk menampilkan gambar dalam
format bitmaps (*.bmp, *.dib), GIF
Image
(*.gif), JPEG (*.jpeg), Metafiles (*.wmf,
*.emf) dan Icons (*.ico, *.cur).
dntuk mengedit alamat reference pada
RefEdit
Microsoft Excel.
2.4.2 Menambahkan Kontrol
Sebelum menambahkan kontrol, Anda tentu harus menyiapkan
OserForm yang akan dijadikan sebagai tempat penampung kontrol
terlebih dahulu.
1. Tekan kombinasi tombol Alt+F11 atau klik tombol Visual Basic
dalam tab Developer group Code untuk menjalankan Visual Basic
Editor.
2. Pilih menu Insert > (IserForm untuk menambahkan OserForm.
Ketika menambahkan OserForm, secara otomatis Toolbox akan
ditampilkan. Jika belum ditampilkan, pilih menu Yiew > Toolbox.
Toolbox
Controls
67
Gambar 2.12 Menambahkan kontrol ke dalam UserForm.
68
Gambar 2.13 Mengubah ukuran kontrol menggunakan mouse.
69
2. Tekan kombinasi tombol CtrI+C atau pilih menu Edit Çopy. Untuk
menyalin kontrol, tekan kombinasi tombol CtrI+V atau pilih
menu Edit Paste.
3. Untuk menyalin kontrol dengan teknik drag and drop tekan dan
tahan tombol Ctrl pada keyboard. Klik dan tahan tombol kiri
mouse kemudian tarik mouse pada posisi yang diinginkan. Saat
menyalin kontrol, pointer mouse akan menampilkan tanda Plus
(+). Jika posisi kontrol sudah sesuai, lepaskan tombol mouse.
UserFcrm1
71
(Name) BuatWorksheet
72
Buat Worksheet
• .Nama
I-Ibah
Batal
73
Gambar 2.21 Memilih menu klik kanan Tab Order.
T ab Order
frmNama
OK
cmdOK
cmdB atal
Cancel
Move Up
Move
Down
74
Lab Order
o tDefault
optLIbah
OK
txtNama
Cancel
Move up
Move
Down
12. Pilih menu View > Code atau tekan F7. Ketikkan kode Macro
sebagai berikut:
i
' Kode saat opsi Default dipilih
Private Sub optDefau1 t_Click( )
End Sub
Sheets . Add
' Kode saat opsi Ubah dipilih
Private Sub optUbah_C1ick( keadaan
) terpilih
True Then
TextBox Nama tidak terkunci
Prosedur
txtNama. Locked = False
keadaan terpilih
End Sub True Then yang ditulis
bel um ada
o
' Kode apabila tombol ( OK ditekan
txtNama . Text) Is Nothing
Private Sub cmdOK_C1ick(
Then) worksheet txtNama . Text
kotak dialog
' Lanjutkan Macro jika terjadi error
On Error Resume Next
kotak dialog
Membuat worksheet baru
Set NewSheet = Application. nama worksheet sudah
ada worksheet sudah ada " ,
' Jika opsi Default dalam vblnformation
If optDefau1t . Value =
' Keluar dari Sub
Exit Sub
' Jika opsi Ubah dalam
El self optUbah . Value
=
' Jika nama
worksheet
75
If Application .
Sheets ' Memberi
nama
NewSheet . Name =
' Menonaktifkan
Unload Me
Else
' Menonaktifkan
Unload Me
Kotak pesan jika
MsgBox " Nama vbOKOn1y +
End If End If
End Sub
I
' Menonaktifkan kotak
Unload Me
End Sub
o
' Menampilkan kotak
dialog BuatWorksheet .
Show
End Sub
76
Gambar 2.24 Kotak dialog Buat Worksheet.
17. Jika nama worksheet sudah ada, nama workshet secara default
mempunyai format SheetN dan muncul kotak pesan seperti
terlihat pada Gambar 2.25.
3. Pilih menu Export File... Muncul kotak dialog Export File seperti
terlihat pada Gambar 2.27.
78
Gambar 2.27 Kotak dialog Export File.
81
yang merugikan. Ontuk mengatasi masalah tersebut, Excel
menyediakan pilihan pengaturan keamanan ActiveX Controls.
1. Klik tombol Macro Security dalam tab Developer group Code.
Muncul kotak dialog Trust Center.
2. Pilih opsi ActiveX Settings. Pilih salah satu dari beberapa opsi
yang disediakan sebagai berikut:
o Disable all controls without notification. Apabila opsi ini
dipilih, ActiveX Controls dalam workbook tidak akan
diaktifkan.
Prompt me before enabling unsafe for Initialization (OFI)
controls with additional restrictions and Safe for Initialization
(SFI) controls with minimal restrictions dan Promt me before
enabling all controls with minimal restrictions. Apabila opsi ini
dipilih, Excel akan menampilkan peringatan dan
menonaktifkan ActiveX Controls ketika workbook yang
mengandung ActiveX Controls dibuka. Diaktifkan atau
tidaknya ActiveX Controls tergantung pada pilihan Anda.
o Enabled all controls without restrictions and without
prompting (not recommended; potentially dangerous
controls can run). Apabila opsi ini dipilih, ActiveX Controls
82
dalam workbook akan selalu diaktifkan. Opsi ini tidak
direkomendasikan karena berpotensi menimbulkan kerugian.
Safe mode (helps limit the control's access to your computer).
Opsi ini digunakan untuk membatasi akses ActiveX Controls
pada komputer, misalnya membatasi ActiveX Controls untuk
mengubah registry sistem operasi. Beri tanda contreng pada
pilihan ini untuk mengal<tifl<an pengaturan safe mode.
2. Klik kontrol List Box (ActiveX Controls). Klik mouse pada bidang
worksheet untuk menambahkan kontrol ke dalam worksheet.
83
Gambar 2.33 Menambahkan kontrol ListBox.
84
Gambar 2.34 Kotak dialog Format Control - tab Size.
85
Gambar 2.35 Kotak dialog Format Control - tab Protection.
86
o Move but don't size with cells digunakan untuk mengatur
agar kontrol ikut berpindah menyesuaikan perubahan range
yang ditempati, namun ukurannya tidak berubah.
o Don't move or size with cells digunakan untuk mengatur agar
kontrol tidak ikut berpindah dan tidak berubah ukurannya
ketika ada perubahan range yang ditempati.
o Ontuk mengatur agar kontrol tidak ikut tercetak, hilangkan
tanda contreng pada pilihan erint object.
4. Klik tab Web atau All Text (Excel 2010) untuk menambahkan teks
alternatif pada web browser. Teks alternatif berfungsi untuk
membantu mesin pencari menemukan kontrol dalam workbook
yang disimpan secara online di internet. Ketikkan teks alternatif
yang Anda inginkan pada kotak isian yang tersedia.
87
1. Tekan kombinasi tombol Ctrl+N untuk membuat workbook baru.
Simpan workbook dengan nama Memasukkan Nilai SpinButton
ke TextBox.xIsm.
2. Tambahkan Text Box dan Spin Button ke dalam worksheet
Sheetl. dbah serta atur posisi kontrol seperti terlihat pada
Gambar 2.38.
8
9
10
12
Gambar 2.38 Menambahkan Text Box dan Spin Button.
End Sub
88
6. Kembali ke program utama Excel. Jika semuanya dilakukan
dengan benar, Anda tidak dapat memasukkan nilai secara
langsung ke dalam TextBox. Anda hanya dapat memasukkan
nilai ke dalam Text Box melalui Spin Button.
B c D
1
2
3
4
5
Gambar 2.39 Memasukkan nilai Spin Button ke dalam Text Box.
Sub HapusData( )
89
' Menghapus seluruh data dalam worksheet
aktif Cells . ClearContents
End Sub
4. Kembali ke program utama Excel. Ontuk menambahkan Form
Control, klik tombol Insert dalam tab Developer group Controls.
90
6. Ontuk mengubah teks klik kanan Button kemudian pilih menu
Edit Text. Mode edit teks kemudian aktif. Ketikkan Hapus Data.
Jika sudah, klik mouse di luar bidang Button.
91
10. Ontuk mengaitkan Macro, klik kanan Shape kemudian pilih
menu Assign Macro... Muncul kotak dialog Assign Macro. Pilih
Macro HapusData kemudian klik tombol OK.
11. Ontuk mengubah teks klik kanan Shape kemudian pilih menu
Edit Text. Mode edit teks kemudian aktif. Ketikkan Hapus Data.
Kliktombol Center dalam tab Home group Alignment. Jika sudah,
klik mouse di luar bidang Shape.
12. Obah ukuran dan posisi Shape sesuai keinginan. Ontuk menguji
hasilnya, ketikkan sembarang nilai pada sel Al dan C5, misalnya,
ketikkan 12 pada sel Al dan 184 pada sel C5. Klik tombol (Shape)
Hapus Data. Seluruh data dalam worksheet aktif akan terhapus,
lihat sel Al dan C5.
92
88
MENYIAPKAN
WORKSHEET
APLIKASI
2
4
2
5
14
Sheetl Sheet2 Sheet3
Read
y
Gambar 3.1 Menambahkan worksheet ke dalam workbook.
3. Ontuk mengubah format sel pada judul tabel, klik tombol Format
dalam tab Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells.
o Pilih tab Alignment. Pada kotak pilihan Horizontal: dan yertical:
pilih Center.
95
Gambar 3.5 Pengaturan perataan teks.
Pilih tab Font. Pada daftar pilihan Font style: pilih Bold.
Pilih tab Fill. Pada daftar pilihan Background Color: pilih warna
abu-abu kemudian klik tombol OK.
96
Gambar 3.7 Pengaturan warna background sel.
97
3.2 Worksheet DatabaseBarang
Worksheet DatabaseBarang merupakan worksheet untuk
menampung data barang (database barang). Selain database barang,
worksheet DatabaseBarang juga mempunyai tabel filter barang yang
digunakan untuk menyaring data dengan fitur Advanced Filter.
Penyaringan data tersebut akan sangat berrnanfaat ketika Anda
mencari barang berdasarkan kata kunci kode barang atau nama
barang. Ontuk mempermudah penggunaan Macro dalam aplikasi,
Anda perlu membuat nama range pada worksheet DatabaseBarang.
Nama range yang dibutuhkan adalah DatabaseBarang, KodeBarang
dan NamaBarang.
1. Pilih worksheet DatabaseBarang. Ketikkan DATABASE BARANG
pada sel Al dan FILTER BARANG pada sel Ll. Obah format font
pada sel Al dan Ll menjadi huruf tebal (bold).
2. Ketikkan Kode pada sel A2 untuk memberi nama field pada
kolom A. Ontuk mengubah lebar kolom A, tempatkan pointer
pada sembarang sel di kolom A. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Column Width... Muncul
kotak dialog Column Width. Pada kotak isian Column width:
ketikkan 10. Klik tombol OK.
3. Dengan cara yang sama, ubah lebar kolom serta tambahkan
nama field pada kolom B sampai J dan kolom L sampai N dengan
ketentuan sebagai berikut:
12 Satuan
c
12 Status
12 Harga Beli
12 Harga Jual
8 Diskon
98
H 12 Harga Diskon
10 12 Stok Min
10 Stok
10 1.2 Kode
30 Nama Barang
12 Status
99
Gambar 3.9 Format data teks dalam database.
100
7. Tempatkan pointer pada sel A3. Klik tombol Freeze Panes dalam
tab View group Window kemudian pilih menu freeze Panes.
Langkah ini dilakukan agar judul kolom tidak ikut tergulung saat
worksheet digulung ke bawah.
101
Gambar 3.12 Membuat nama range DatabaseBarang.
Alamat
c 35
12 Kota
10 Kode Pos
10 Kontak
12 Telp/HP
H 12 H2 Hutang
10 Kode
25 Nama Pemasok
12 1.2 Hutang
4. dntuk mengubah format sel pada judul database, blok range
A2:H2. Klik tombol Format dalam tab Home group Cells
kemudian pilih menu Format Cells... Muncul kotak dialog Format
Cells.
o Pilih tab Alignment. Pada kotak pilihan Horizontal: dan
yertical: pilih Center.
o Pilih tab Font. Pada daftar pilihan Font style: pilih Bold.
o Pilih tab Fill. Pada daftar pilihan Background Color: pilih
warna abu-abu kemudian klik tombol OK.
5. dntuk mengubah format sel pada judul tabel filter pemasok
(range J2:L2), lakukan dengan cara yang sama seperti pada
langkah 4.
103
6. dntuk melakukan format data dalam database pemasok dan
data dalam tabel filter pemasok, lakukan langkah-langkah
sebagai berikut:
o Blok range A3:D1048576. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells. Pilih tab Number. Pada
daftar pilihan Category: pilih Text kemudian klik tombol OK.
Lakukan format data yang sama pada range F3:F1048576 dan
range J3:K3.
o Blok range E3:E1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Text. Pilih tab Alignment. Pada kotak pilihan
Horizontal: pilih Right (Indent) kemudian klik tombol OK.
Lakukan format data yang sama pada range G3:G1048576.
o Blok range H3:H1048576. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells. Pilih tab Number. Pada
daftar pilihan Category: pilih Number. Pilih atau ketik O pada
kotak isian Decimal places: Beri tanda contreng pada pilihan
Use 1000 Separator (.) kemudian klik tombol OK. Lakukan
format data yang sama pada sel L3.
7. Tempatkan pointer pada sel A3. Klik tombol Freeze Panes dalam
tab View group Window kemudian pilih menu freeze Panes.
104
Gambar 3.13 Tampilan worksheet DatabasePemasok.
105
1. Pilih worksheet DatabasePelanggan. Ketikkan DATABASE
PELANGGAN pada sel Al dan FILTER PELANGGAN pada sel Jl.
dbah format font pada sel Al dan Jl menjadi huruf tebal (bold).
2. Ketikkan Kode pada sel A2 untuk memberi nama field pada
kolom A. Ontuk mengubah lebar kolom A, tempatkan pointer
pada sembarang sel di kolom A. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Column Width... Muncul
kotak dialog Column Width. Pada kotak isian Column width:
ketikkan 10. Klik tombol OK.
3. Dengan cara yang sama, ubah lebar kolom serta tambahkan
nama field pada kolom B sampai H dan kolom J sampai L dengan
ketentuan sebagai berikut:
Kolom Lebar Sel Judul kolom
kolom
25 Nama Pelanggan
35 Alamat
c
12 Kota
10 Kode Pos
10 Kontak
12 Telp/HP
H 12 Piutang
10 Kode
25 Nama Pelanggan
12 1.2 Piutang
4. dntuk mengubah format sel pada judul database, blok range
A2:H2. Klik tombol Format dalam tab Home group Cells
kemudian pilih menu Format Cells... Muncul kotak dialog Format
Cells.
o Pilih tab Alignment. Pada kotak pilihan Horizontal: dan
yertical: pilih Center.
106
o Pilih tab Font. Pada daftar pilihan Font style: pilih Bold.
o Pilih tab Fill. Pada daftar pilihan Background Color: pilih
warna abu-abu kemudian klik tombol OK.
5. dntuk mengubah format sel pada judul tabel filter pelanggan
(range J2:L2), lakukan dengan cara yang sama seperti pada
langkah 4.
6. dntuk melakukan format data dalam database pelanggan dan
data dalam tabel filter pelanggan, lakukan langkah-langkah
sebagai berikut:
o Blok range A3:D1048576. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells. Pilih tab Number. Pada
daftar pilihan Category: pilih Text kemudian klik tombol OK.
Lakukan format data yang sama pada range F3:F1048576 dan
range J3:K3.
o Blok range E3:E1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Text. Pilih tab Alignment. Pada kotak pilihan
Horizontal: pilih Right (Indent) kemudian klik tombol OK.
Lakukan format data yang sama pada range G3:G1048576.
o Blok range H3:H1048576. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells. Pilih tab Number. Pada
daftar pilihan Category: pilih Number. Pilih atau ketik O pada
kotak isian Decimal places: Beri tanda contreng pada pilihan
Use 1000 Separator (.) kemudian klik tombol OK. Lakukan
format data yang sama pada sel L3.
7. Tempatkan pointer pada sel A3. Klik tombol Freeze Panes dalam
tab View group Window kemudian pilih menu freeze Panes.
107
Gambar 3.14 Tampilan worksheet DatabasePelanggan.
108
13. Ketikkan NamaPelanggan pada kotak isian Name: Pada kotak
pilihan Scope: pilih Workbook. Pada kotak isian Refers to:
ketikkan formula
12 Tempo
c
12 Kode Pmsk
12 Total
109
12 Bayar
12 Hutang
10 12 No Faktur
12 Tanggal
12 Tanggal
12 Hutang
4. dntuk mengubah format sel pada judul database, blok range
A2:G2. Klik tombol Format dalam tab Home group Cells
kemudian pilih menu Format Cells... Muncul kotak dialog Format
Cells.
o Pilih tab Alignment. Pada kotak pilihan Horizontal: dan
yertical: pilih Center.
o Pilih tab Font. Pada daftar pilihan Font style: pilih Bold.
o Pilih tab Fill. Pada daftar pilihan Background Color: pilih
warna abu-abu kemudian klik tombol OK.
5. dntuk mengubah format sel pada judul tabel filter header
pembelian (range 12:M2), lakukan dengan cara yang sama
seperti pada langkah 4.
6. dntuk melakukan format data dalam database header pembelian
dan data tabel filter header pembelian, lakukan langkah-langkah
sebagai berikut:
o Blok range A3:A1048576. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells. Pilih tab Number. Pada
daftar pilihan Category: pilih Text kemudian klik tombol OK.
Lakukan format data yang sama pada range E3:E1048576, sel
J3 dan sel L3.
o Blok range B3:C1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
110
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Date. Pilih 14/03/2001 pada daftar pilihan
Type: kemudian klik tombol OK. Lakukan format data yang
sama pada range J3:K3.
111
Gambar 3.16 Tampilan worksheet HeaderPembelian.
112
berfungsi untuk menyaring detail transaksi pembelian menggunakan
fitur Advanced Filter. Nama range yang dibutuhkan dalam worksheet
DetailPembelian adalah DatabaseDetailPembelian dan
NoFakturDtlPbln.
1. Pilih worksheet DetailPembelian. Ketikkan DATABASE DETAIL
PEMBELIAN pada sel Al dan FILTER DETAIL PEMBELIAN pada sel
Il. Obah format font pada sel Al dan Il menjadi huruf tebal (bold).
2. Ketikkan No Faktur pada sel A2. Ontuk mengubah lebar kolom A,
tempatkan pointer pada sembarang sel di kolom A. Klik tombol
Format dalam tab Home group Cells kemudian pilih menu
Column Width... Muncul kotak dialog Column Width. Ketikkan 10
pada kotak isian Column width: kemudian klik tombol OK.
3. Dengan cara yang sama, ubah lebar kolom serta tambahkan
nama field pada kolom B sampai G dan kolom I dengan
ketentuan sebagai berikut:
12 Kode
c
30 Nama Barang
10 Jumlah
12 Harga Beli
12 Total
10 12 No Faktur
4. dntuk mengubah format sel pada judul database, blok range
A2:G2. Klik tombol Format dalam tab Home group Cells
kemudian pilih menu Format Cells... Muncul kotak dialog Format
Cells.
113
o Pilih tab Alignment. Pada kotak pilihan Horizontal: dan
yertical: pilih Center.
o Pilih tab Font. Pada daftar pilihan Font style: pilih Bold.
o Pilih tab Fill. Pada daftar pilihan Background Color: pilih
warna abu-abu kemudian klik tombol OK.
5. dntuk mengubah format sel pada judul tabel filter detail
pembelian (sel 13), lakukan dengan cara yang sama seperti pada
langkah 4.
6. dntuk melakukan format data dalam database detail pembelian
dan data tabel filter detail pembelian, lakukan langkah-langkah
sebagai berikut:
o Blok range A3:A1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Text kemudian klik tombol OK. Lakukan format
data yang sama pada range C3:D1048576 dan sel 13.
o Blok range B3:B1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Number. Pilih atau ketik O pada kotak isian
Decimal places: Pilih tab Alignment. Pada kotak pilihan
Horizontal: dan yertical: pilih Center kemudian klik tombol
OK. Lakukan format data yang sama pada range E3:E1048576.
o Blok range F3:G1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Number. Pilih atau ketik O pada kotak isian
Decimal places: Beri tanda contreng pada pilihan Use 1000
Separator (.) kemudian klik tombol OK.
7. Tempatkan pointer pada sel A3. Klik tombol Freeze Panes dalam
tab View group Window kemudian pilih menu freeze Panes.
114
Gambar 3.17 Tampilan worksheet DetailPembelian.
115
Worksheet HeaderPenjualan merupakan worksheet untuk
menampung data ringkasan transaksi penjualan. Worksheet
HeaderPenjualan mempunyai tabel filter header penjualan yang
berfungsi untuk menyaring ringkasan transaksi penjualan
menggunakan fitur Advanced Filter. Nama range yang dibutuhkan
dalam worksheet HeaderPenjualan adalah DatabaseHeaderPenjualan
dan NoFakturHdrPjln.
1. Pilih worksheet HeaderPenjualan. Ketikkan DATABASE HEADER
PENJdALAN pada sel Al dan FILTER HEADER PENJdALAN pada sel
K 1. Obah format font pada sel Al dan Kl menjadi huruf tebal
(bold).
2. Ketikkan No Faktur pada sel A2. Ontuk mengubah lebar kolom A,
tempatkan pointer pada sembarang sel di kolom A. Klik tombol
Format dalam tab Home group Cells kemudian pilih menu
Column Width... Muncul kotak dialog Column Width. Ketikkan 10
pada kotak isian Column width: kemudian klik tombol OK.
3. Dengan cara yang sama, ubah lebar kolom serta tambahkan
nama field pada kolom B sampai I dan kolom K sampai O dengan
ketentuan sebagai berikut:
Kolom Lebar Sel Judul kolom
kolom
12 Tanggal
12 Tempo
c
12 Kode Plgn
12 Grand Total
10 Diskon
12 Total
Bayar
H 12 H2
12 12 Piutang
10 No Faktur
116
12 1.2 Tanggal
12 Tanggal
12 Kode Plgn
o 12 02 Piutang
4. Ontuk mengubah format sel pada judul database, blok range
A2:12. Klik tombol Format dalam tab Home group Cells
kemudian pilih menu Format Cells... Muncul kotak dialog Format
Cells.
o Pilih tab Alignment. Pada kotak pilihan Horizontal: dan
yertical: pilih Center.
o Pilih tab Font. Pada daftar pilihan Fent style: pilih Bold.
o Pilih tab Fill. Pada daftar pilihan Background Color: pilih
warna abu-abu kemudian klik tombol OK.
5. Ontuk mengubah format sel pada judul tabel filter header
penjualan (range K2:02), lakukan dengan cara yang sama seperti
pada langkah 4.
6. Ontuk melakukan format data dalam database header penjualan
dan data tabel filter header penjualan, lakukan langkah-langkah
sebagai berikut:
o Blok range A3:A1048576. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells. Pilih tab Number. Pada
daftar pilihan Category: pilih Text kemudian klik tombol OK.
Lakukan format data yang sama pada range D3:D1048576, sel
K3 dan sel N3.
o Blok range B3:C1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Date. Pilih 14/03/2001 pada daftar pilihan
Type: kemudian klik tombol OK. Lakukan format data yang
sama pada range L3:M3.
o Blok range E3:11048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
117
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Number. Pilih atau ketik O pada kotak isian
Decimal places: Beri tanda contreng pada pilihan Use 1000 Separator
(.) kemudian klik tombol OK. Lakukan format data yang sama pada sel
03.
7. Tempatkan pointer pada sel A3. Klik tombol Freeze Panes dalam
tab View group Window kemudian pilih menu freeze Panes.
119
3.8 Worksheet DetailPenjuaIan
Worksheet DetailPenjualan merupakan worksheet untuk
menampung data detail transaksi penjualan. Worksheet
DetailPenjualan mempunyai tabel filter detail penjualan yang
berfungsi untuk menyaring detail transaksi penjualan menggunakan
fitur Advanced Filter. Nama range yang dibutuhkan dalam worksheet
DetailPenjualan adalah DatabaseDetailPenjualan dan
NoFakturDtlPjln.
1. Pilih worksheet DetailPenjualan. Ketikkan DATABASE DETAIL
PENJdALAN pada sel Al dan FILTER DETAIL PENJdALAN pada sel K
1. Obah format font pada sel Al dan Kl menjadi huruf tebal
(bold).
2. Ketikkan No Faktur pada sel A2. Ontuk mengubah lebar kolom A,
tempatkan pointer pada sembarang sel di kolom A. Klik tombol
Format dalam tab Home group Cells kemudian pilih menu
Column Width... Muncul kotak dialog Column Width. Ketikkan 10
pada kotak isian Column width: Klik tombol OK.
3. Dengan cara yang sama, ubah lebar kolom serta tambahkan
nama field pada kolom B sampai I dan kolom K dengan
ketentuan sebagai berikut:
Kolom Lebar Sel Judul kolom
kolom
8 No
12 Kode
c
30 Nama Barang
10 Jumlah
12 Harga Jual
10 Diskon
H 12 Harga Diskon
12 12 Total
10 No Faktur
4. Ontuk mengubah format sel pada judul database, blok range
A2:12. Klik tombol Format dalam tab Home group Cells
kemudian pilih menu Format Cells... Muncul kotak dialog Format
Cells.
112
121
o Blok range F3:11048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Number. Pilih atau ketik O pada kotak isian
Decimal places: Beri tanda contreng pada pilihan Use 1000
Separator (.) kemudian klik tombol OK.
7. Tempatkan pointer pada sel A3. Klik tombol Freeze Panes dalam
tab View group Window kemudian pilih menu freeze Panes.
1 14
dalam worksheet PembayaranHutang adalah DatabaseHutang dan
NoFakturPemHut.
1. Pilih worksheet PembayaranHutang. Ketikkan DATABASE
PEMBAYARAN HOTANG pada sel Al dan FILTER PEMBAYARAN
HOTANG pada sel HI. Obah format font pada sel Al dan HI
menjadi huruf tebal (bold).
2. Ketikkan No Faktur pada sel A2 untuk memberi nama field pada
kolom A. Ontuk mengubah lebar kolom A, tempatkan pointer
pada sembarang sel di kolom A. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Column Width... Muncul
kotak dialog Column Width. Pada kotak isian Column width:
ketikkan 10. Klik tombol OK.
3. Dengan cara yang sama, ubah lebar kolom serta tambahkan
nama field pada kolom B sampai F dan kolom H dengan
ketentuan sebagai berikut:
Kolom Lebar Sel Judul kolom
kolom
123
12 Tanggal
12 Kode Pmsk
c
D 12 Hutang
12 Bayar
12 Sisa
H 10 No Faktur
4. Ontuk mengubah format sel pada judul database, blok range
A2:F2. Klik tombol Format dalam tab Home group Cells
kemudian pilih menu Format Cells... Muncul kotak dialog Format
Cells.
o Pilih tab Alignment. Pada kotak pilihan Horizontal: dan
yertical: pilih Center.
o Pilih tab Font. Pada daftar pilihan Fent style: pilih Bold.
o Pilih tab Fill. Pada daftar pilihan Background Color: pilih
warna abu-abu kemudian klik tombol OK.
5. Ontuk mengubah format sel pada judul tabel filter pembayaran
hutang (sel H2), lakukan dengan cara yang sama seperti pada
langkah 4.
6. Ontuk melakukan format data dalam database pembayaran
hutang dan data tabel filter pembayaran hutang, lakukan
langkah-langkah sebagai berikut:
o Blok range A3:A1048576. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells. Pilih tab Number. Pada
daftar pilihan Category: pilih Text kemudian klik tombol OK.
Lakukan format data yang sama pada range C3:C1048576 dan
sel H3.
o Blok range B3:B1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Date. Pilih 14/03/2001 pada daftar pilihan
Type: kemudian klik tombol OK.
o Blok range D3:F1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Number. Pilih atau ketik O pada kotak isian
Decimal places: Beri tanda contreng pada pilihan Use 1000
Separator (.) kemudian klik tombol OK.
7. Tempatkan pointer pada sel A3. Klik tombol Freeze Panes dalam
tab View group Window kemudian pilih menu freeze Panes.
Langkah ini dilakukan agar judul kolom tidak ikut tergulung saat
worksheet digulung ke bawah.
125
Gambar 3.20 Tampilan worksheet PembayaranHutang.
126
pada sembarang sel di kolom A. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Column Width... Muncul
kotak dialog Column Width. Pada kotak isian Column width:
ketikkan 10. Klik tombol OK.
3. Dengan cara yang sama, ubah lebar kolom serta tambahkan
nama field pada kolom B sampai F dan kolom H dengan
ketentuan sebagai berikut:
Kolom Lebar Sel Judul kolom
kolom
12 Tanggal
12 Kode Plgn
c
12 Piutang
12 Bayar
12 Sisa
H 10 No Faktur
4. Ontuk mengubah format sel pada judul database, blok range
A2:F2. Klik tombol Format dalam tab Home group Cells
kemudian pilih menu Format Cells... Muncul kotak dialog Format
Cells.
o Pilih tab Alignment. Pada kotak pilihan Horizontal: dan
yertical: pilih Center.
o Pilih tab Font. Pada daftar pilihan Fent style: pilih Bold.
o Pilih tab Fill. Pada daftar pilihan Background Color: pilih
warna abu-abu kemudian klik tombol OK.
5. Ontuk mengubah format sel pada judul tabel filter penerimaan
piutang (sel H2), lakukan dengan cara yang sama seperti pada
langkah 4.
127
6. Ontuk melakukan format data dalam database penerimaan
piutang dan data tabel filter penerimaan piutang, lakukan
langkah-langkah sebagai berikut:
o Blok range A3:A1048576. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells. Pilih tab Number. Pada
daftar pilihan Category: pilih Text kemudian klik tombol OK.
Lakukan format data yang sama pada range C3:C1048576 dan
sel H3.
o Blok range B3:B1048576. Klik tombol Format dalam tab
Home group Cells kemudian pilih menu Format Cells...
Muncul kotak dialog Format Cells. Pilih tab Number. Pada
daftar pilihan Category: pilih Date. Pilih 14/03/2001 pada
daftar pilihan Type: kemudian klik tombol OK.
o Blok range D3:F1048576. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul kotak
dialog Format Cells. Pilih tab Number. Pada daftar pilihan
Category: pilih Number. Pilih atau ketik O pada kotak isian
Decimal places: Beri tanda contreng pada pilihan Use 1000
Separator (.) kemudian klik tombol OK.
7. Tempatkan pointer pada sel A3. Klik tombol Freeze Panes dalam
tab View group Window kemudian pilih menu freeze Panes.
Langkah ini dilakukan agar judul kolom tidak ikut tergulung saat
worksheet digulung ke bawah.
128
Gambar 3.21 Tampilan worksheet PenerimaanPiutang.
129
MEMBUAT FORM APLIKASI
Aplikasi yang Anda buat tentu akan lebih menarik jika dapat
berinteraksi dengan pengguna. Anda sebenarnya dapat
menggunakan kotak pesan dan kotak input agar pengguna dapat
berinteraksi dengan aplikasi. Namun demikian, kotak pesan dan
kotak input mempunyai keterbatasan dalam beberapa hal, misalnya
dalam jumlah dan penempatan tombol.
Pada kotak pesan dan kotak input, tombol tidak dapat ditambah atau
diatur sesuai kebutuhan. Pengguna juga tidak dapat menambahkan
objek kontrol seperti ListBox, ComboBox dan objek kontrol lainnya ke
dalam kotak pesan dan kotak input, sehingga pilihan yang dapat
ditawarkan kepada pengguna menjadi terbatas. Ontuk mengatasi
berbagai keterbatasan pada kotak pesan dan kotak input, Anda dapat
membuat form (kotak dialog). Objek yang digunakan untuk membuat
form dalam VBA adalah OserForm.
130
1. Buka file Aplikasi Penjualan.xlsm hasil latihan Bab 3, atau dapat
Anda download di www.solusi-kantor.com
2. Tekan Alt+F1 latau klik tombol Visual Basic dalam tab Developer
group Code untuk membuka Visual Basic Editor. Pilih menu
utama Insert > dserForm pada jendela Visual Basic Editor.
3. Atur properti OserForm melalui window Properties. Pilih menu
utama yew > Properties Window atau tekan tombol F4. Obah
properti OserForm sebagai berikut: Name = formBarang, Caption
= (kosong), Height = 411 dan Width = 276.
Properties - formBarang
formBarang I-IserForm
Alphabetic Il Categonzed I
(Name) formaarang
yIe O -
frnBorderStyIeNone
-
30rderSt
Capbon
Cycle
O finCydeAlForms
131
5. Obah properti CommandButton menjadi : Name = cmdTambah,
Caption Tambah, PicturePosition 1
frmPicturePositionLeftCenter, Height = 24, Left = 6, Top = 228,
Width = 60, Accelerator T dan Tablndex = 8. Ontuk memberikan
jarak antara judul dengan ikon, tambahkan spasi pada awal
properti Caption (judul CommandButton).
132
Gambar 4.4 Kotak dialog Load Picture.
133
Name = cmdEdit, Caption = Edit, Height = 24,
Left = 72, Top = 228, Width = 60, Accelerator = E,
CommandButton PicturePosition = 1—
frmPicturePositionLeftCenter, Picture = Edit.gif,
Tablndex = 9
134
frmPicturePositionCenter, Picture = Sort
Ascending.gif, Tablndex = 17
Name = cmdSortDescending, Caption = (kosong),
Height = 18, Left = 186, Top = 36, Width = 18,
Accelerator = D, PicturePosition = 12 —
frmPicturePositionCenter, Picture = Sort
CommandButton Descendin . if, Tablndex = 18
Name = cmdAwal, Caption = (kosong), Height =
18, Left = 6, Top = 204, Width = 18, Accelerator
CommandButton = w, PicturePosition = 12 —
frmPicturePositionCenter, Picture = Awal.gif,
Tablndex = 13
Name = cmdAkhir, Caption = (kosong), Height =
CommandButton 18, Left = 198, Top = 204, Width = 18,
Accelerator = r, PicturePosition = 12 —
135
Name = txtDiskon, Height = 18, Left = 60, Top =
132, Width = 24, TextAlign = 3 —
fmTextAlignRight,
MaxLength = 2, Tablndex = 6, BackColor = (abu-
TextBox abu)
Name = txtHargaDiskon, Height = 18, Left = 192,
Top = 132, Width = 72, Locked = True, TextAlign =
3 — fmTextAlignRight, BackColor =
TextBox (abu-abu)
Name = txtStokMinimal, Height = 18, Left = 60
Top = 156, Width = 72, TextAlign = 3 —
fmTextAlignRight, Tablndex = 7, BackColor =
TextBox (abu-abu)
Name = txtStok, Height = 18, Left = 192, Top =
156, Width = 72, Locked = True, TextAlign = 3
— fmTextAlignRight, BackC010r =
TextBox (abu-abu)
Name = txtNoRecord, Height = 18, Left = 222,
Top = 204, Width = 42, TextAlign = 3 —
fmTextAlignRight, Tablndex = 15, BackColor =
TextBox (abu-abu)
Name = cmbStatus, Height = 18, Left = 192, Top
= 84, Width = 72, style = 2 fmStyleDro
ComboBox DownList, Tablndex = 3
136
Name = lblForm, Caption = Form Barang, Height
= 24, Left = 30, Top = 6, Width = 234, Font =
Label (Font = Tahoma; Font style = Bold; Size = 16),
BackColor = (hijau muda),
Forecolor = (merah)
Name = lblKode, Caption = Kode Barang, Height =
Label
12, Left = 6, To = 42, Width = 54
Name = lblNama, Caption = Nama Barang, Height
Label = 12, Left = 6, To = 66, Width = 54
Name = lblSatuan, Caption = Satuan, Height = 12,
Label
Left = 6, To = 90, Width = 54
Name = lblStatus, Caption = Status, Height = 12,
Label Left = 138, To = 90, Width = 54
Name = lblHargaBeli, Caption = Harga Beli, Height
Label = 12, Left = 6, To = 114, Width = 54
Name = lblHargaJual, Caption = Harga Jual,
Label
Hei ht = 12, Left = 138, To = 114, Width = 54
Name = lblDiskon, Caption = Diskon, Height = 12,
Label
Left = 6, To - 138, Width = 54
Name = lblPersen, Caption = %, Height = 12, Left =
Label
90, To = 138, Width = 12
Name = lblHargaDiskon, Caption = Harga Diskon,
Label Height = 12, Left = 138, To = 138, Width = 54
Name = lblStokMinimal, Caption = Stok Min.,
Label
Height = 12, Left = 6, To = 162, Width = 54
Name = lblStok, Caption = Stok, Height = 12, Left =
Label
138, To = 162, Width = 54
Name = lblRecord, Caption = Record, Height = 12,
Label Left = 6, To = 186, Width = 102
Label Name = lblNoRecord, Ca tion = No Record,
Hei ht = 12, Left = 222, To = 186, Width = 42
10. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Saat pertama kali ditampilkan, secara otomatis
muncul kode Macro OserForm atau kontrol yang sedang aktif
137
dengan event klik. Hapus kode Macro tersebut kemudian
ketikkan kode Macro sebagai berikut:
' Kode ketika Form Barang aktlf )
Private Sub UserForm_Activate(
DatabaseBarang
"DatabaseBarang"
' wsDtbsBrg adalah worksheet )
Set wsDtbsBrg = Sheets( database
' jm1hRecord adalah jumlah barang
record jm1hRecord = wsDtbsBrg(wsDtbsBrg . Rows . Count,
. Cells
End(x1Up) . Offset (0, 0) - 2
. Row
I
' Tinggi Form Barang adalah
282 formBarang . He ight =
282 ke dalam ComboBox Status
"
Memasukkan item Produk Laku
cmbStatus . Addltem " Produkke dalam ComboBox Status
Laku 0
' Memasukkan item " dalam ComboBox
Kurang Laku cmbStatus . Add
Item " Kurang Laku ' Status
Memasukkan item Tidak Laku ke
Produk Laku
cmbStatus . Addltem "Tidak "
Laku"
Nil ai ComboBox Status
adalah cmbStatus . Value = " —
Produk Laku
DatabaseKosong
' Jika database barang kosong
If wsDtbsBrg . Range( t' A 3
" ) . Value
' Memanggil Sub Procedure
Call DatabaseKosong '
Keluar dari Sub Procedure merupakan hasi1 penyaringan
Exit Sub
End If dalam worksheet DatabaseBarang
I
' Jika data yang ditampilkan
If wsDtbsBrg . FilterMode
dalam worksheet DatabaseBarang
Then Tampilkan seluruh data
False
wsDtbsBrg . ShowA11Data End
If
1
o
' Menampilkan seluruh baris
banyaknya record
wsDtbsBrg . Cells . Rows .
Hidden =
138
' Nil ai Scroll Bar maksimal adalah
scroll Barang . Max = jm1hRecord
Scroll Bar bernilai maksimal scroll Barang . Value = scroll
139
Sub
' Sub Procedure jika database barang kosong
Sub DatabaseKosong( )
End Sub
140
End
Private Sub txtKode_Exit (ByVa1 Cancel As
MSForms . ReturnB001ean )
' Warna TextBox Kode Barang menjadi abu—abu
txtKode . BackC010r = &HCOCOCO
End Sub
' Kode ketika masuk dalam TextBox Nama Barang
Private Sub txtNama_Enter( )
' Warna TextBox Nama Barang menjadi putih
txtNama . BackC010r =
End Sub
End Sub
' Kode ketika masuk dalam ComboBox Status
Private Sub cmbStatus_Enter( )
' Warna
ComboBox Status men
jadi put ih
cmbStatus .
BackC010r =
End Sub
' Kode ketika keluar dari ComboBox Status
Private Sub cmbStatus_Exit ( ByVa1 Cancel As
MSForms . ReturnB001ean )
' Warna ComboBox Status men jadi abu—abu
cmbStatus . BackC010r = &HCOCOCO
End Sub
141
' Kode ketika keluar dari TextBox Harga Beli
Private Sub txtHargaBe1i_Exit (ByVa1 Cancel
As MSForms . ReturnB001ean)
' Warna TextBox Harga Beli men jadi abu—abu
txtHargaBe1i . BackC010r = &HCOCOCO
End Sub
142
End
' Warna TextBox Stok Minimal menjadi abu—abu
txtStokMinima1. BackC010r = &HCOCOCO
End Sub
End Sub
143
TextBox Diskon
KeyAscii
End Select
End Sub
End Sub
End Sub
End Sub
144
End
txtHargaJua1. Value = Format ( txtHargaJua1.
Value ,
End Sub
' Kode ketika TextBox Harga Diskon berubah
Private Sub txtHargaDiskon_Change ( ) ' Format
TextBox Harga Diskon
txtHargaDiskon.Va1ue = Format ( txtHargaDiskon .
Value ,
End Sub
End Sub
145
Set wsDtbsBrg = Sheets ( " DatabaseBarang n
)
End If
' Mengurutkan Ascending database barang kolom Nama Barang
wsDtbsBrg . Range ( 't DatabaseBarang" ) . Sort
Keyl : = n Nama Barang" ; Orderl : =x1Ascending, Header
: =x1Yes
' ScrollBar bernilai maksimal
scrollBarang . Value — scrollBarang
. Max
End Sub
146
Keyl : = n
Nama Barang" , Orderl : =x1Descending , Header
: =x1Yes
' ScrollBar bernilai maksimal
scrollBarang . Value = scroll Barang .
Max
End Sub
With wsDtbsBrg
' TextBox Kode Barang diisi kode barang sesuai
NoRecord txtKode . Value F .Cells ( NoRecordi 1 Value
' TextBox Nama Barang diisi nama barang txtNama .
Value = . Cells (NoRecord, 2) . Value ' TextBox Satuan
diisi satuan txtSatuan. Value = . Cells (NoRecord,
3) . Value ' ComboBox Status diisi status barang
cmbStatus . Value = . Cells (NoRecord, 4 ) . Value '
TextBox Harga Beli diisi harga beli txtHargaBe1i .
Value = . Cells (NoRecord, 5) . Value ' TextBox Harga
Jual diisi harga jual txtHargaJua1. Value = . Cells
(NoRecord, 6 ) . Value ' TextBox Diskon diisi diskon
record yang sama txtDiskon. Value = . Cells (NoRecord,
7) . Value ' TextBox Harga diskon diisi harga diskon
txtHargaDiskon. Value = . Cells (NoRecord, 8) . Value
147
' TextBox Stok Minimal diisi stok minimal
txtStokMinima1. Value = . Cells (NoRecord, 9 ) . Value
' TextBox Stok diisi stok barang record yang sama
txtStok. Value = . Cells (NoRecord, 10) . Value
End With
' Teks pada Label Record
1b1Record. Caption = "Record " & scrollBarang. Value &
dari n & scrollBarang . Max
End Sub
End Sub
148
' Kode ketika CommandButton Tambah di—klik
Private Sub cmdTambah_C1ick( )
149
' Jika nilai TextBox Diskon lebih dari 75
El self txtDiskon. Value > 75 Then
' Menampilkan kotak pesan Diskon Ter1a1u Besar
MsgBox n Diskon maksimal " , vbOKOn1y +
vbCritica1, "Diskon Ter1a1u Besar " ' TextBox
Diskon dikosongkan txtDiskon. Value = 11
' TextBox Diskon men jadi
fokus txtDiskon. SetFocus '
Keluar dari Sub Procedure
Exit Sub
End If
' Jika data yang ditampilkan merupakan hasil penyaringan
If wsDtbsBrg . FilterMode Then
' Tampilkan seluruh data dalam worksheet DatabaseBarang
wsDtbsBrg . ShowA11Data
End If
With wsDtbsBrg
' Masukkan kode barang di bawah record terakhir kolom A
. Cells (RecordAkhir + 1, 1) . Value = txtKode . Value
' Masukkan nama barang pada record yang sama
. Cells (RecordAkhir + 1, 2) . Value = txtNama . Value
' Masukkan satuan pada record yang sama
. Cells (RecordAkhir + 1, 3) . Value = txtSatuan. Value
' Masukkan status barang pada record yang sama
. Cells (RecordAkhir + 1, 4) . Value = cmbStatus . Value
' Masukkan harga beli pada record yang sama
. Cells (RecordAkhir + 1 , 5 ) . Value =
CDb1 ( txtHargaBe1i . Value )
' Masukkan harga jual pada record yang sama
. Cells (RecordAkhir + 1, 6 ) . Value =
CDb1 ( txtHargaJua1. Value )
' Masukkan diskon barang pada record yang sama
. Cells (RecordAkhir + 1, 7) . Value = txtDiskon. Value
150
' Masukkan harga jual diskon pada record yang sama
. Cells (RecordAkhir + 1, 8) . Value =
CDb1 ( txtHargaDiskon . Value )
' Masukkan stok minimal barang pada record yang sama
. Cells (RecordAkhir + 1, 9 ) . Value =
txtStokMinima1. Value
' Masukkan stok barang = O pada record yang sama
. Cells (RecordAkhir + 1, 10) . Value
End With
End Sub
End If
kosong
' Jika TextBox Nama Barang
If txtNama . Value — Then
' Menampilkan kotak pesan Nama Barang Kosong
151
MsgBox n Nama barang belum diisi n , vbOKOn1y +
vbCritica1 , "Nama Barang Kosong" ' TextBox
Nama Barang menjadi fokus txtNama . SetFocus
' Keluar dari Sub Procedure
Exit Sub
' Jika TextBox Satuan kosong
El self txtSatuan . Value = Then '
Menampilkan kotak pesan Satuan kosong
MsgBox Satuan belum diisi " , vbOKOn1y +
vbCritica1 , " Satuan Kosong" ' TextBox
Satuan menjadi fokus txtSatuan. SetFocus
' Keluar dari Sub Procedure
Exit Sub
' Jika TextBox Harga Beli kosong
El self txtHargaBe1i . Value = Then
' Menampilkan kotak pesan Harga Beli Kosong
MsgBox n Harga beli belum diisi n ,
vbOKOn1y + vbCritica1, " Harga Beli
Kosong" ' TextBox Harga Beli menjadi fokus
txtHargaBe1i . SetFocus ' Keluar dari Sub
Procedure
Exit Sub
' Jika TextBox Harga Jual kosong
El self txtHargaJua1. Value = Then
' Menampilkan kotak pesan Harga Jual Kosong
MsgBox n Harga jual belum diisi n , vbOKOn1y +
vbCritica1, " Harga Jual Kosong" ' TextBox
Harga Jual menjadi fokus txtHargaJua1.
SetFocus ' Keluar dari Sub Procedure
Exit Sub
' Jika nilai TextBox Diskon lebih dari 75
El self txtDiskon. Value > 75 Then
' Menampilkan kotak pesan Diskon Ter1a1u Besar
MsgBox n Diskon maksimal " , vbOKOn1y +
vbCritica1, "Diskon Ter1a1u Besar " ' TextBox
Diskon dikosongkan txtDiskon. Value = 11
' TextBox Diskon menjadi
fokus
txtDiskon.
SetFocus '
Keluar dari
Sub Procedure
Exit Sub
End If
"Edit Data" )
' Jika tombol Cancel di—klik
152
If PesanEdit = vbCance1 Then
' Keluar dari Sub
Procedure
Exit Sub
' Jika tombol OK di—klik
El self PesanEdit = vbOK Then
With wsDtbsBrg
' Edit nama barang pada record terpilih
. Cells (NoRecord, 2) . Value = txtNama . Value
' Edit satuan pada record terpilih
. Cells (NoRecord, 3) . Value = txtSatuan. Value
' Edit status pada record terpilih
. Cells (NoRecord, 4) . Value = cmbStatus . Value
' Edit harga beli pada record terpilih
. Cells (NoRecord, 5) . Value =
CDb1 ( txtHargaBe1i . Value )
' Edit harga jual pada record terpilih
. Cells (NoRecord, 6 ) . Value =
CDb1 ( txtHargaJua1. Value )
' Edit diskon pada record terpilih
. Cells (NoRecord, 7) . Value = txtDiskon.
Value ' Nilai TextBox Harga Diskon
txtHargaDiskon. Value = txtHargaJua1. Value —
( txtHargaJua1. Value * (txtDiskon. Value /
100 ) )
' Edit harga jual diskon pada record terpilih
. Cells (NoRecord, 8 ) . Value = txtHargaJua1.
Value — ( txtHargaJua1. Value * (txtDiskon.
Value / 100 ) )
' Edit stok barang minimal pada record terpilih
. Cells (NoRecord, 9 ) . Value = txtStokMinima1.
Value
End With
End If
End Sub
153
' Jika database barang kosong
If wsDtbsBrg . Range( "A3 " ) . Value = _ "
' Memanggil Sub Then
Call Procedure DatabaseKosong DatabaseKosong
' Keluar dari Sub
Exit Sub Procedure
End If
End Sub
154
Set rgAdvFi1ter = wsDtbsBrg . Range( n
1.2 :N3 TI
)
' Jika database barang
kosong = Then
If wsDtbsBrg . Range( "A3" ) DatabaseKosong . Value
' Memanggil Sub
Procedure
Call
DatabaseKosong
' Keluar dari Sub Procedure
Exit Sub
End If
155
' Memasukkan kode barang ke dalam sel
L3 wsDtbsBrg. Range ( "L3 " ) . Value =
n
& txtKode.Va1ue & n
' Menghapus nil ai dalam range M3 :
N3 wsDtbsBrg . Range ( "M3 : N3 " ) .
ClearContents ' Tinggi Form Barang
adalah 411 f ormBarang . Height = 411
' Penyaringan data menggunakan Advanced Filter
rgDtbsBrg. AdvancedFi1ter Action : =x1Fi1terInP1ace,
End Sub
With listCari
' Menambahkan judul kolom ListBox
. Addl tem
' Judul ListBox kolom pertama
With wsDtbsBrg
156
' rgTampi1 adalah range kode barang yang ditampilkan
Set rgTampi1 = wsDtbsBrg . Range( n KodeBarang" ) .
SpecialCe11s ( xlCe1 ITypeVi sible )
' sTampi1 merupakan pengulangan setiap sel dalam
rgTampi1
For Each sTampi1 In rgTampi1
With listCari
' Memasukkan item ke dalam ListBox
. Addltem sTampi1. Value
'No record baris sTampi1 dikurangi 2
. List( . ListCount 1 0 ) = sTampi1.Row — 2
' Kode barang berdasarkan nilai dalam sTampi1
. List( . ListCount 1 1 ) = sTampi1. Value
'Nama barang 1 kolom di sebelah kanan
sTampi1
. List( . ListCount
sTampi1. Offset (O, 1 ) . Value
End With
Next sTampi1
End With
End Sub
CommandButton Cari Nama di—klik
' Kode ketika cmdCariNama_C1ick( )
Private Sub
adalah worksheet
' wsDtbsBrgDatabaseBarang = Sheets
Set wsDtbsBrg
( "DatabaseBarang " ) adalah
' rgDtbsBrgrange DatabaseBarang
Set rgDtbsBrg = wsDtbsBrg .
Range( "DatabaseBarang" )
' rgAdvFi1ter adalah range L2 :N3 worksheet
DatabaseBarang " )
Set rgAdvFi1ter = wsDtbsBrg . Range ( " L2 :
N3
' Jika database barang kosong
If wsDtbsBrg . Range( "A3 " ) . Value
Then ' Memanggil Sub Procedure
DatabaseKosong
Call DatabaseKosong
' Keluar dari Sub Procedure
Exit Sub
End If
157
End If
158
End If
End Sub
End Sub
0
' Menghapus nilai dalam range L3 : N3
wsDtbsBrg . Range ( "L3 : N 3 " ) .
159
ClearContents
Hapus ListBox
listCari . Clear
End Sub
o
' Kode ketika CommandButton Keluar di—klik
Private Sub
cmdKe1uar_CIick( )
' Keluar dari Form
Barang
Unload Me
End Sub
End Sub
160
1 . Pilih menu utama Insert > dserForm. Atur properti dserForm
melalui window Properties. Pilih menu utama yew > Properties
Window atau tekan tombol F4. dbah properti OserForm sebagai
berikut: Name = formPemasok, Caption = (kosong), Height — 384
dan Width = 276.
2. Tambahkan kontrol ke dalam dserForm hingga tampilan Form
Pemasok terlihat seperti pada Gambar 4.6.
161
Name = cmdTambah, Caption = Tambah, Height
= 24, Left = 6, Top = 204, Width = 60, Accelerator
CommandButton = T, PicturePosition = 1 —
frmPicturePositionLeftCenter, Picture =
Tambah.gif, Tablndex = 7
Name = cmdEdit, Caption = Edit, Height = 24,
Left = 72, Top = 204, Width = 60, Accelerator = E,
PicturePosition = 1—
frmPicturePositionLeftCenter, Picture = Edit.gif,
CommandButton Tablndex = 8
Name = cmdHapus, Caption = Hapus, Height =
24, Left = 138, Top = 204, Width = 60,
CommandButton Accelerator = H, PicturePosition = 1—
frmPicturePositionLeftCenter, Picture =
Hapus.gif, Tablndex = 9
Name = cmdKeluar, Caption = Keluar, Height =
24, Left = 204, Top = 204, Width = 60,
CommandButton Accelerator = K, PicturePosition = 1—
frmPicturePositionLeftCenter, Picture =
Keluar.gif, Tablndex = 10
Name = cmdTutup, Caption = Tutup, Height = 24,
Left = 204, Top = 330, Width = 60, Accelerator =
CommandButton u, PicturePosition = 1—
frmPicturePositionLeftCenter, Picture = Tutup.gif,
Tablndex = 20
Name = cmdCariKode, Caption = (kosong), Height
= 18, Left = 150, Top = 36, Width = 18,
CommandButton Accelerator = C, PicturePosition = 12 —
frmPicturePositionCenter, Picture =
Cari.gif, Tablndex = 15
Name = cmdCariNama, Caption = (kosong),
Height = 18, Left = 246, Top = 60, Width = 18,
Accelerator = N, PicturePosition = 12 —
CommandButton frmPicturePositionCenter, Picture = Cari.gif,
162
Tablndex = 18
Name = cmdSortAscending, Caption = (kosong),
Height = 18, Left = 174, Top = 36, Width = 18,
CommandButton Accelerator = A, PicturePosition = 12 —
frmPicturePositionCenter, Picture = Sort
Ascending.gif, Tablndex = 16
CommandButton Name = cmdSortDescendin , Ca tion = (koson ),
163
= 108, Width = 60, , TextAlign = 3 —
fmTextAlignRight, Tablndex = 4, BackColor =
(abu-abu)
Name = txtKontak, Height = 18, Left = 72, Top =
132, Width = 72, Tablndex = 5, BackColor =
TextBox (abu-abu)
Name = txtTelp, Height = 18, Left = 204, Top —
132, Width = 60, TextAlign = 3 —
fmTextAlignRight,
Tablndex = 6, BackC010r =
TextBox (abuabu)
Name = txtHutang, Height = 18, Left = 72, Top —
156, Width = 72, TextAlign = 3 —
fmTextAlignRight,
TextBox BackC010r = (abu-abu)
Name = txtNoRecord, Height = 18, Left = 222,
TextBox To = 180, Width = 42, TextAlign = 3 —
fmTextAlignRight, Tablndex = 14, BackColor =
(abu-abu)
Name = scrollPemasok, Height = 18, Left = 30,
Top = 180, Width = 162, max = O, Min = O,
ScrollBar Tablndex = 11
Name = listCari, Height = 80, Left = 6, Top = 240,
ListBox Width = 258, BoundColumn = 3, ColumnCount =
3, Tablndex = 19
Name = imgForm, Height = 24, Left = 6, Top = 6,
Width = 24, Picture = Pemasok.gif,
Image
PictureAlignment = 2 — frmPictureAlignmentCenter,
PictureSizeMode = 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Form Pemasok,
Height = 24, Left = 30, Top = 6, Width = 234, Font
Label = (Font = Tahoma; Font style = Bold; Size =
16), BackColor = (hijau muda),
Forecolor = (merah)
Name = lblKode, Caption = Kode Pemasok,
Label
Height = 12, Left = 6, To = 42, Width = 63
164
Name = lblNama, Caption = Nama Pemasok,
Label
Height = 12, Left = 6, To = 66, Width = 63
Name = lblAlamat, Caption = Alamat, Height = 12
Label
Left = 6, To = 90, Width = 63
Name = lblKota, Caption = Kota, Height = 12, Left
Label
= 6, To = 114, Width = 63
Name = lblKodePos, Caption = Kode Pos, Height
Label
= 12, Left = 150, To = 114, Width = 48
Name = lblKontak, Caption = Kontak, Height =
Label
12, Left = 6 To = 138, Width = 63
Name = lblTelp, Caption = Telepon/HP, Height =
Label
12, Left = 150, To = 138, Width = 48
Name = lblHutang, Caption = Hutang, Height =
Label
12, Left = 6 To = 162, Width = 63
Name = lblRecord, Caption = Record, Height =
Label
12, Left = 150, To = 162, Width = 114
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan kemudian
ketikkan kode Macro sebagai berikut:
Private Sub UserForm_Activate( )
Set wsDtbsPmsk = Sheets ( " DatabasePemasok TI )
jm1hRecord = wsDtbsPmsk. Cells (wsDtbsPmsk. Rows . Count
,
End(x1Up) . Offset (O, O) . Row
f ormPemasok . Height = 261
If wsDtbsPmsk . FilterMode
Then wsDtbsPmsk. ShowA11Data
End If
165
End Sub
Sub DatabaseKosong( )
End Sub
End Sub
166
End
txtKode . BackC01 or =
&HCOCOCO Sub
End Sub
End Sub
Private Sub
txtKota_Exit (ByVal Cancel
As
MSForms .
ReturnB001ean )
txtKota.BackC010r
= &HCOCOCO
End Sub
Private Sub txtKodePos_Enter( )
txtKodePos . BackC010r =
End Sub
167
End
Private Sub txtKontak_Exit (ByVa1 Cancel As
MSForms . ReturnB001ean ) txtKontak .
BackC010r = &HCOCOCO
End Sub
End Sub
End Sub
Private Sub txtTe1p_KeyPress
As MSForms . Returnlnteger
Select
Case
KeyAscii
Case Asc( " O") To Asc( " 9")
Case Else
KeyAsc11
End Select
168
End
End Sub
End Sub
End Sub
If wsDtbsPmsk .
FilterMode Then
DatabasePemasok " ) .
Call cmdTutup_C1ick
Sort
End If
, Orderl :
wsDtbsPmsk . Range ( " =x1Ascending ,
Keyl : — "Nama Pemasok"
Header : =x1Yes
scroll Pemasok . Max
169
End
scroll Pemasok. Value =
Call scrollPemasok_Change
End Sub
Header : =x1Yes
Call scrollPemasok_Change
End Sub
170
Set wsDtbsPmsk = Sheets ( " DatabasePemasok 'I )
NoRecord = scroll Pemasok. Value + 2
Private Sub
Pemasok .
cmdAwa1_C1ick( Max
( "DatabasePemasok" )
Set wsDtbsPmsk = Sheets
End Sub
171
scroll Pemasok. Value = scroll Pemasok. Max
End Sub
Value Then
MsgBox " Kode pemasok yang Anda masukkan sudah ada" ,
172
vbCritica1 + vbOKOn1y , Kode Pemasok Ganda
" txtKode . Value = txtKode . SetFocus Exit
Sub
End If
Next Cek
With wsDtbsPmsk
End Sub
173
MsgBox "Nama pemasok belum diisi n ,
vbOKOn1y + vbCritica1 , "Nama Pemasok
Kosong" txtNama . SetFocus Exit Sub
El self txtA1amat . Value = Then
MsgBox "Alamat belum diisi " ,
vbOKOn1y + vbCritica1 , " Alamat
Kosong" txtA1amat . SetFocus Exit Sub
El self txtKota. Value = Then
MsgBox "Kota belum diisi " ,
vbOKOn1y + vbCritica1, " Kota
Kosong " txtKota . SetFocus Exit
Sub
El self txtKontak. Value = Then
MsgBox "Kontak belum diisi " ,
vbOKOn1y + vbCritica1, " Kontak
Kosong" txtKontak. SetFocus Exit
Sub
El self txtTe1p . Value = Then
MsgBox "Telepon/HP belum diisi n ,
vbOKOn1y + vbCritica1, " Telepon/HP
Kosong" txtTe1p . SetFocus Exit Sub
End If
"Edit Data" )
If PesanEdit = vbCance1
Then Exit Sub
El self PesanEdit = vbOK
Then With wsDtbsPmsk
. Cells 2) . Value = txtNama .
(NoRecord , Value 3) . Value =
. Cells txtA1amat . Value 4) .
(NoRecord , Value = txtKota . Value 5)
. Value = txtKodePos .
. Cells Value 6 ) . Value =
(NoRecord , txtKontak. Value
. Cells 7) . Value = txtTe1p .
(NoRecord , Value
. Cells
(NoRecord ,
. Cells
(NoRecord ,
End
With
End If
ThisWorkbook. Save
174
End Sub
If PesanHapus = vbCance1
Then Exit Sub
El self PesanHapus = vbOK Then
Range ( SelRecord, SelRecord. Offset ( O , Delete
Shift : =x1Up
End If
ThisWorkbook. Save
175
End Sub
176
If wsDtbsPmsk . FilterMode Then
wsDtbsPmsk. ShowA11Data
End If
End Sub
Sub Tampi1kanSemua( )
listCari . Clear
With listCari
. Addl tem
. List( . "
ListCount—1,
Record Pemasok
"
"
. List( .
ListCount — .
List( .
ListCount —
. ColumnWidths = 55 ; " & 135
End With
With wsDtbsPmsk
Set rgTampi1 = wsDtbsPmsk. Range( "KodePemasok"
SpecialCe11s ( xlCe11TypeVis ible )
For Each sTampi1 In rgTampi1
With listCari
. Addltem
. List( . ListCount—1, 0) = sTampi1. Row —
2
. List( . ListCount - 1 , 1 ) = sTampi1.
. List( . ListCount - 1 , Value
listCari . SetFocus
End Sub
177
Exit Sub
End If
If wsDtbsPmsk .
FilterMode Then
wsDtbsPmsk. ShowA11Data
End If
End Sub
End Sub
178
Set wsDtbsPmsk = Sheets ( " DatabasePemasok 'I
If wsDtbsPmsk .
FilterMode Then
wsDtbsPmsk. ShowA11Data
End If
listCari . Clear
End Sub
End Sub
Private Sub UserForm_QueryC10se ( Cancel As
Integer , CloseMode As Integer )
179
properti OserForm sebagai berikut: Name = formPelanggan,
Caption = (kosong), Height = 384 dan Width = 276.
2. Tambahkan kontrol ke dalam dserForm hingga tampilan
Form Pelanggan akan terlihat menjadi seperti pada Gambar
4.7.
180
Name = cmdEdit, Caption = Edit, Height = 24,
Left = 72, Top = 204, Width = 60, Accelerator =
CommandButton E, PicturePosition = 1—
frmPicturePositionLeftCenter, Picture =
Edit.gif, Tablndex = 8
Name = cmdHapus, Caption = Hapus, Height =
24, Left = 138, Top = 204, Width = 60,
CommandButton Accelerator = H, PicturePosition = 1—
frmPicturePositionLeftCenter, Picture =
Hapus.gif, Tablndex = 9
181
frmPicturePositionCenter, Picture = Sort
Ascendin . if, Tablndex = 16
Name = cmdSortDescending, Caption = (kosong),
Height = 18, Left = 198, Top = 36, Width = 18,
CommandButton Accelerator = D, PicturePosition = 12 —
frmPicturePositionCenter, Picture = Sort
Descending.gif, Tablndex = 17
Name = cmdAwal, Caption = (kosong), Height =
18, Left = 6, Top = 180, Width = 18, Accelerator
= w, PicturePosition = 12 —
frmPicturePositionCenter, Picture = Awal.gif,
CommandButton Tablndex = 12
Name = cmdAkhir, Caption = (kosong), Height =
18, Left = 198, Top = 180, Width = 18,
CommandButton Accelerator = r, PicturePosition = 12 —
frmPicturePositionCenter, Picture =
Akhir.gif, Tablndex = 13
Name = txtKode, Height = 18, Left = 72, Top =
36, Width = 72, Tablndex = 0, BackColor =
TextBox (abu-abu)
182
Name = txtKontak, Height = 18, Left = 72, Top —
132, Width = 72, Tablndex = 5, BackColor =
TextBox (abu-abu)
Name = txtTelp, Height = 18, Left = 204, Top =
132, Width = 60, TextAlign = 3 fmTextAlignRight,
Tablndex = 6, BackColor =
TextBox (abu-abu)
Name = txtPiutang, Height = 18, Left = 72, Top =
156, Width = 72, TextAlign = 3
fmTextAlignRight, BackColor =
TextBox (abu-abu)
Name = txtNoRecord, Height —- 18, Left = 222,
Top = 180, Width = 42, TextAlign = 3 —
fmTextAlignRight, Tablndex = 14, BackColor =
TextBox (abu-abu)
Name = scrollPelanggan, Height = 18, Left = 30,
Top = 180, Width = 162, max = O, Min = O,
ScrollBar Tablndex = 11
Name = listCari, Height = 80, Left = 6, Top =
240, Width = 258, BoundColumn = 3,
ListBox ColumnCount = 3, Tablndex = 19
Name = imgForm, Height = 24, Left = 6, Top — 6,
Width = 24, Picture = Pelanggan.gif,
PictureAlignment = 2 — frmPictureAlignmentCenter,
Image PictureSizeMode = 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Form Pelanggan,
Height = 24, Left = 30, Top = 6, Width = 234, Font
= (Font = Tahoma; Font style = Bold; Size =
Label 16), BackC010r = (hi•au muda),
Forecolor = (merah)
Name = lblKode, Caption = Kode Pelanggan,
Label Hei ht = 12, Left = 6, To = 42, Width = 63
Name = lblNama, Caption = Nama Pelanggan,
Label
Hei ht = 12, Left = 6, To = 66, Width = 63
Name = lblAlamat, Caption = Alamat, Height =
Label
12, Left = 6, To = 90, Width = 63
Name = lblKota, Caption = Kota, Height = 12, Left
Label
= 6, To = 114, Width = 63
183
Name = lblKodePos, Caption = Kode Pos, Height
Label
= 12, Left = 150, To = 114, Width = 48
Name = lblKontak, Caption = Kontak, Height =
Label
12, Left = 6, To = 138, Width = 63
Name = lblTelp, Caption = Telepon/HP, Height =
Label
12, Left = 150, To = 138, Width = 48
Name = lblPiutang, Caption = Piutang, Height =
Label
12, Left = 6, To = 162, Width = 63
Name = lblRecord, Caption = Record, Height =
Label
12, Left = 150, To = 162, Width = 114
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
Private Sub )
UserForm_Activate(
( "DatabasePe1anggan" )
Set wsDtbsP1gn = Sheets Cells (wsDtbsP1gn.Rows . Count,
0 ) . Row — 2
jm1hRecord = wsDtbsP1gn.
End(x1Up) . Offset
( 0 , 261
formPe1anggan . Height3" ) . Value = Then
—
If wsDtbsP1gn . Range(
' A
t
Then
Call IData
DatabaseKosong
Exit Sub
End If
Hidden = False
If wsDtbsP1gn .
1
FilterMode
jm1hRecord
wsDtbsP1gn . ShowA1
End If
End Sub
Sub DatabaseKosong( )
184
MsgBox "Tidak ada data dalam database pelanggan" , vbOKOn1y +
vblnformation , " Database Pelanggan Kosong "
End Sub )
Private Sub txtKode_Enter( txtKode .
BackC010r = &H80000005&
End Sub
185
ReturnB001ean ) txtKota .
BackC010r = &HCOCOCO
End Sub
End Sub
End Sub
End Sub
Private Sub
txtTe1p_Enter( txtTe1p .
BackC010r =
End Sub
Private Sub
. ReturnB001ean )
. BackC010r = &HCOCOCO
End Sub
186
Private Sub txtKodePos_KeyPress (ByVa1
KeyAscii As MSForms . Returnlnteger )
End Sub
Private Sub txtTe1p_KeyPress (ByVa1
KeyAscii As MSForms . Returnlnteger )
End Sub
End Sub
Private Sub
txtPiutang
Private Sub
Set wsDtbsP1gn
End Sub
187
If txtNoRecord. Value = Then
Exit Sub
El self txtNoRecord. Value = O Or
txtNoRecord. Value > scroll Pelanggan .
Max Then
MsgBox "Nomor record yang Anda masukkan tidak
ada" , vbOKOn1y + vbCritica1, "No Record Tidak
Ada " txtNoRecord. Value = txtNoRecord.
SetFocus Exit Sub
Else scroll Pelanggan . Value =
txtNoRecord. Value
End If
End Sub
End Sub
Call
scrollPe1anggan_Change
188
End Sub
= Then
189
scroll Pelanggan . Value = scroll Pelanggan . Max
End Sub
Private Sub cmdTambah_C1ick( )
Set wsDtbsP1gn = Sheets ( " DatabasePe1anggan n )
RecordAkhir wsDtbsP1gn. Cells ( wsDtbsP1gn. Rows . Count
,
End(x1Up) . Offset (O, O) . Row
190
(Cek + 2, 1) . Value
MsgBox"Kodepelanggan "
vbCritica1 Pelanggan Ganda
txtKode.Value =
txtKode. SetFocus
Exit Sub
End If
Next Cek
With wsDtbsP1gn
wsDtbsP1gn . Cells
( RecordAkhir txtKode .
1 , 1= ) . Value
Value
wsDtbsP1gn . Cells
( RecordAkhir txtNama.
1 , 2)
=
. Value
Value
wsDtbsP1gn . Cells
( RecordAkhir txtA1amat .
1 , 3)
=
. Value
Value
wsDtbsP1gn . Cells
( RecordAkhir txtKota.
1 , 4= ) . Value
Value
wsDtbsP1gn . Cells
( RecordAkhir txtKodePos .
1 , 5)
=
. Value
Value
wsDtbsP1gn . Cells
( RecordAkhir txtKontak.
1 , 6= ) . Value
Value
wsDtbsP1gn . Cells
( RecordAkhir txtTe1p .
1 , 7)
=
. Value
Value
wsDtbsP1gn . Cells ( RecordAkhir
1 ,8 ) . Value
End With
scroll Pelanggan . Min = 1 scroll
Pelanggan . Max = scroll Pelanggan . Max
+ 1 scroll Pelanggan . Value = scroll
Pelanggan . Max
1b1Record. Caption = "Record " & scroll Pelanggan.
Value & dari & scroll Pelanggan. Max
ThisWorkbook. Save
End Sub
191
Exit Sub
End If
"Edit Data" )
If PesanEdit = vbCance1
Then Exit Sub
El self PesanEdit = vbOK Then
With wsDtbsP1gn 2) . Value = txtNama .
. Cells Value
( NoRecord , 3) . Value = txtA1amat
. Cells . Value
( NoRecord , 4) . Value = txtKota .
. Cells Value
( NoRecord ,
5) . Value =
. Cells
txtKodePos . Value
192
( NoRecord ,
. Cells 6 ) . Value = txtKontak.
( NoRecord , Value
. Cells 7) . Value = txtTe1p .
( NoRecord , Value
End
With End
If
ThisWorkbook. Save
End Sub
If PesanHapus = vbCance1
Then Exit Sub
El self PesanHapus = vbOK Then
Range ( SelRecord, SelRecord. Offset ( O ,
7) ) . Delete
Shift :
=x1Up End If
193
scroll Pelanggan . Max = scroll Pelanggan .
Max — 1 scroll Pelanggan . Value = scroll
Pelanggan . Max
1b1Record. Caption = "Record " & scroll Pelanggan.
Value & dari n & scroll Pelanggan. Max
ThisWorkbook. Save
End Sub
If wsDtbsP1gn .
FilterMode Then
wsDtbsP1gn. ShowA11Data
End If
194
End With
End Sub
Sub Tampi1kanSemua( )
listCari . SetFocus
End Sub
195
If wsDtbsP1gn .
Range( " A3 " ) .
Then
Value = Call
DatabaseKosong
Exit
Sub
End If
If wsDtbsP1gn .
FilterMode Then
wsDtbsP1gn . ShowA11Data
End If
End Sub
196
If listCari . List Index > O Then
scroll Pelanggan . Value =
listCari . List ( listCari . List
Index , 0 )
End If
End Sub
If wsDtbsP1gn . FilterMode
wsDtbsP1gn . ShowA11Data
End If Then
" ) .
wsDtbsP1gn . Range( "J3 : ClearContents L3
listCari . Clear
End Sub
197
efektif. dntuk mengatasi masalah tersebut, Anda dapat
membuat Form Cari Barang.
1. Pilih menu utama Insert > dserForm. Atur properti
dserForm melalui window Properties. Pilih menu utama
yew > Properties Window atau tekan tombol F4. dbah
properti dserForm sebagai berikut: Name =
formCariBarang, Caption = (kosong), Height = 264 dan
Width = 432.
2. Tambahkan kontrol ke dalam dserForm hingga tampilan
Form Cari Barang menjadi seperti pada Gambar 4.8.
198
Name = optNama, Caption = Nama Barang,
OptionButton Height = 18, Left = 150, Top = 216, Width = 66,
Value = False, Accelerator = N, Tablndex = 2
Name = txtKode, Height = 18, Left = 78, Top =
TextBox 216, Width = 66, BackC010r =
(abu-abu) , Tablndex = 1, Locked = False
Name = txtNama, Height = 18, Left = 222, Top =
TextBox 216, Width = 132, BackC010r =
(abu-abu), Tablndex = 3, Locked = True
Name = listCari, Height = 168, Left = 6, Top = 36,
ListBox Width = 414, BoundColumn = 5, ColumnCount =
5, Tablndex = 4
Name = imgForm, Height = 24, Left = 6, Top = 6,
Width = 24, Picture = Cari.gif, PictureAlignment =
Image
2 — frmPictureAlignmentCenter, PictureSizeMode =
0 — frmPictureSizeModeCli
Name = lblForm, Caption = Form Cari Barang,
Height = 24, Left = 30, Top = 6, Width = 390, Font
Label = (Font = Tahoma; Font style = Bold; Size =
16), BackColor = (hijau muda),
Forecolor = (merah)
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
199
Private Sub optKode_C1ick( )
TextBox Nama Barang terkunci
txtNama . Locked = True
TextBox Nama Barang dikosongkan
txtNama . Value = o' TextBox Kode
Barang tidak terkunci txtKode .
Locked = False
' TextBox Kode Barang men jadi fokus
txtKode . SetFocus
End Sub
End Sub
End Sub
Kode ketika masuk dalam TextBox Nama Barang
Private Sub txtNama_Enter( )
' Warna TextBox Nama Barang men jadi putih
txtNama . BackC010r = &H80000005&
End Sub
200
Private Sub txtKode_Change( )
wsDtbsBrg adalah worksheet DatabaseBarang
Set wsDtbsBrg = Sheets ( " DatabaseBarang n
) rgDtbsBrg adalah range DatabaseBarang
Set rgDtbsBrg = wsDtbsBrg. Range( " DatabaseBarang" )
rgAdvFi1ter adalah range L2 :M3 worksheet
DatabaseBarang
Set rgAdvFi1ter = wsDtbsBrg . Range( n 1.2 : M3 )
Jika database barang kosong
If wsDtbsBrg . Range( "A3" ) . Value = n n Then
' Memanggil Sub Procedure DatabaseKosong
Call DatabaseKosong
' Keluar dari Sub Procedure
Exit Sub
End If
Jika data yang ditampilkan merupakan hasil penyaringan
If wsDtbsBrg . FilterMode Then
' Tampilkan seluruh data dalam worksheet
DatabaseBarang wsDtbsBrg . ShowA11Data
End If
201
' TextBox Kode Barang men jadi
fokus txtKode . SetFocus
' Keluar dari Sub Procedure
Exit Sub
' Jika ada sel berisi kata kunci kode
barang Else
' Memasukkan kode barang ke dalam sel L3
wsDtbsBrg. Range( "L3 " ) . Value =
"*" & txtKode.Va1ue & 'I * " '
Menghapus Nilai dalam range M3 : N3
wsDtbsBrg . Range ( "M3 : N3 ) .
ClearContents ' Penyaringan data
menggunakan Advanced Filter rgDtbsBrg.
AdvancedFi 1 ter
Action : =x1Fi1terInP1ace ,
Cri teriaRange : =rgAdvFi1 ter
' Memanggil Sub Procedure Tampi1kanSemua
Call Tampi1kanSemua
End If
End With
End If
End Sub
End Sub
With listCari
202
' Menambahkanjudul kolom ListBox
. Addl tem
' Judul ListBox kolom per tama
&
n
; n
& 75 & &55
End With
With wsDtbsBrg
' rgTampi1 adalah kode barang yang
ditampilkan Set rgTampi1 = wsDtbsBrg .
Range( "KodeBarang" ) .
SpecialCe11s ( xlCe1 ITypeVi sible )
' sTampi1 merupakan pengulangan tiap sel dalam
rgTampi1
For Each sTampi1 In
rgTampi1 With listCari
' Menambahkan item ke dalam ListBox
. Addltem sTampi1. Value
' Kode barang berdasarkan nilai dalam
sTampi1
. List( . ListCount = sTampi1. Value
'Nama barang 1 kolom di sebelah kanan
sTampi1
. List( . ListCount
sTampi1. Offset
(O, 1 ) . Value
' Harga beli 4 kolom di sebelah kanan
sTampi1
. List( . ListCount
Format( sTampi1. Offset (O, 4 ) .
Value,
' Harga jual diskon 7 kolom sTampi1
. List( . ListCount
Format( sTampi1. Offset (O, 7) .
Value, ' Stok 9 kolom di sebelah
kanan sTampi1
. List( . ListCount
sTampi1. Offset
(O, 9 ) . Value
203
End With
Next sTampi1
End With
End Sub
If
Call DatabaseKosong
' Keluar dari Sub Procedure
Exit Sub
End If
204
tidak ditemukan n , vbOKOn1y +
vblnformation, "Nama Barang Tidak
Ada " ' Menghapus ListBox listCari .
Clear
' TextBox Nama Barang dikosongkan
txtNama. Value =
' TextBox Nama Barang menjadi fokus
txtNama. SetFocus
' Keluar dari Sub Procedure
Exit Sub
' Jika ada sel berisi kata kunci nama
barang Else
' Memasukkan kode barang ke dalam sel M3
wsDtbsBrg. Range( "M3 " ) . Value =
"*" & txtNama.Va1ue & 'I * " '
Menghapus nilai dalam sel L3 dan N3
wsDtbsBrg . Range ( " 1.3 ) .
ClearContents ' Penyaringan data
menggunakan Advanced Filter rgDtbsBrg.
AdvancedFi 1 ter
Action : =x1Fi1terInP1ace ,
CriteriaRange : =rgAdvFi1ter
' Memanggil Sub Procedure Tampi1kanSemua
Call Tampi1kanSemua
End If
End With
End If
End Sub
205
' Memasukkan kode barang ke Form Transaksi
Penjualan formTransaksiJua1. cmbKodeBarang .
Value = listCari . List( listCari . List
Index, O)
End
If End
If
End Sub
' Kode ketika CommandButton Keluardi-klik
Private Sub cmdKe1uar_C1ick( )
End Sub
o
' Menghapus nil ai dalam range L3
: N3 wsDtbsBrg . Range ( "L3 : N3
" ) . ClearContents
End Sub
206
1. Pilih menu utama Insert > userForm. Atur properti
dserForm melalui window Properties. Pilih menu utama
yew > Properties Window atau tekan tombol F4. dbah
properti OserForm sebagai berikut: Name =
formCariPemasok, Caption = (kosong), Height = 264 dan
Width = 432.
orm an emaso
207
Name = txtKode, Height = 18, Left = 84, Top =
216, Width = 60, BackColor =
TextBox (abu-abu) , Tablndex = 1, Locked = False
Name = txtNama, Height = 18, Left = 228, Top =
216, Width = 126, BackC010r =
TextBox (abu-abu), Tablndex = 3, Locked = True
Name = listCari, Height = 168, Left = 6, Top = 36,
Width = 414, BoundColumn = 5, ColumnCount =
ListBox 5, Tablndex = 4
Name = imgForm, Height = 24, Left = 6, Top = 6,
Width = 24, Picture = Cari.gif, PictureAlignment =
2 — frmPictureAlignmentCenter, PictureSizeMode =
Image 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Form Cari Pemasok,
Height = 24, Left = 30, Top = 6, Width = 390, Font
Label = (Font = Tahoma; Font style = Bold; Size =
16), BackColor = (hijau muda),
Forecolor = (merah)
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
End Sub
208
Private Sub
optNama_C1ick( )
txtKode . Locked =
txtKode .
txtNama . Locked =
txtNama . SetFocus
End Sub
End Sub
End Sub
If wsDtbsPmsk .
FilterMode Then
209
wsDtbsPmsk. ShowA11Data
End If
If txtKode . Value =
Then listCari .
Clear txtKode .
SetFocus
Else
With wsDtbsPmsk. Range ( "KodePemasok 'I )
Set c = . Find( txtKode . Value, Lookln : =x1Va1ues )
If c Is Nothing Then
MsgBox "Kode " & txtKode . Value &
tidak ada " , vbOKOn1y +
vblnformation ,
"Kode Pemasok
Tidak Ada n listCari .
Clear txtKode . Value
= txtKode . SetFocus
Exit Sub
Else wsDtbsPmsk. Range( "J 3"
) . Value =
" & txtKode . Value & "*"
wsDtbsPmsk . Range ( "K 3 : L3 " )
. ClearContents rgDtbsPmsk .
AdvancedF i 1 t er
Action : =x1Fi1terInP1ace ,
Cr i
teriaRange : Tampi1kanSemua =rgAdvF i 1
ter
Call
End If
End With
End If
End Sub
Sub DatabaseKosong( )
End Sub
Sub Tampi1kanSemua( )
210
Set wsDtbsPmsk = Sheets ( " DatabasePemasok 'I
listCari . Clear
With listCari
. Addl tem
. List( . ListCount
-1, " Kode Pemasok "
. List( . ListCount
-1, "Nama Pemasok "
. List( . ListCount
-1, " Kontak "
-1,
. List( . ListCount "Telp/HP'l
. List( . ListCount
-1, " Hutang "
With wsDtbsPmsk
Set rgTampi1 = wsDtbsPmsk. Range ( n KodePemasok "
SpecialCe11s ( xlCe1 ITypeVi sible )
For Each sTampi1 In rgTampi1
With listCari
. Addltem sTampi1. Value
. List( . ListCount - 1 , O ) = sTampi1. Value
. List( . ListCount - 1 ,
sTampi1. Offset ( O , 1 ) . Value
. List( . ListCount - 1 ,
sTampi1. Offset ( O , 5 ) . Value
. List( . ListCount—1,
sTampi1 . Offset (0 ,
. List( . ListCount — 1 ,
Format
( sTampi1.
Offset ( 0 , 7 ) . Value,
End With
Next sTampi1
End With
End Sub
211
If wsDtbsPmsk. Range( "A3 " ) . Value = n n Then Call
DatabaseKosong
Exit Sub
End If
End Sub
Private Sub
212
If listCari . List Index > 0 Then
formTransaksiBe1i . cmbKodePemasok .
Value = listCari . List ( listCari .
List Index, 0 )
End If
End Sub
End Sub
CloseMode As Integer )
Set wsDtbsPmsk = Sheets ( "DatabasePemasok " )
If wsDtbsPmsk . FilterMode
Then wsDtbsPmsk . ShowA11
Data End If
213
atau tekan tombol F4. dbah properti OserForm sebagai
berikut: Name formTransaksiBeli, Caption — (kosong),
Height = 405 dan Width = 432.
2. Tambahkan kontrol ke dalam dserForm hingga tampilan
Form Transaksi Pembelian menjadi seperti pada Gambar
4.10.
214
Forecolor =
Name = cmdCetak, Caption = Cetak, Height = 24,
Left = 90, Top = 348, Width = 42, Accelerator =
C, Tablndex = 4, Font = (Font = Tahoma; Font
style = Bold; Size = 8), BackColor =
CommandButton (biru), Forecolor =
Name = cmdBayar, Caption = Bayar, Height = 24,
Left = 132, Top = 348, Width = 42, Accelerator =
y, Tablndex = 5, Font = (Font = Tahoma; Font
style = Bold; Size = 8), BackColor =
CommandButton (biru), Forecolor =
Name = cmdKeluar, Caption = Keluar, Height =
24, Left = 222, Top = 348, Width = 42,
Accelerator = K, Tablndex = 7, Font = (Font =
Tahoma; Font style = Bold; Size = 8), BackColor =
CommandButton (biru), Forecolor =
Name = cmdlnput, Caption = Input, Height = 24,
Left = 276, Top = 30, Width = 42, Accelerator = I,
Tablndex = 2, Font = (Font = Tahoma; Font style
= Bold; Size = 8), BackColor =
CommandButton (biru), Forecolor = ( utih)
Name = cmdEdit, Caption = Edit, Height = 24,
Left = 318, Top = 30, Width = 42, Accelerator = E,
Tablndex = 3, Font = (Font = Tahoma; Font style
= Bold; Size = 8), BackColor =
CommandButton (biro, Forecolor =
Name = cmdHapus, Caption = Hapus, Height =
24, Left = 360, Top = 30, Width = 42, Accelerator
= H, Tablndex = 4, Font = (Font = Tahoma; Font s
CommandButton le = Bold; Size = 8), BackColor =
215
PicturePosition = 12 — frmPicturePositionCenter,
Picture = Sort Ascending.gif, Tablndex = 1
Name = cmdSortDesPemasok, Caption =
(kosong), Height = 18, Left = 168, Top = 30,
Width = 18, PicturePosition = 12 —
frmPicturePositionCenter, Picture = Sort
CommandButton Descendin . if, Tablndex = 2
Name = cmdCariPemasok, Caption = (kosong),
Height = 18, Left = 192, Top = 30, Width = 18,
PicturePosition = 12 — frmPicturePositionCenter,
CommandButton Picture = Cari.gif, Tablndex = 3
Name = cmdSortAscBarang, Caption = (kosong),
Height = 18, Left = 336, Top = 6, Width = 18,
CommandButton
PicturePosition = 12 — frmPicturePositionCenter,
Picture = Sort Ascendin . if, Tablndex = 5
Name = cmdSortDesBarang, Caption = (kosong),
Height = 18, Left = 360, Top = 6, Width = 18,
PicturePosition = 12 —
frmPicturePositionCenter, Picture = Sort
CommandButton Descendin . if, Tablndex = 6
Name = cmdCariBarang, Caption = (kosong),
Height = 18, Left = 384, Top = 6, Width = 18,
CommandButton
PicturePosition = 12 — frmPicturePositionCenter,
Picture = Cari.gif, Tablndex = 7
Name = frmTransaksi, Caption = Transaksi, Height
= 84, Left = 6, Top = 36, Width = 222, Tablndex
Frame
Name = frmBarang, Caption = Barang, Height =
Frame 66, Left = 6, Top = 126, Width = 414, Tablndex =
1
Name = txtNamaPemasok, Height = 18, Left = 72,
Top = 54, Width = 138, Locked = True, BackColor
TextBox = (abu-abu)
Name = txtNamaBarang, Height = 18, Left = 192,
Top = 6, Width = 138, Locked = True, BackColor
TextBox = (abu-abu)
TextBox Name = txtJumlah, Height = 18, Left = 72, Top =
216
30, Width = 60, TextAlign = 3 —
fmTextAlignRight, Tablndex = 1, BackC010r =
(abuabu)
217
(abu-abu)
Name = cmbKodeBarang, Height = 18, Left = 72,
Top = 6, Width = 60, BoundColumn = 1,
ColumnCount = 2, ColumnWidths = 45 pt; 135
pt, ListWidth = 180 pt, Style = 2
fmStyleDropDownList, Tablndex = 0, BackColor
=
ComboBox (abu-abu)
Name = listBeli, Height = 123, Left = 6, Top =
198, Width = 414, BoundColumn = 6,
ListBox ColumnCount = 6, Tablndex = 20
Image Name = imgForm, Height = 24, Left = 6, To
218
Name = lblKetTanggal, Caption = Tanggal, Height
= 12, Left = 6, Top = 330, Width = 60, Font =
(Font = Tahoma; Font style = Bold; Size = 8),
BackColor = (merah), ForeColor =
Label ( utih)
Name = lblKetTempo, Caption = Jatuh Tempo,
Height = 12, Left = 138, Top = 330, Width = 60,
Font = (Font = Tahoma; Font style = Bold; Size =
8), BackC010r = (merah), Forecolor
Label = ( utih)
Name = lblTanggal, Caption = (kosong), Height =
12, Left = 66, Top = 330, Width = 66, Font =
(Font = Tahoma; Font style = Bold; Size = 8),
TextAlign = 3 — fmTextAlignRight, BackColor =
(biru), Forecolor =
Label ( utih)
Name = lblTempo, Caption = (kosong), Height =
12, Left = 198, Top = 330, Width = 66, Font =
(Font = Tahoma; Font style = Bold; Size = 8),
Label TextAlign = 3 — fmTextAlignRight, BackColor =
(biru), Forecolor = (
utih)
Name = lblNoFaktur, Caption = No Faktur, Height
Label
= 12, Left = 6, To = 12, Width = 60
Name = lblKodePemasok, Caption = Kode
Label Pemasok, Height = 12, Left = 6, Top = 36, Width
= 60
Name = lblNamaPemasok, Caption = Nama
Label Pemasok, Height = 12, Left = 6, Top = 60, Width
= 60
Name = lblKodeBarang, Caption = Kode Barang,
Label
Hei ht = 12, Left = 6, To = 12, Width = 60
Name = lblJumlah, Caption = Jumlah, Height = 12,
Label
Left = 6, To = 36, Width = 60
Name = lblNamaBarang, Caption = Nama Barang,
Label
Height = 12, Left = 138, To = 12, Width = 54
219
Name = lblGrandTotal, Caption = Grand Total,
Label
Hei ht = 12, Left = 270, To = 336, Width = 48
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
' Kode ketika Form
Pembelian aktif
Transaksi )
kemudian ketikkan kode
Macro sebagai berikut: ItemPemasok
Private Sub
UserForm_Activate( ItemBarang
KodePemasok " )
With Me . cmbKodePemasok
' Menambahkan item dalam ComboBox Kode
Pemasok
. Addltem spemasok. Value
' Memasukkan nama pemasok ke dalam ComboBox
. List( . ListCount —
spemasok. Offset (O, 1
) . Value
End With
220
Next spemasok
' Item yang ditampilkan adalah kode pemasok
teratas cmbKodePemasok. Value =
cmbKodePemasok. List ( O )
End If
End Sub
End Sub
221
' Menambahkan item ListBox sebagai judul kolom
. Addl tem
' Judul ListBox kolom pertama
. List ( • ListCount - 1 ,
' Judul ListBox kolom kedua
. ColumnWidths =
20 &
End With
End Sub
masuk dalam ComboBox No Faktur
Kode cmbNoFaktur_Enter( ) ketika
ComboBox No Faktur men jadi put
ih . BackC010r
Private
Sub '
Warna =
keluar dari ComboBox No Faktur
cmbNoFaktur
End Sub
Kode ketika
Private Sub cmbNoFaktur_Exit ( ByVa1 Cancel As
MSForms . ReturnB001ean )
' Warna ComboBox No Faktur men jadi abu—abu
cmbNoFaktur . BackC010r- = &HCOCOCO
End Sub
222
Private Sub cmbKodePemasok_Exit (ByVa1 Cancel
As MSForms . ReturnB001ean)
' Warna ComboBox Kode Pemasok menjadi abu—abu
cmbKodePemasok . BackC010r = &HCOCOCO
End Sub
223
Else
' Nilai TextBox Hutang sama dengan TextBox
Total txtHutang. Value = txtTota1. Value
End
If End
If
End Sub
End Sub
End Sub
224
' Memanggil Sub Procedure ItemPemasok
Call ItemPemasok
End Sub
End Sub
End Sub
End If
225
' Mengurutkan Ascending database barang kolom Nama
Barang wsDtbsBrg . Range ( " DatabaseBarang " ) . Sort
Key1 : "Nama Barang "
End Sub
226
Memanggil ItemBarang
Call ItemBarang
End Sub
' Kode ketika CommandButton Cari
Barang di-klik
Private Sub cmdCariBarang_C1ick( )
' Menampilkan
Form Cari Barang
formCariBarang .
Show
End Sub
End Sub
227
' Sub Procedure
' Kode ketika item
ComboBox Kode Barang
diubah Private Sub
cmbKodeBarang_Change ( )
End Sub
228
' Jika TextBox Total kosong atau
bernilai O
If txtTota1. Value = Or
txtTota1. Value = O
Then ' TextBox
Hutang bernilai O
txtHutang .
Value
' Keluar dari
Sub Procedure
Exit Sub
' Jika TextBox Bayar kosong atau
bernilai O
El self txtBayar . Value = " Or
txtBayar . Value = O
Then
' Keluar dari Sub
Procedure
Exit Sub
' Jika nilai TextBox Bayar lebih
besar dari TextBox Total
El self CDb1 ( txtBayar .
Value) > CDb1 ( txt
Total . Value) ThentxtTota1. Value
' Nilai TextBox
dikosongkan
Bayar sama dengan
TextBox Total txtBayar .
Value = ' TextBox Hutang
txtHutang . Value — C) '
Keluar dari Sub Procedure
Exit Sub
Else
' Perhitungan nilai pada
TextBox Hutang txtHutang .
Value = Format (Abs ( CDb1
( txtBayar . Value) -
CDb1 ( txtTota1.
Value) ) ,
End If
End Sub
229
' Sub Procedure
n
) ' rgKodeBrg
adalah range
KodeBarang
Set rgKodeBrg = wsDtbsBrg . Range
( " KodeBarang
' Jika database barang kosong
If wsDtbsBrg . Range( "A3" ) .
Value =
Keluar dari
Exit Sub
End If
230
sudah dimasukkan dalam
transaksi
If listBe1i .
List
( CekKodeB
arang, 1 )
=
cmbKodeBar
ang .
Value Then
' Menampilkan kotak pesan
Item Barang Sudah Masuk
MsgBox " Item " & listBe1i
. List ( CekKodeBarang, 2)
&
231
' Sub Procedure
'c adalah sel hasil pencarian
berdasar ComboBox Kode Barang
Set c = rgKodeBrg.
Find( cmbKodeBarang .
Value , Lookln :
=x1Va1ues )
With listBe1i
' Memasukkan item ke dalam
ListBox
. Addl tem
' Pengisian kolom No
. List( . ListCount —
listBe1i . ListCount
' Pengisian kolom Kode
. List( . ListCount —
cmbKodeBarang. Value
' Pengisian kolom Nama Barang
. List( . ListCount —
txtNamaBarang. Value
' Pengisian kolom Jumlah
. List( . ListCount —
txtJum1ah. Value
' Pengisian kolom Harga
. List( . ListCount —
Format (c. Offset (O, 4) .
Value, n
' Pengisian kolom Total
. List( . ListCount —
( txtJum1ah. Value *
CDb1(c.Offset(O, 4) .
Value) ,
End With
Total Bell
For Total = 1 To listBe1i .
ListCount
Total Beli = Total Beli + CDb1
( listBe1i . List (Total ,
5) )
232
'
Pengisian TextBox Grand Total
txtGrandTota1.
'
Pengisian
txtTota1.
'
Value
Pengisian
txtHutang. Value
Next Total
' TextBox Jumlah
txtJum1ah.Value
' ComboBox Kode
cmbKodeBarang . SetFocus
' TextBox Bayar
txtBayar .Value
End Sub
' Kode ketika
CommandButton Edie
di—klik Private Sub
cmdEdit_C1ick( )
233
' Sub Procedure
' Menampilkan kotak pesan
Jumlah Barang Kosong
MsgBox n Jumlah barang
belum diisi n
,
vbOKOn1y + vbCritica1,
" Jumlah Barang
Kosong" ' TextBox
Jumlah men jadi fokus
txtJum1ah. SetFocus
Keluar dari
Exit Sub
End If
With listBe1i
' Jika indeks ListBox kurang
dari 1
If . List Index < 1 Then
' Menampilkan kotak pesan
Pilih Nomor Item
MsgBox "Pilih nomor
item yang akan diedit"
, vbOKOn1y +
vblnformation, n Pilih
Nomor Item " ' ListBox
menjadi fokus listBe1i
. SetFocus
' Keluar dari Sub
Procedure
Exit Sub
' Jika indeks ListBox lebih
dari 1
Else
'c adalah sel hasil
pencarian berdasar kode
barang
Set c = rgKodeBrg. Find( .
List( . List Index,
1 ) , Lookln :
=x1Va1ues )
' Pengisian kolom Jumlah
. List( . Listlndex, 3) =
txtJum1ah. Value
' Pengisian kolom Harga
Beli
. List( .
4) .
Listlndexo 4 )
Value,
— Format (c.
Offset (0,
' Pengisian
kolom Total
234
. List( . Listlndex, 5) =
Format ( txtJum1ah. Value
*
CDb1
(c.O
ffse
t(0,
4) .
Valu
e) ,
En
d If
End
With
Total
Bell
For Total = 1 To
listBe1i
ListCount=T
Total Beli = Total Beli +
CDb1 ( listBe1i . List
(Total , 5 ) ) ' Pengisian
TextBox Grand Total
txtGrandTota1. Value =
Format ( Total Bell , '
Pengisian TextBox Total
txtTota1. Value = Format
(Total Bell , '
Pengisian TextBox Hutang
txtHutang . Value = Format
(Total Bell ,
Next Total
' TextBox
Jumlah
dikosongka
n
txtJum1ah.
Value =
'
ComboBox
Kode
Barang
men jadi
fokus
cmbKodeBa
rang .
SetFocus
' TextBox
Bayar
235
' Sub Procedure
bernilai
O
txtBayar
. Value
End Sub
236
Else
' Menghapus item
transaksi terpilih (listBe1i . List
dari ListBox Index)
listBe1i . Removeltem
transaksi baru
End If listBe1i.ListCount — 1
' Membuat nomor 0) = Noltem
item
For
N
o
l
t
e
m
T
o
l
i
s
t
B
e
1
i
L
i
s
t
(
N
o
l
t
e
m
,
Next Noltem
237
' Sub Procedure
' Jika sudah tidak ada item
transaksi pembelian
If
listB
e1i .
ListC
ount
= 1
Then
'
TextB
ox
Grand
Total
berni
lai O
txtGr
andTo
ta1.
Value
'
TextB
ox
Total
berni
lai O
txtTo
ta1.
Value
'
TextBox
Hutang
bernilai
O
txtHutan
g .
Value
' Jika masih ada item transaksi
pembelian
Else
Total Bell
For Total = 1 To listBe1i .
ListCount
Total Beli Total Beli +
CDb1 ( listBe1i . List ( Total ,
5) )
' Pengisian
TextBox Grand
Total
txtGrandTota1.
Value = Format (
238
Total Beli , '
Pengisian
TextBox Total
txtTota1. Value
= Format (Total
Bell , '
Pengisian
TextBox Hutang
txtHutang .
Value = Format (
Total Bell ,
Next Total
End If
239
'
TextBox Bayar bernilai txtBayar
. Value
End Sub
End Sub
' Kode ketika CommandButton Simpan di-klik
Private Sub cmdSimpan_C1ick( )
240
If txtBayar . Value = Or txtBayar . Value = O Then
' Menampilkan kotak pesan Pembayaran Kosong
MsgBox n TextBox Bayar belum diisi n ,
vbOKOn1y + vblnformation, n Pembayaran Kosong" ' TextBox
Bayar menjadi fokus txtBayar . SetFocus
' Keluar dari Sub Procedure
Exit Sub
End If
241
NoFaktur = "TBOOO" & 1
Else
' Nomor faktur berdasarkan nilai sel A3
NoFaktur = "TBOOO" & wsTb1Bantu.Range( n A3" ) . Value End If
242
' Masukkan hutang (sisa) pada record yang sama
wsPemHut . Cells (RecordAkhirPemHut + 1, 6 ) . Value
=
CDb1 ( txtHutang. Value )
End If
NoFaktur
' Masukkan no urut item transaksi pada record yang
sama wsDt1Pb1n. Cells (RecordAkhirDt1Pb1n + No, 2) .
Value = listBe1i . List (No, O)
' Masukkan kode barang pada record yang sama
wsDt1Pb1n. Cells (RecordAkhirDt1Pb1n + No, 3) .
Value = listBe1i . List (No, 1)
' Masukkan nama barang pada record yang sama
wsDt1Pb1n. Cells (RecordAkhirDt1Pb1n + No, 4 ) .
Value = listBe1i . List (No, 2)
' Masukkan jumlah barang pada record yang sama
wsDt1Pb1n. Cells (RecordAkhirDt1Pb1n + No, 5) .
Value = listBe1i . List (No, 3)
' Masukkan harga beli pada record yang sama
wsDt1Pb1n. Cells (RecordAkhirDt1Pb1n + No, 6 ) .
Value =
CDb1( listBe1i . List (No, 4) )
' Masukkan total pembelian pada record yang sama
wsDt1Pb1n. Cells (RecordAkhirDt1Pb1n + No, 7) . Value =
243
' Jika TextBox Hutang tidak kosong atau tidak bernilai
O Else
' Hutang pemasok ditambah sesuai nil ai TextBox
Hutang selHutang . Offset (O , 7 ) . Value =
selHutang. Offset (O, 7) . Value +
CDb1 ( txtHutang. Value)
End If
End Sub
244
' Jika tidak ada transaksi pembelian
If listBe1i . ListCount < 2
Then
' Menampilkan kotak pesan Bel um Ada Transaksi
Pembelian
MsgBox n Tidak ada transaksi pembelian n , vbOKOn1y +
vbCritica 1, Bel um Ada
Transaksi Sub Procedure Pembelian"
' Keluar dari
Exit Sub
End If
Application.
CentimetersToPoints ( 2 ) '
Menentukan margin bawah kertas
wsCetak. PageSetup . BottomMargin
=
Application.
CentimetersToPoints ( 2 ) '
Menentukan ukuran pencetakan
wsCetak. PageSetup . Zoom = 100
' Menentukan area cetak
wsCetak. PageSetup . PrintArea = l' $A: $F TI
245
' Teks pada range Al : FI diformat rata tengah
wsCetak . Range ( "Al : FI " ) .
HorizontalA1ignment = xlCenter ' Menggabungkan
range Al : FI wsCetak . Range ( "Al : FI " ) .
Merge
' Menentukan tinggi baris ke-2 worksheet Cetak
wsCetak. Rows ( " 2 : 2" ) . RowHeight
' Memasukkan teks No Faktur pada sel A3 worksheet Cetak
wsCetak.Range( "A3" ) . Value = "No Faktur n
' Jika database pembelian kosong
If wsHdrPb1n.Range( "A3" ) . Value = n n Then
' Memasukkan no faktur pada sel B9 worksheet Cetak
wsCetak.Range( "B3" ) . Value = "TBOOO TI & 1
' Jika database pembelian tidak kosong
Else
' Jika ComboBox No Faktur kosong
If cmbNoFaktur . Value — Then
' Memasukkan no faktur berdasarkan isi
sel A3 wsCetak.Range( "B3" ) .
Value = "TBOOO" & wsTb1Bantu .
Range( "A3 t' ) . Value
Else
' Memasukkan no faktur berdasar ComboBox No
Faktur wsCetak.Range( "B3" ) . Value =
cmbNoFaktur . Value
End If
End If
' Memasukkan teks Tanggal pada sel A4 worksheet Cetak
wsCetak.Range( "A4" ) . Value = " Tanggal n
' Memasukkan tanggal hari ini pada sel B4 worksheet
Cetak wsCetak.Range( "B4" ) . Value = Date
' Memasukkan teks Pemasok pada sel A5 worksheet Cetak
wsCetak.Range( "A5" ) . Value = " Pemasok n
' Memasukkan pemasok pada sel B5 worksheet
Cetak wsCetak. Range( "B5" ) . Value =
txtNamaPemasok. Value ' Memasukkan teks No Item
pada sel A6 worksheet Cetak wsCetak.Range( "A6"
) . Value = "No Item n
' Memasukkan teks Kode pada sel B6 worksheet Cetak
wsCetak.Range( "B6" ) . Value = " Kode n
' Memasukkan teks Nama Barang pada sel C6 worksheet
Cetak wsCetak.Range( "C6" ) . Value = "Nama Barang
' Memasukkan teks Jumlah pada sel D6 worksheet
Cetak wsCetak. Range ( "D6" ) . Value = "
Jumlah ' Memasukkan teks Harga pada sel E6
worksheet Cetak wsCetak.Range( "E6" ) . Value
= " Harga n ' Memasukkan teks Total pada sel F6
worksheet Cetak wsCetak.Range( "F6" ) . Value
= " Total n
' Menentukan lebar kolom B worksheet Cetak
246
wsCetak . Columns ( "B : B" ) . ColumnWidth = 10 '
Menentukan lebar kolom C worksheet Cetak wsCetak .
Columns ( "C: C" ) . ColumnWidth = 20 ' Menentukan
lebar kolom D worksheet Cetak wsCetak . Columns
( "D : D" ) . ColumnWidth = 12 ' Menentukan lebar
kolom E worksheet Cetak wsCetak . Columns ( "E :
E" ) . ColumnWidth = 14 ' Menentukan lebar kolom F
worksheet Cetak wsCetak . Columns ( "F : F" ) .
ColumnWidth = 16 ' Teks pada range A6 : F6
diformat rata tengah wsCetak . Range( "A6 :
F6" ) . HorizontalA1ignment = xlCenter ' Sel pada
range A6 : F6 bagian atas diberi border wsCetak .
Range( "A6 : F6" ) . Borders (xlEdgeTop) .
LineSty1e = xlContinuous
' Range A6 : F6 bagian bawah diberi border garis
ganda wsCetak . Range( "A6 : F6" ) . Borders
(xlEdgeBottom) . LineSty1e = xlDoub1e
Next No
247
' Border baris terakhir tabel faktur pembelian
wsCetak. Cells (listBe1i . ListCount + 5 ,
Border) .
Borders ( xlEdgeBottom) . LineSty1e =
xlDoub1e Next Border
With listBe1i
' Menambahkan teks Total wsCetak. Cells( .
ListCount + 6, 5 ) . Value = "Total "
' Menambahkan teks Bayar
wsCetak. Cells( . ListCount + 7, 5 ) . Value
= " Bayar " ' Menambahkan teks Hutang
wsCetak. Cells( . ListCount + 8, 5 ) . Value
= " Hutang " ' Memasukkan nilai total
transaksi pembelian wsCetak. Cells( .
ListCount + 6, 6 ) . Value =
CDb1 ( txtTota1. Value )
' Format data nil ai total transaksi pembelian
wsCetak. Cells( . ListCount + 6, 6 ) .
NumberFormat =
'
Format
wsCetak. En
d If
' Menambahkan border di bawah teks bayar wsCetak .
Cells( . ListCount + 7, 5 ) . Borders
( xlEdgeBottom) .
LineSty1e = xlDoub1e
248
' Menambahkan border di bawah nil ai bayar wsCetak.
Cells( . ListCount + 7, 6 ) . Borders
( xlEdgeBottom) .
LineSty1e = xlDoub1e
' Menambahkan border di bawah teks hutang wsCetak.
Cells( . ListCount + 8, 5 ) . Borders
( xlEdgeBottom) .
LineSty1e = xlDoub1e
' Menambahkan border di bawah nilai hutang wsCetak.
Cells( . ListCount + 8, 6 ) . Borders
( xlEdgeBottom) .
LineSty1e =
xlDoub1e End With
End Sub
249
HeaderPembe1ian
" )
Set wsHdrPb1n = Sheets ( "
Pembelian
HeaderPembe1ian
' wsDt1Pb1n adalah worksheet DetailPembelian " )
Set wsDt1Pb1n = Sheets ( " Detail
' rgNoFakturHdrPb1n adalah range NoFakturHdrPb1n
Set rgNoFakturHdrPb1n = wsHdrPb1n . Range ( "
NoFakturHdrPb1n ' rgNoFakturDt1Pb1n adalah range
NoFakturDt1Pb1n
Set rgNoFakturDt1Pb1n = wsDt1Pb1n . Range ( "
NoFakturDt1Pb1n
' rgDtbsDt1Pb1n adalah worksheet DatabaseDetai1Pembe1ian
Set rgDtbsDt1Pb1n = wsDt1Pb1n. Range
( "DatabaseDetai1Pembe1ian" )
' Jika ComboBox No Faktur kosong
If cmbNoFaktur . Value = Then
' Keluar dari Sub Procedure
Exit Sub
End If
250
CriteriaRange : =wsDt1Pb1n. Range ( n
12 : 13 )
' Menghapus ListBox
listBe1i . Clear
With wsDt1Pb1n
' rgTampi1 adalah range no faktur yang ditampilkan
Set rgTampi1 = wsDt1Pb1n . Range( "NoFakturDt1Pb1n " ) .
SpecialCe11s ( xlCe11TypeVisib1e )
' sTampi1 merupakan pengulangan tiap sel dalam
rgTampi1
For Each sTampi1 In rgTampi1 With listBe1i
Memasukkan item ke dalam ListBox
. Addltem sTampi1.
' Value item
Nomo
.
r
List( transaksi
berdasarkan nil ai sTampi1
. ListCount — 1 0)
sTampi1. Offset (O , 1 ) .
Value
' Kode barang 1 kolom di sebelah kanan
sTampi1
. List( . ListCount
sTampi1. Offset
(O, 2 ) . Value
'Nama barang 2 kolom di sebelah kanan
sTampi1
. List( . ListCount
sTampi1. Offset
(O, 3 ) . Value
' Jumlah barang 3 kolom di sebelah kanan
sTampi1
. List( . ListCount
sTampi1. Offset
(O, 4 ) . Value
' Harga barang 4 kolom di sebelah kanan
sTampi1
. List( . ListCount
Format( sTampi1. Offset ( O , 5 ) .
Value,
' Total item 5 kolom sebelah kanan sTampi1
. List( . ListCount
Format( sTampi1. Offset ( O , 6 ) .
Value,
End With
251
Next sTampi1
End With
End Sub
o
' Kode ketika CommandButton Keluar di-klik
Private Sub cmdKe1uar_C1ick( )
End Sub
o
' Jika data yang ditampilkan merupakan hasi1 penyaringan
If wsDt1Pb1n. FilterMode Then
Tampilkan seluruh data dalam worksheet DetailPembeIian
wsDt1Pb1n . ShowA11Data
End If
End Sub
252
penjelasan, karena pada prinsipnya mempunyai isi penjelasan
yang hampir sama dengan Form Cari Barang.
1. Pilih menu utama Insert > dserForm. Atur properti
dserForm melalui window Properties. Pilih menu utama
yew > Properties Window atau tekan tombol F4. dbah
properti OserForm sebagai berikut: Name
formCariPelanggan, Caption (kosong), Height = 264 dan
Width = 432.
2. Tambahkan kontrol ke dalam OserForm hingga tampilan
Form Cari Pelanggan menjadi seperti pada Gambar 4.11.
253
Name = optNama, Caption = Nama Pelanggan,
OptionButton Height = 18, Left = 150, Top = 216, Width = 81,
Value = False, Accelerator = N, Tablndex = 2
Name = txtKode, Height = 18, Left = 84, Top =
TextBox 216, Width = 60, BackC010r =
(abu-abu) , Tablndex = 1, Locked = False
Name = txtNama, Height = 18, Left = 234, Top =
TextBox 216, Width = 120, BackC010r =
(abu-abu), Tablndex = 3, Locked = True
Name = listCari, Height = 168, Left = 6, Top = 36,
ListBox Width = 414, BoundColumn = 5, ColumnCount =
5, Tablndex = 4
Name = imgForm, Height = 24, Left = 6, Top = 6,
Width = 24, Picture = Cari.gif, PictureAlignment =
Image
2 — frmPictureAlignmentCenter, PictureSizeMode =
0 — frmPictureSizeModeCli
Name = lblForm, Caption = Form Cari Pelanggan,
Height = 24, Left = 30, Top = 6, Width = 390, Font
Label = (Font = Tahoma; Font style = Bold; Size =
16), BackColor = (hijau muda),
Forecolor = (merah)
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
txtNama
Private
txtNama.
txtKode.
txtKode. .
End Sub
254
txtKode .
txtNama . Locked = False
txtNama . SetFocus
End Sub
End Sub
If
txtKode
. Value
=
listCari .
Clear
txtKode .
SetFocus
Else
With wsDtbsP1gn. Range( "KodePe1anggan )
Set c — . Find ( txtKode . Value, Lookln :
=x1Va1ues )
If c Is Nothing Then
255
MsgBox "Kode " & txtKode . Value & " tidak
ada " , vbOKOn1y,
"Kode Pelanggary
Tidak Ada " listCari .
Clear txtKode .
Value = txtKode . SetFocus Exit Sub
Else wsDtbsP1gn. Range( "J 3 " ) .
Value = "*" & txtKode.Va1ue & 'I
* " wsDtbsP1gn. Range ( "K3 : L3 )
. ClearContents rgDtbsP1gn.
AdvancedFi 1 ter
Action : =x1Fi1terInP1ace ,
Cri teriaRange : =rgAdvFi1 ter
Call Tampi1kanSemua
End If
End With
End If
End Sub
Sub DatabaseKosong( )
MsgBox n Tidak ada data dalam database pelanggan" ,
vbOKOn1y + vblnformation, " Database Pelanggan
Kosong "
End Sub
Sub Tampi1kanSemua( )
listCari . Clear
With listCari
. Addl tem
. List( . ListCount - 1, " Kode Pelanggan "
. List( . ListCount - 1, "Nama Pelanggan "
. List( . ListCount - 1, " Kontak n
. List( . ListCount - 1, " Telp/HP
. List( . ListCount " Piutang
. ColumnWidths & 125 & n ; n & 70 &
70 & & 70
End With
With wsDtbsP1gn
Set rgTampi1 = wsDtbsP1gn . Range( "KodePe1anggan"
SpecialCe11s ( xlCe11TypeVisib1e )
256
For Each sTampi1 In rgTampiI
With listCari
. Add Item sTampi1. Value
. List( .ListCount - 1 , — sTampi1. Value
. List( .ListCount 1 ,
sTampi1. Offset ( 0
,
. List( .ListCount — 1 ,
sTampi1 . Offset ( 0 ,
5 ) . Value . List( .
ListCount sTampi1. Offset
( O , 6 ) . Value
. List( . ListCount
Format( sTampi1. Offset ( O , 7 ) .
Value,
End With
Next sTampi1
End With
End Sub
If txtNama . Value =
Then listCari .
Clear txtNama .
SetFocus
Else
With wsDtbsP1gn. Range( "NamaPe1anggan n )
Set c = . Find( txtNama. Value, Lookln : =x1Va1ues )
If c Is Nothing Then
MsgBox "Nama " & txtNama.
Value & tidak ditemukan " ,
vbOKOn1y , n
Nama Pelanggan
Tidak Ada listCari . Clear
257
txtNama. Value = txtNama.
SetFocus Exit Sub
Else wsDtbsP1gn. Range( "K3 " ) . Value =
txtNama. Value & " * " wsDtbsP1gn. Range ( "J
3 , L3 " ) . ClearContents rgDtbsP1gn.
AdvancedFi1ter Action : =x1Fi1terInP1ace,
Cri ter iaRange : =rgÄdvFi
Call 1 ter
End If
End With End
If
Tampi1kanSemua
If wsDtbsP1gn .
wsDtbsP1gn.
End If
End Sub
End Sub
258
dibutuhkan dalam Form Transaksi Penjualan adalah database
barang dan database pelanggan. Transaksi penjualan tidak dapat
dilakukan apabila database barang kosong. Jika database
pelanggan kosong, Anda masih dapat melakukan transaksi
penjualan menggunakan Form Kasir.
Dalam transaksi penjualan, setiap barang yang dijual akan
mengurangi jumlah stok barang dalam gudang (database
barang). Oleh karena itu, sebelum menginput barang ke dalam
Form Transaksi Penjualan, Macro akan mengecek terlebih
dahulu apakah stok barang yang akan di-input mencukupi atau
tidak. Apabila dalam transaksi penjualan jumlah uang yang
dibayarkan pelanggan kurang, transaksi penjualan juga
dimasukkan ke dalam worksheet PenerimaanPiutang.
1. Pilih menu utama Insert > dserForm. Atur properti
dserForm melalui window Properties. Pilih menu utama
yew > Properties Window atau tekan tombol F4. dbah
properti OserForm sebagai berikut: Name
formTransaksiJuaI, Caption (kosong), Height = 405 dan
Width = 432.
2. Tambahkan kontrol ke dalam dserForm hingga tampilan
Form Transaksi Penjualan menjadi seperti pada Gambar
4.12.
259
Gambar 4.12 Tampilan Form Transaksi Peqjualan.
260
Name = cmdCetak, Caption = Cetak, Height = 24,
Left = 90, Top = 348, Width = 42, Accelerator = C,
Tablndex = 4, Font = (Font = Tahoma; Font style
CommandButton = Bold; Size = 8), BackColor =
(biru), Forecolor = (
utih)
Name = cmdBayar, Caption = Bayar, Height = 24,
CommandButton
Left = 132, To = 348, Width = 42, Accelerator =
261
Name = cmdSortAscPelanggan, Caption =
(kosong), Height = 18, Left = 144, Top = 30,
CommandButton Width = 18, PicturePosition = 12 —
frmPicturePositionCenter, Picture = Sort
Ascendin . if, Tablndex = 1
Name = cmdSortDesPelanggan, Caption =
(kosong), Height = 18, Left = 168, Top = 30,
CommandButton Width = 18, PicturePosition = 12 —
frmPicturePositionCenter, Picture = Sort
Descending.gif, Tablndex = 2
Name = cmdCariPelanggan, Caption = (kosong),
Height = 18, Left = 192, Top = 30, Width = 18,
CommandButton
PicturePosition = 12 — frmPicturePositionCenter,
Picture = Cari. if, Tablndex = 3
Name = cmdSortAscBarang, Caption = (kosong),
CommandButton Height = 18, Left = 336, To = 6, Width = 18,
PicturePosition = 12 — frmPicturePositionCenter,
Picture = Sort Ascendin . if, Tablndex = 5
Name = cmdSortDesBarang, Caption = (kosong),
Height = 18, Left = 360, Top = 6, Width = 18,
PicturePosition = 12 — frmPicturePositionCenter,
CommandButton Picture = Sort Descending.gif, Tablndex = 6
Name = cmdCariBarang, Caption = (kosong),
Height = 18, Left = 384, Top = 6, Width = 18,
CommandButton PicturePosition = 12 —
frmPicturePositionCenter, Picture = Cari. if,
Tablndex = 7
Name = frmTransaksi, Caption = Transaksi, Height
Frame = 84, Left = 6, Top = 36, Width = 222, Tablndex
262
Name = txtNamaPelanggan, Height = 18, Left =
72, Top = 54, Width = 138, Locked = True,
TextBox BackC010r = (abu-abu)
Name = txtNamaBarang, Height = 18, Left = 192,
Top = 6, Width = 138, Locked = True, BackColor
TextBox = (abu-abu)
Name = txtJumlah, Height = 18, Left = 72, Top =
30, Width = 60, TextAlign = 3 —
fmTextAlignRight, Tablndex = 1, BackColor =
TextBox (abuabu)
Name = txtStok, Height = 18, Left = 192, Top =
30, Width = 54, TextAlign = 3 —
fmTextAlignRight,
TextBox BackC010r = (abu-abu)
Name = txtGrandTotal, Height = 18, Left = 318,
Top = 330, Width = 102, Locked = True, TextAlign
= 3 — fmTextAlignRight, BackColor =
TextBox (abu-abu), Value = O
Name = txtDiskon, Height = 18, Left = 318, Top =
354, Width = 24, TextAlign = 3 —
fmTextAlignRight, BackColor =
(abu-abu), MaxLength
TextBox = 2, Tablndex = 13, Value = 0
Name = txtDiskonRp, Height = 18, Left = 360,
Top = 354, Width = 60, Locked = True, TextAlign =
3 — fmTextAlignRight, BackColor =
TextBox (abu-abu), Value = O
TextBox Name = txtTotal, Hei ht = 21, Left = 294, To
263
Name = txtBayar, Height = 21, Left = 294, Top =
66, Width = 126, Font = (Font = Tahoma; Font
style = Bold; Size =
11), TextAlign = 3 — = (putih),
fmTextAlignRight,
BackColor (biru), Forecolor =
TextBox Tablndex = 2, Value = 0
Name = txtPiutang, Height = 21, Left = 294, Top =
90, Width = 126, Font = (Font = Tahoma; Font
style = Bold; Size = 11), Locked = True, TextAlign
= 3 — fmTextAlignRight, BackColor =
(biru), Forecolor =
TextBox ( utih), Value = 0
Name = cmbNoFaktur, Height = 18, Left = 72,
Top = 6, Width = 66, RowSource =
NoFakturHdrPjln, Style = 2 -
fmStyleDropDownList,
Tablndex = 4, BackC010r =
ComboBox (abuabu)
Name = cmbKodePelanggan, Height = 18, Left =
72, Top = 30, Width = 66, BoundColumn = 1,
ColumnCount = 2, ColumnWidths = 45 pt; 135 pt,
ListWidth = 180 pt, Style = 2
fmStyleDropDownList, Tablndex = 0, BackColor =
ComboBox (abu-abu)
Name = cmbKodeBarang, Height = 18, Left = 72,
Top = 6, Width = 60, BoundColumn = 1,
ColumnCount = 2, ColumnWidths = 45 pt; 135
pt, ListWidth = 180 pt, Style = 2
fmStyleDropDownList, Tablndex = 0, BackColor
=
ComboBox (abu-abu)
Name = listJual, Height = 123, Left = 6, Top =
198, Width = 414, BoundColumn = 8,
ListBox ColumnCount = 8, Tablndex = 20
Image Name = imgForm, Height = 24, Left = 6, Top = 6,
Width = 24, Picture = Penjualan.gif,
PictureAlignment = 2 — frmPictureAlignmentCenter,
264
PictureSizeMode = 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Form Transaksi
Label Penjualan, Height = 24, Left = 30, To = 6, Width
265
Name = lblTanggal, Caption = (kosong), Height =
12, Left = 66, Top = 330, Width = 66, Font =
(Font = Tahoma; Font style = Bold; Size = 8),
TextAlign = 3 — fmTextAlignRight, BackColor =
(biru), Forecolor =
Label ( utih)
Name = lblTempo, Caption = (kosong), Height =
12, Left = 198, Top = 330, Width = 66, Font =
(Font = Tahoma; Font style = Bold; Size = 8),
Label
TextAlign = 3 — fmTextAlignRight, BackColor =
(biru), Forecolor = (
utih)
Name = lblNoFaktur, Caption = No Faktur, Height
Label
= 12, Left = 6, To = 12, Width = 66
Label Name = lblKodePelanggan, Ca tion = Kode
Pelanggan, Height = 12, Left = 6, Top = 36, Width
= 66
Name = lblNamaPelanggan, Caption = Nama
Label Pelanggan, Height = 12, Left = 6, Top = 60, Width
= 66
Name = lblKodeBarang, Caption = Kode Barang,
Label
Hei ht = 12, Left = 6, To = 12, Width = 60
Name = lblNamaBarang, Caption = Nama Barang,
Label
Hei ht = 12, Left = 138, To = 12, Width = 54
Name = lblJumlah, Caption = Jumlah, Height = 12,
Label
Left = 6, To = 36, Width = 60
Name = lblStok, Caption = Stok, Height = 12, Left
Label
= 138, To = 36, Width = 54
Name = lblGrandTotal, Caption = Grand Total,
Label
Height = 12, Left = 270, To = 336, Width = 48
Name = lblDiskon, Caption = Diskon, Height = 12,
Label
Left = 270, To = 360, Width = 48
Name = lblPersen, Caption = %, Height = 12, Left
Label
= 348, To = 360, Width = 12
266
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
' Kode ketika Form
Penjualan aktif
Transaksi
)
Private Sub ItemPe1anggan
UserForm_Activate(
o
' wsDtbsP1gn adalah Set wsDtbsP1gn =
Sheets
267
. List( . ListCount —
spelanggan. Offset (O ,
1 ) . Value
End With
Next spelanggan
' Item yang ditampilkan adalah kode pelanggan
teratas cmbKodePe1anggan. Value = cmbKodePe1anggan.
List( O )
End If
End Sub
End Sub
268
Sub Procedure untuk membuat judul kolom ListBox
Sub Judu11temTranskasi ( )
Menghapus ListBox
listJua1. Clear
With listJua1
' Menambahkan item ListBox sebagai judul kolom
. Addl tem
' Judul ListBox kolom pertama
. List ( • ListCount - 1 ,
' Judul ListBox kolom kedua
269
Kode ketika keluar dari ComboBox No Faktur
Private Sub cmbFaktur_Exit (ByVa1 Cancel As
MSForms . ReturnB001ean )
' Warna ComboBox No Faktur menjadi abu—abu
cmbFaktur . BackC010r = &HCOCOCO
End Sub
270
TextBox Diskon dikosongkan
txtDiskon. Value = 11
End Sub
End Sub
271
Validasi angka TextBox Jumlah
Select Case KeyAscii
Case Asc( "O") To
Asc( "9")
Case Else
KeyAsc11
End Select
End Sub
End Sub
End Sub
272
Urutkan Ascending database pelanggan kolom Nama
Pelanggan wsDtbsP1gn. Range ( "DatabasePe1anggan n ) .
Sort
Keyl : — "Nama Pelanggan" , Orderl : =x1Ascending ,
Header : =x1Yes
Memanggil Sub Procedure ItemPe1anggan
Call ItemPe1anggan
End Sub
Kode jika CommandButton Sort Descending Pelanggan di—
klik
Private Sub cmdSortDesPe1anggan_C1ick( )
wsDtbsP1gn adalah worksheet DatabasePe1anggan
Set wsDtbsP1gn = Sheets ( "DatabasePe1anggan t' )
End Sub
End Sub
Kode ketika CommandButton Sort Ascending Barang di—klik
Private Sub cmdSortAscBarang_C1ick( )
wsDtbsBrg adalah worksheet DatabaseBarang
Set wsDtbsBrg = Sheets ( " DatabaseBarang n
)
Jika data yang ditampilkan merupakan hasil penyaringan
If wsDtbsBrg . FilterMode Then
273
' Tampilkan seluruh data dalam worksheet
DatabaseBarang wsDtbsBrg . ShowA11Data
End If
End Sub
End Sub
End Sub
274
Jika ComboBox Kode Pelanggan kosong
If cmbKodePe1anggan. Value = Then
' Keluar dari Sub Procedure
Exit Sub
Jika database pelanggan kosong
El self wsDtbsP1gn. Range( "A3 " ) . Value = Then
' Keluar dari Sub Procedure
Exit Sub
End If
End Sub
End Sub
275
Lanjutkan Macro jika terjadi
error On Error Resume Next
End Sub
276
Format TextBox Bayar txtBayar . Value =
Format ( txtBayar . Value, n # , )
End Sub
Private
Set
Set
If
End If
277
End If
278
Exit Sub
End If
With listJua1
' Menambahkan item ke dalam ListBox
. Addl tem
' Pengisian kolom No
. List( . ListCount — listJua1. ListCount
' Pengisian kolom Kode
. List( . ListCount — = cmbKodeBarang. Value
' Pengisian kolom Nama Barang
. List( . ListCount — = txtNamaBarang. Value
' Pengisian kolom Jumlah
. List( . ListCount — txtJum1ah. Value
' Pengisian kolom Harga (harga jual )
. List( . ListCount —
Format (c. Offset (O, 5) . Value, n
' Pengisian kolom Disc. (diskon)
. List( . ListCount — 1 5) = c. Offset (O,
6 ) . Value ' Pengisian kolom Harga Disc .
. List( . ListCount —
Format (c. Offset (O, 7) . Value, n
' Pengisian kolom Total
. List( . ListCount — = Format ( txtJum1ah. Value *
CDb1(c.Offset(O, 7) . Value) ,
End With
TotalJua1 =
For Total = 1 To listJua1. ListCount
TotalJua1 = TotalJua1 + CDb1 ( listJua1. List
(Total , 7) ) ' Pengisian TextBox Grand Total
txtGrandTota1. Value = Format ( TotalJua1 ,
' Pengisian TextBox Total txtTota1. Value =
Format (TotalJua1 , ' Pengisian TextBox
Piutang txtPiutang. Value = Format ( TotalJua1
Next Total
279
txtJum1ah.
cmbKodeBarang
TextBox
txtDiskon. Diskon
O bernilai
bernilai
txtDiskonRp.
txtBayar .Value
TextBox
Bayar bernilai 0
End Sub
With listJua1
' Jika indeks ListBox kurang dari 1
If . List Index < 1 Then
' Menampilkan kotak pesan Pilih Nomor Item
MsgBox "Pilih nomor item yang akan
diedit" , vbOKOn1y + vblnformation, n Pilih
Nomor Item " ' ListBox menjadi fokus
listJua1. SetFocus
' Keluar dari Sub Procedure
280
Exit Sub
' Jika indeks ListBox lebih dari 1
Else
' Cek selisih persediaan stok dengan yang
dijual CekStok = txtStok. Value —
txtJum1ah. Value ' Jika stok lebih kecil
dibandingkan yang dijual
If CekStok < 0 Then
' Menampilkan kotak pesan Stok Barang Tidak
Ada
MsgBox " Stok " &
+ vbCritica1 ,
Barang Tidak Ada "
Jumlah dikosongkan
= " "
Jumlah men jadi
fokus
SetFocus dari
Sub Procedure
txtNamaBarang . Value & yang
tersedia " & txtStok. Value ,
vbOKOn1y " Stok ' TextBox
txtJum1ah.Va1ue ' TextBox
txtJum1ah.
' Keluar
Exit Sub
End If
End If
281
End With
TotalJua1 =
For Total = 1 To listJua1. ListCount
TotalJua1 = TotalJua1 + CDb1 ( listJua1. List
(Total , 7 ) ) ' Pengisian TextBox Grand Total
txtGrandTota1. Value = Format ( TotalJua1 ,
' Pengisian TextBox Total txtTota1. Value =
Format (TotalJua1 , ' Pengisian TextBox
Piutang txtPiutang. Value = Format ( TotalJua1
Next Total
wsDtbsBrg adalah
worksheet DatabaseBarang
Set wsDtbsBrg =Sheets( "DatabaseBarang"
rgKodeBrg adalah ) rangeuKodeBarang
Set rgKodeBrg = wsDtbsBrg .
Range( " KodeBarang
Jika ComboBox No Faktur tidak kosong
If cmbNoFaktur . Value <> Then
' Menampilkan kotak pesan Transaksi Gagal
MsgBox "Transaksi tidak bisa diproses n ,
vbOKOn1y + vblnformation, "Transaksi
Gagal "
' Keluar dari Sub Procedure
Exit Sub
End If
282
' ListBox menjadi fokus listJua1.
SetFocus
' Keluar dari Sub Procedure
Exit Sub
Jika indeks ListBox lebih dari 1
Else
' Menghapus item transaksi terpilih dari ListBox
listJua1. Removeltem (listJua1. List Index)
End If
End Sub
283
' ComboBox No Faktur dikosongkan
cmbNoFaktur . Value =
' TextBox Jumlah dikosongkan
txtJum1ah. Value =
' TextBox Grand Total
bernilai txtGrandTota1.
Value ' TextBox Diskon
bernilai O txtDiskon.
Value
' TextBox Diskon (dalam rupiah) bernilai
txtDiskonRp . Value
' TextBox Total bernilai O
txtTota1. Value
' TextBox Bayar bernilai O
txtBayar . Value
' TextBox Piutang bernilai O
txtPiutang . Value
End Sub
284
' Keluar dari Sub Procedure
Exit Sub
End If
285
NoFaktur = "TJOOO" & 1
Else
' Nomor faktur berdasarkan nil ai sell B3
NoFaktur ="TJOOO" & wsTb1Bantu. Range( TI
B3
286
wsPenPiu. Cells (RecordAkhirPenPiu + 1, 3 ) . Value =
cmbKodePe1anggan. Value
' Masukkan total penjualan pada record yang sama
wsPenPiu. Cells (RecordAkhirPenPiu + 1, 4 ) . Value =
CDb1 ( txtTota1. Value )
' Masukkan pembayaran pada record yang sama
wsPenPiu. Cells (RecordAkhirPenPiu + 1, 5 ) . Value
=
CDb1 ( txtBayar . Value )
' Masukkan piutang pada record yang sama wsPenPiu.
Cells (RecordAkhirPenPiu + 1, 6 ) . Value =
CDb1 ( txtPiutang. Value )
End If
' Struktur pengulangan
berdasarkan jumlah item
transaksi
For No = 1 To kode listJua1
.ListCount — 1
' Pencarian kode barang barang dalam
Li stBox
Set c rgKodeBarang . Find( listJua1. List (No, 1) ,
Look In : =x1Va1ues )
' Jumlah barang dikurangi jumlah yang ter jual
c. Offset (0, 9 ) . Value =
c. Offset (O, 9 ) . Value —listJua1. List
(No, 3)
'No faktur di bawah record terakhir detail
penjualan wsDt1Pj1n. Cells (RecordAkhirDt1Pj1n + No,
1) . Value =
NoFaktur
' Masukkan no urut item transaksi pada record
yang sama wsDt1Pj1n. Cells (RecordAkhirDt1Pj1n +
No, 2) . Value = listJua1. List (No, O)
' Masukkan kode barang pada record yang sama
wsDt1Pj1n. Cells (RecordAkhirDt1Pj1n + No, 3) .
Value = listJua1. List (No, 1)
' Masukkan nama barang pada record yang sama
wsDt1Pj1n. Cells (RecordAkhirDt1Pj1n + No, 4 ) .
Value = listJua1. List (No, 2)
' Masukkan jumlah barang pada record yang sama
wsDt1Pj1n. Cells (RecordAkhirDt1Pj1n + No, 5) .
Value = listJua1. List (No, 3)
' Masukkan harga jual pada record yang sama
wsDt1Pj1n. Cells (RecordAkhirDt1Pj1n + No, 6 ) .
Value =
CDb1 ( listJua1. List (No, 4) )
' Masukkan diskon pada record yang sama
287
wsDt1Pj1n. Cells (RecordAkhirDt1Pj1n + No, 7 ) . Value =
288
' Menyimpan aplikasi
ThisWorkbook. Save
End Sub
' Kode ketika CommandButton Cetak di—klik
Private Sub cmdCetak_C1ick( )
289
Application.
CentimetersToPoints ( 2 ) '
Menentukan margin atas kertas
wsCetak. PageSetup . TopMargin =
Application.
CentimetersToPoints ( 2 ) '
Menentukan margin bawah kertas
wsCetak. PageSetup . BottomMargin
=
Application.
CentimetersToPoints ( 2 ) '
Menentukan ukuran pencetakan
wsCetak. PageSetup . Zoom = 100 '
Menentukan area cetak wsCetak.
PageSetup . PrintArea = l' $A: $G
TI
290
End If
End If
' Memasukkan teks Tanggal pada sel A4 worksheet Cetak
wsCetak.Range( "A4" ) . Value = " Tanggal n
' Memasukkan tanggal hari ini pada sel B4 worksheet
Cetak wsCetak.Range( "B4" ) . Value = Date
' Memasukkan teks Pelanggan pada sel A5 worksheet Cetak
wsCetak.Range( "A5" ) . Value = " Pelanggan n
' Memasukkan pelanggan pada sel B5 worksheet Cetak
wsCetak. Range( "B5" ) . Value = txtNamaPe1anggan.
Value
291
' Masukkan no item transaksi setelah baris ke—13
wsCetak.Ce11s(6 + No, 1 ) . Value = -listJua1. List (No, O)
' Format rata tengah pada kolom No Item wsCetak. Cells (6 +
No, 1 ) . HorizontalAlignment = xlCenter ' Masukkan kode
barang pada record yang sama wsCetak. Cells (6 + No, 2) .
Value = listJua1. List (No, 1) ' Masukkan nama barang pada
record yang sama wsCetak. Cells (6 + No, 3) . Value =
listJua1. List (No , 2) ' Masukkan jumlah barang pada
record yang sama wsCetak. Cells (6 + No, 4 ) . Value =
listJua1. List (No , 3) ' Masukkan diskon barang pada
record yang sama wsCetak. Cells (6 + No, 5)
=
. Value listJua1. List (No, 5)
' Masukkan harga (harga jual) pada record
yang sama wsCetak. Cells (6 + No, 6 ) . Value =
CDb1 ( listJua1. List (No,
4) ) ' Format data pada kolom
Harga wsCetak. Cells (6 + No,
6 ) . NumberFormat =
Next No
292
+ , Value =
' Memasukkan nilai grand total transaksi penjualan
wsCetak. Cells( . ListCount + 6, 7) . Value =
CDb1 ( txtGrandTota1. Value )
' Format data nil ai grand total transaksi
penjualan wsCetak. Cells( . ListCount + 6, 7) .
NumberFormat =
LineSty1e = xlDoub1e
' Menambahkan border di bawah nil ai diskon
wsCetak. Cells( . ListCount + 7, 7 ) . Borders
( xlEdgeBottom) .
LineSty1e = xlDoub1e
' Memasukkan nilai total transaksi penjualan
wsCetak. Cells( . ListCount + 8, 7) . Value =
293
' Nilai piutang berdasarkan TextBox Piutang
wsCetak. Cells( . ListCount + 10, 7) . Value
=
CDb1 ( txtPiutang. Value )
End If
' Format data nil ai piutang wsCetak.
Cells( . ListCount + 10 , 7 ) . NumberFormat
=
294
Call cmdSimpan_C1ick
End Sub
NoFakturDt1PJ1n
' rgDtbsDt1Pj1n adalah range DatabaseDetai1Penjua1an
Set rgDtbsDt1Pj1n = wsDt1Pj In. Range
( "DatabaseDetai1Penjua1an" )
' Jika ComboBox No Faktur kosong
If cmbNoFaktur . Value = Then
' Keluar dari Sub Procedure
Exit Sub
End If
295
' Masukkan TextBox Total Penjualan record yang sama
txtTota1. Value = Format (p.Offset(0, 6 ) . Value,
' Masukkan TextBox Bayar record yang sama
txtBayar . Value . Value,
' Masukkan TextBox Piutang record yang sama
txtPiutang . Value = Format (p. Offset ( O , 8 ) .
Value, " )
296
. List( . ListCount
sTampi1. Offset
(O, 4 ) . Value
' Harga barang 5 kolom di sebelah kanan
sTampi1
. List( .ListCount
Format( sTampi1. Offset (0, 5) . Value, " # ,
" )
' Diskon 6 kolom di sebelah kanan sTampi1
. List( .ListCount —
sTampi1 . Offset (O,
6 ) . Value
' Harga diskon 7 kolom di sebelah kanan
sTampi1
. List( .ListCount -
Format ( sTampi1. Offset (0, 7) . Value, " # ,
" )
' Total item transaksi 8 kolom di kanan
sTampi1
. List( .ListCount —
Format( sTampi1. Offset (0, 8 ) . Value, " # ,
" )
End With
Next sTampi1
End With
End Sub
297
End Sub
o
' wsHdrPj1n adalah worksheet
HeaderPenjua1an Set wsHdrPj1n = Sheets( "
HeaderPenjua1an " ) ' wsDt1Pj1n adalah
worksheet Detail Penjualan Set wsDt1Pj1n =
Sheets( " Detail Penjualan" )
o
' Jika data yang ditampilkan merupakan hasi1 penyaringan
If wsHdrPj In. FilterMode Then
Tampilkan seluruh data dalam worksheet HeaderPenjua1an
wsHdrPj In . ShowA11 Data
End If
End Sub
298
Gambar 4.13 Tampilan Form Kasir.
(biru), Forecolor =
( utih)
Name = cmdlnput, Caption = Input, Height = 24,
Left = 66, Top = 78, Width = 42, Accelerator = I,
Tablndex = 2, Font = (Font = Tahoma; Font style
= Bold; Size = 8), BackC010r =
CommandButton (biru), Forecolor = ( utih)
Name = cmdEdit, Caption = Edit, Height = 24,
Left = 108, Top = 78, Width = 42, Accelerator =
E, Tablndex = 3, Font = (Font = Tahoma; Font
CommandButton style = Bold; Size = 8), BackColor =
(biru), Forecolor = (
utih)
Name = cmdHapus, Caption = Hapus, Height =
24, Left = 150, Top = 78, Width = 42, Accelerator
= H, Tablndex = 4, Font = (Font = Tahoma; Font
style = Bold; Size = 8), BackColor =
(biru), Forecolor =
CommandButton ( utih)
Name = cmdSortAscBarang, Caption = (kosong),
Height = 18, Left = 126, Top = 6, Width = 18,
CommandButton PicturePosition = 12 —
frmPicturePositionCenter, Picture = Sort
Ascending.gif, Tablndex = 5
Name = cmdSortDesBarang, Caption = (kosong),
Height = 18, Left = 150, Top = 6, Width = 18,
CommandButton
PicturePosition = 12 — frmPicturePositionCenter,
Picture = Sort Descendin . if, Tablndex = 6
Name = cmdCariBarang, Caption = (kosong),
Height = 18, Left = 174, Top = 6, Width = 18,
PicturePosition = 12 —
CommandButton
300
frmPicturePositionCenter, Picture = Cari.gif,
Tablndex = 7
Name = frmBarang, Caption = Barang, Height =
114, Left = 6, Top = 36, Width = 204, Tablndex =
Frame 0
Name = txtNamaBarang, Height = 18, Left = 60,
Top = 30, Width = 132, Locked = True, BackColor
TextBox = (abu-abu)
Name = txtJumlah, Height = 18, Left = 60, Top =
54, Width = 45, TextAlign = 3 —
fmTextAlignRight, Tablndex = 1, BackColor =
TextBox (abuabu)
Name = txtStok, Height = 18, Left = 147, Top —
TextBox 54, Width = 45, TextAli n = 3 — fmTextAli nRi ht,
301
Name = txtBayar, Height = 21, Left = 276, Top =
66, Width = 144, Font = (Font = Tahoma; Font
style = Bold; Size
TextBox = 11), TextAlign = = (putih),
3—
fmTextAlignRight, BackColor (biru), Forecolor =
Tablndex = 1, Value = 0
Name = txtKembali, Height = 21, Left = 276, Top
= 90, Width = 144, Font = (Font = Tahoma; Font
style = Bold; Size = 11), Locked = True, TextAlign
TextBox = 3 — fmTextAlignRight,
BackColor = (biru),
Forecolor =
( utih), Value = 0
Name = cmbKodeBarang, Height = 18, Left = 60,
Top = 6, Width = 60, BoundColumn = 1,
ColumnCount = 2, ColumnWidths = 45 pt; 135
pt, ListWidth = 180 pt, Style = 2
fmStyleDropDownList, Tablndex = 0, BackColor
=
ComboBox (abu-abu)
Name = listJual, Height = 123, Left = 6, Top =
156, Width = 414, BoundColumn = 8,
ListBox ColumnCount = 8, Tablndex = 18
Name = imgForm, Height = 24, Left = 6, Top — 6
Image
Width = 24, Picture = Pen•ualan.gif,
PictureAlignment = 2 — frmPictureAlignmentCenter,
PictureSizeMode = 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Form Kasir, Height =
24, Left = 30, Top = 6, Width = 390, Font = (Font
Label = Tahoma; Font style = Bold; Size = 16),
BackColor = (hijau muda),
Forecolor = (merah)
Name = lblTotal, Caption = Total, Height = 21,
Left = 216, Top = 42, Width = 60, Font = (Font =
Label Tahoma; Font style = Bold; Size = 11), BackColor
(biru), Forecolor =
( utih)
302
Name = lblBayar, Caption = Bayar, Height = 21,
Left = 216, Top = 66, Width = 60, Font = (Font =
Label Tahoma; Font style = Bold; Size = 11), BackColor
(biru), Forecolor =
( utih)
Name = lblKembali, Caption = Kembali, Height =
21, Left = 216, Top = 90, Width = 60, Font =
Label (Font = Tahoma; Font style = Bold; Size = 11),
BackC010r = (biru), Forecolor =
( utih)
Name = lblKodeBarang, Caption = Kode Barang,
Label
Hei ht = 12, Left = 6, To = 12, Width = 54
Name = lblNamaBarang, Caption = Nama Barang,
Label
Height = 12, Left = 6, To = 36, Width = 54
Name = lblJumlah, Caption = Jumlah, Height = 12,
Label
Left = 6, To = 60, Width = 54
Name = lblStok, Caption = Stok, Height = 12, Left
Label
= 114, To = 60, Width = 24
Name = lblGrandTotal, Caption = Grand Total,
Label
Hei Flt = 12, Left = 270, To = 294, Width = 48
Name = lblDiskon, Caption = Diskon, Height = 12,
Label
Left = 270, To = 318, Width = 48
Name = lblPersen, Caption = %, Height = 12, Left
Label
= 348, Top = 318, Width = 12
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
Private Sub UserForm_Activate( )
Call ItemBarang
Call Judu11temTranskasi
End Sub
Sub ItemBarang( )
303
Else
cmbKodeBarang.
Clear
For Each sBarang In wsDtbsBrg .
Range( "KodeBarang With Me . cmbKodeBarang
. Addltem sBarang . Value
. List( . ListCount —
sBarang . Offset
(O, 1 ) . Value
End With Next sBarang
cmbKodeBarang. Value = cmbKodeBarang .
List( O )
End If
End Sub
Sub
Judu11temTranskasi ( )
listJua1. Clear
With listJua1
. Addl tem
. List ( •
ListCount
. List ( • Barang
ListCount
. List ( • ListCount"
. List ( •
ListCount Disc.
. List( •
ListCount
. List ( • ListCount
. List ( • ListCount"
. List ( • ListCount
. ColumnWidths = 20 & & 110 &
40 & & 50 & ; 11
& 30 & n
; n
& 50 &
End With
End Sub
End Sub
304
Private Sub cmbKodeBarang_Enter( )
cmbKodeBarang. BackC010r =
&H80000005&
End Sub
End Sub
305
End Sub
End Sub
End Sub
End Sub
formCariPe1anggan .
Sho
End Sub
If wsDtbsBrg .
FilterMode Then
wsDtbsBrg . ShowA11Data
End If
306
"Nama Barang" , Orderl : =x1Ascending , Header :
=x1Yes
Call ItemBarang
End Sub
End Sub
End Sub
307
If txtGrandTota1. Value =
O Then txtDiskon.
Value Exit Sub
El self txtDiskon . Value = Or txtDiskon. Value = O
Then txtDiskonRp. Value txtTota1. Value =
Format (CDb1 ( txtGrandTota1. Value) ,
Exit Sub
Else txtDiskonRp. Value = Format( ( txtDiskon.
Value / 100 ) txtGrandTota1. Value, " # , )
txtTota1. Value = Format (CDb1 ( txtGrandTota1.
Value) — CDb1 ( txtDiskonRp . Value) ,
If CDb1 ( txtBayar . Value) < CDb1 ( txtTota1.
Value) Then txtKemba1i . Value = O Exit
Sub
Else txtKemba1i . Value = Format ( CDb1
( txtBayar . Value) — CDb1 ( txtTota1.
Value) ,
End
If End
If
End Sub
End Sub
308
If txtJum1ah . Value = Or txtJum1ah . Value = O Then
MsgBox n Jumlah barang belum diisi n ,
vbOKOn1y + vbCritica1 , " Jumlah Barang
Kosong" txtJum1ah. SetFocus Exit Sub
End If
309
CDb1(c.Offset(O, 7) . Value) ,
End With
TotalJua1
For Total = 1 To listJua1. ListCount
TotalJua1 = TotalJua1 + CDb1
( listJua1. List (Total , 7) )
txtGrandTota1. Value = Format
( TotalJua1 , txtTota1. Value = Format (TotalJua1 ,
txtBayar . Value Next Total
txtJum1ah. Value =
cmbKodeBarang . SetFocus
txtDiskon. Value
txtDiskonRp.
Value
txtBayar . Value
End Sub
With listJua1
If . List Index < 1 Then
MsgBox "Pilih nomor item yang akan
diedit" , vbOKOn1y + vblnformation, n Pilih
Nomor Item " listJua1. SetFocus Exit Sub
Else
CekStok = txtStok. Value — txtJum1ah. Value
If CekStok < O Then
MsgBox "Stok " & txtNamaBarang . Value &
yang tersedia & txtStok. Value,
vbOKOn1y
+ vbCritica1 , " Stok Barang
Tidak Ada" txtJum1ah. Value =
txtJum1ah. SetFocus Exit Sub
End If
310
Lookln : =x1Va1ues )
. List( . List Index, 3) = txtJum1ah.Va1ue
. List( . List Index, 4 ) =
Format (c . Offset ( 0 , 5 ) . Value,
. List( . List Index, 5 ) = c. Offset ( 0 , 6 )
. Value
. List( . List Index, 6 )
Format (c . Offset ( 0 ,
. List( . List Index, 7 ) = Format ( txtJum1ah.
Value *
CDb1(c.Offset(0, 7 ) . Value) ,
End If End
With
TotalJua1
For Total = 1 To listJua1. ListCount
TotalJua1 = TotalJua1 + CDb1 ( listJua1. List
(Total , 7) ) txtGrandTota1. Value =
Format ( TotalJua1 , txtTota1. Value
= Format (TotalJua1 , txtBayar . Value Next Total
txtJum1ah. Value =
cmbKodeBarang . SetFocus
txtDiskon. Value
txtDiskonRp.
Value
txtBayar . Value
End Sub
If listJua1. ListCount =
1 Then txtGrandTota1.
Value txtTota1.
311
Value txtKemba1i .
Value
Else
TotalJua1
For Total = 1 To listJua1. ListCount
TotalJua1 TotalJua1 + CDb1 ( listJua1. List
( Total ,
7) ) txtGrandTota1. Value = Format ( TotalJua1 ,
txtTota1. Value txtBayar . Value
Next Total End If = Format
( TotalJua1 ,
txtDiskon. Value
txtDiskonRp. Value
txtBayar . Value
End Sub
End Sub
312
wsCetak . Cells . Clear
313
ColumnWidth = 10 wsCetak . Columns ( "C:
C" ) . ColumnWidth = 20 wsCetak .
Columns ( "D : D" ) . ColumnWidth
wsCetak . Columns ( "E : E" ) .
ColumnWidth wsCetak . Columns ( "F :
F" ) . ColumnWidth = 12 wsCetak .
Columns ( "G:G" ) • ColumnWidth = 14
wsCetak.Range( "A6 :G6" ) .
HorizontalA1ignment = xlCenter
wsCetak.Range( "A6 :G6" ) . Borders
( xlEdgeTop) . LineSty1e = xlContinuous
wsCetak . Range( "A6 :G6" ) . Borders
(xlEdgeBottom) . LineSty1e = xlDoub1e
wsCetak.
wsCetak.
wsCetak.
wsCetak.
wsCetak.
Next No
For Border
wsCetak.
Next Border
With listJua1
314
wsCetak. Cells( . ListCount 9, 6 ) . Value = " Bayar "
wsCetak. .
xlEdgeBottom)
LineSty1e = xlDoub1e wsCetak. Cells( . ListCount
7 ) . Borders ( xlEdgeBottom) .
LineSty1e = xlDoub1e wsCetak. Cells( .
ListCount + 8, 7) . Value = CDb1
( txtTota1. Value ) wsCetak. Cells( .
ListCount + 8, 7) . NumberFormat =
End Sub
"Tabe1Bantu" )
( "DatabaseBarang 315
t
' )
HeaderPenjua1an"
)
Private Sub cmdBayar_C1ick(
,
wsHdrPj1n . Cells (RecordAkhirHdrPj1n
+
1 2 ) . Value = Date
,
wsHdrPj1n . Cells (RecordAkhirHdrPj1n
+
1 3 ) .
Value =
WorksheetFunction. EDate ( Date, ,
3 )
wsHdrP j In . Cells ( RecordAkhirHdrP
j In
1 4 ) . Value =
,
316
Umumn
wsHdrP j In . Cells
( RecordAkhirHdrP j In
1 5 ) .
Value =
CDb1 ( txtGrandTota1. Value ) ,
wsHdrP j In . Cells
( RecordAkhirHdrP j In
1 6 ) .
Value =
j In
CDb1 ( txtDiskon. Value ) 1,
,
1
wsHdrP j In . Cells
( RecordAkhirHdrP j In
—
1 7 ) .
Value =
CDb1 ( txtTota1. Value ) ,
wsHdrP j In . Cells
( RecordAkhirHdrP j In
1 8) .
Value =
. ,
CDb1 ( txtBayar Value ) wsHdrP j In . Cells
( RecordAkhirHdrP 9 ) . Value
For No = 1 To listJua1.ListCount
3 )
wsDt1Pj1n. Cells (RecordAkhirDt1Pj1n + No, 1) . Value
= NoFaktur
317
In Value =
txtJum1ah. Value =
txtGrandTota1.
Value
txtDiskon. Value
txtDiskonRp .
Value = txtTota1.
Value txtBayar .
Value txtKemba1i .
Value
Call Judu11temTranskasi
ThisWorkbook. Save
End Sub
End Sub
If wsHdrPj1n.
FilterMode Then
wsHdrPj In . ShowA11
Data
End If
318
wsDt1Pj In . ShowA11 Data
End If
End Sub
319
Objek Setting Properti
Name = cmdKeluar, Caption = Keluar, Height =
24, Left = 6, Top = 216, Width = 60, Accelerator
= K, PicturePosition = 1 —
frmPicturePositionLeftCenter, Picture =
CommandButton Keluar.gif, Tablndex = 7
Name = cmdCetak, Caption = Cetak, Height = 24,
Left = 294, Top = 216, Width = 60, Accelerator =
CommandButton C, PicturePosition = 1—
frmPicturePositionLeftCenter, Picture = Print.gif,
Tablndex = 5
Name = cmdBayar, Caption = Bayar, Height = 24,
Left = 360, Top = 216, Width = 60, Accelerator =
CommandButton B, PicturePosition = 1—
frmPicturePositionLeftCenter, Picture =
Bayar.gif, Tablndex = 6
Name = txtHutang, Height = 18, Left = 66, Top =
36, Width = 120, Font = (Font = Tahoma; Font
style = Bold; Size = 11), Locked = True, TextAlign
= 3 — fmTextAlignRight, BackColor =
TextBox (biru), Forecolor =
( utih), Value = 0
Name = txtBayar, Height = 18, Left = 66, Top = 60,
Width = 120, Font = (Font = Tahoma; Font style =
Bold; Size = 11), TextAlign = 3 —
fmTextAlignRight, BackColor = 6HOOFFOOOO&
(biru), Forecolor = 6HOOFFFFFF6 (putih),
TextBox Tablndex = 3, Value = 0
Name = cmbNoFaktur, Height = 18, Left = 342,
Top = 54, Width = 78, style = 2
fmStyleDropDownList, Tablndex = 4, BackColor
ComboBox = abu-abu
ListBox Name = listHutang, Height = 126, Left = 6, Top =
84, Width = 414, BoundColumn = 6,
320
ColumnCount = 6, Tablndex = 1
Name = optHutangAll, Caption = Tampilkan
faktur dengan hutang, Height = 18, Left = 192,
OptionButton
Top 36, Width = 150, Accelerator = T, Tablndex =
0
Name = optDetail, Caption = Detail pembayaran
OptionButton hutang per faktur, Height = 18, Left = 192, Top =
60, Width = 150, Accelerator = D, Tablndex = 2
Name = imgForm, Height = 24, Left = 6, Top = 6,
Width = 24, Picture = Hutang.gif, PictureAlignment = 2
— frmPictureAlignmentCenter, PictureSizeMode
Image = 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Form Pembayaran
Hutang, Height = 24, Left = 30, Top = 6, Width =
390, Font = (Font = Tahoma; Font style = Bold;
Size = 16), BackColor = (hijau muda), ForeColor =
Label (merah)
Name = lblHutang, Caption = Hutang, Height =
18, Left = 6, Top = 36, Width = 60, Font = (Font
Label = Tahoma; Font style = Bold; Size = 11),
BackC010r = (biru), Forecolor =
( utih)
Name = lblBayar, Caption = Bayar, Height = 18,
Left = 6, Top = 60, Width = 60, Font = (Font =
Tahoma; Font style = Bold; Size = 11), BackColor
(biru), Forecolor =
Label ( utih)
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
321
0
' Kode ketika Form Pembayaran Hutang aktif
Private Sub UserForm_Äctivate( )
wsHdrPb1n adalah worksheet Headerpembelian
Set wsHdrPb1n = Sheets ( " HeaderPembe1ian " )
' Jika worksheet HeaderPembe1ian kosong
If wsHdrPb1n. Range( "A3 " ) . Value —Then
' Menampilkan kotak pesan Transaksi Pembelian Kosong
MsgBox " Bel um ada transaksi pembelian " , vbOKOn1y ,
" Transaksi Pembelian Kosong "
' Keluar dari Sub Procedure
Exit Sub
' Keluar dari Form Pembayaran Hutang
Unload Me
End If
End Sub
With listHutang
Menambahkan item ListBox sebagai judul kolom
. Addltem
' Judul ListBox kolom pertama
322
' Judul ListBox kolom kedua
End Sub
Menghapus ListBox
listHutang . Clear
TextBox Bayar tidak terkunci
txtBayar . Locked = False
ComboBox No Faktur dinonaktifkan
cmbNoFaktur . Enabled = False
ComboBox No Faktur dikosongkan
cmbNoFaktur . Value =
323
Set rgHutang = wsHdrPb1n. Range( I' G3 'I ,
wsHdrPb1n . Range ( "G3 " ) . End
( xlDown) )
Struktur pengulangan setiap sel dalam rgHutang
For Each Sel In rgHutang
' Jika ada sel yang nilainya lebih besar dari O
If Sel > O Then
' Memasukkan nilai ke dalam sel M3
wsHdrPb1n . Range ( "M3 " ) . Value
' Menghapus Nil ai dalam range 13 : L3
wsHdrPb1n . Range ( " 13 : L3 " ) .
ClearContents ' Penyaringan data
menggunakan Advanced Filter
rgDtbsHdrPb1n . AdvancedF i 1 ter
Action : =x1Fi1terInP1ace ,
CriteriaRange : =wsHdrPb1n . Range ( " 12 :
M3 " )
' Memanggil Sub Procedure Judu1HutangA11
Call Judu1HutangA11
With wsHdrPb1n
' rgTampi1 = range NoFakturHdrPb1n yang
ditampilkan Set rgTampi1 = wsHdrPb1n.
Range( "NoFakturHdrPb1n" ) .
SpecialCe11s ( xlCe1 ITypeVisib1e )
' sTampi1 adalah pengulangan setiap sel dalam
rgTamp i 1
For Each sTampi1 In rgTampi1
With listHutang
I
Memasukkan item ke dalam ListBox
. Addltem sTampi1. Value
Nomor faktur berdasarkan nil ai dalam
sTampi1
. List( . ListCount 1 0) = sTampi1. Value
I
Pengisian tanggal jatuh tempo
. List( . ListCount
Format ( sTampi1.
Offset (O, 2) .
Value,
dd/mm/yyyy" )
I
Pengisian kode pemasok
. List( . ListCount —
sTampi1 . Offset (0,
3) Value
I
Pengisian total nil ai transaksi
pembelian
. List( .ListCount —
Format ( sTampi1. Offset ( O , 4 ) .
Value ,
I
Pengisian pembayaran
324
. List( . ListCount
Format ( sTampi1. Offset ( O , 5) .
Value ,
I
Pengisian hutang
. List( . ListCount
Format ( sTampi1. Offset ( O , 6 ) .
Value ,
End With
Next sTampi1
End With
Exit For
' Jika tidak ada sel yang nilainya lebih besar dari
O
Else
' Memanggil Sub Procedure Judu1HutangA11
Call Judu1HutangA11
End If
Next Sel
325
TextBox Bayar bernilai 0
txtBayar . Value
TextBox Bayar terkunci
txtBayar . Locked = True
ComboBox No Faktur diaktifkan
cmbNoFaktur . Enabled = True
326
End If
End Sub
Sub Judu1Detai1
( )
Menghapus
ListBox
listHutang . Clear
With listHutang
' Menambahkan item ListBox sebagai judul
kolom
. Addl tem
' Judul ListBox kolom per tama
. List ( • ListCount — 1, 0 ) = "No Faktur n
End Sub
327
List ( listHutang. List
Index, 5) ' TextBox Bayar
bernilai O txtBayar . Value
End Sub
End Sub
328
Memanggil Sub Procedure Judu1Detai1
Call Judu1Detai1
Memasukkan Nilai ComBoBox (no faktur) ke dalam sel H3
wsPemHut . Range( "H3 " ) . Value = cmbNoFaktur . Value
Penyaringan data menggunakan Advanced Filter
wsPemHut . Range ( "DatabaseHutang " ) .
AdvancedFi1ter
Action : =x1Fi1terInP1ace ,
CriteriaRange : =wsPemHut . Range ( H2 : H3 )
With wsPemHut
' rgTampi1 adalah range NoFakturPemHut yang
ditampilkan Set rgTampi1 = wsPemHut .
Range( "NoFakturPemHut" ) .
SpecialCe11s ( xlCe1 ITypeVi sible )
' sTampi1 merupakan pengulangan setiap sel dalam
rgTampi1
For Each sTampi1 In rgTampi1
With listHutang
. Addltem sTampi1. Value
' Nomor faktur berdasarkan nilai sTampi1
. List( . ListCount — 1 0) = sTampi1.
Value ' Tanggal pembayaran 1 kolom di
kanan sTampi1 . List( . ListCount — =
Format ( sTampi1 .
Offset (O, 1) . Value, "dd/mm/yyyy" )
' Kode pemasok 2 kolom di sebelah kanan
sTampi1
. List( . ListCount
sTampi1. Offset (0, 2)
. Value
'Nil ai hutang 3 kolom di sebelah kanan
sTampi1
. List( .ListCount — 1 3)
Format ( sTampi1 . Offset (0, 3) .
Value, " # , " ) ' Total yang dibayarkan 4
kolom di kanan sTampi1 . List( . ListCount
End Sub
329
wsDtbsPmsk adalah worksheet DatabasePemasok
Set wsDtbsPmsk = Sheets ( "
DatabasePemasok 'I ) wsHdrPb1n adalah
worksheet HeaderPembe1ian Set
wsHdrPb1n = Sheets ( " HeaderPembe1ian
n
) wsPemHut adalah worksheet
PembayaranHutang
Set wsPemHut = Sheets ( " PembayaranHutang n )
Jika TextBox Bayar bel um diisi
If txtBayar . Value = Then
' Menampilkan kotak pesan Jumlah Bayar Kosong
MsgBox n Jumlah pembayaran hutang belum diisi " ,
vbOKOn1y + vbCritica1 , " Jumlah Bayar Kosong"
' TextBox Bayar menjadi fokus
txtBayar . SetFocus
' Keluar dari Sub Procedure
Exit Sub
End If
End If
Pencarian pada range NoFakturHdrPb1n
With wsHdrPb1n . Range ( "NoFakturHdrPb1n" )
' c merupakan sel hasil pencarian
Set c . Find ( listHutang . List ( listHutang . List
Index , 0) ,
Look In : =x1Va1ues )
' Total pembayaran ditambah jumlah pembayaran baru
c. Offset( 0 . Value- Offset( 0 . Value +
CDb1 ( txtBayar . Value )
' Sisa hutang dikurangi jumlah pembayaran
330
c. Offset (O, 6 ) . Value = c. Offset (O,
6 ) . Value — CDb1 ( txtBayar . Value ) End
With
331
TextBox Bayar 0
bernilai txtBayar .
Value = 0 Procedure
Memanggil Sub optHutangA11_C1ick
Call
optHutangA11_C1ick
End Sub
Kode ketika
Private Sub
cmdCetak_C1ick(
wsPemHut adalah
Set wsPemHut —
Sheets CommandButton Cetak di—klik
( PembayaranHutang )
wsTb1Bantu adalah
worksheet worksheet PembayaranHutang
Tabe1Bantu 'V )
Set wsTb1Bantu = Sheets ( " Tabe1Bantu
n
) wsCetak adalah worksheet Cetak
Set wsCetak = Sheets( "Cetak" ) rgAdvFi1ter adalah
range H2 : H3 worksheet PembayaranHutang
Set rgAdvFi1ter = wsPemHut . Range( n H2 : H3 )
Menentukan orientasi kertas wsCetak.
PageSetup . Orientation = xlPortrait
Menentukan margin kiri kertas
wsCetak. PageSetup . LeftMargin =
Application . CentimetersToPoints ( 1 . 5 )
Menentukan margin kanan kertas
wsCetak. PageSetup . RightMargin =
Application . CentimetersToPoints ( 1 . 5 )
Menentukan margin atas kertas
wsCetak. PageSetup . TopMargin =
Application . CentimetersToPoints ( 2 )
Menentukan margin bawah kertas
wsCetak. PageSetup . BottomMargin
= Application .
CentimetersToPoints ( 2 )
Menentukan ukuran pencetakan
wsCetak. PageSetup. Zoom = 100
Menentukan judul cetak wsCetak.
PageSetup . PrintTit1eRows = " $9 :
$10"
332
Menentukan area cetak
wsCetak. PageSetup .
PrintArea =
333
Menyaring data menggunakan Advanced Filter
wsPemHut . Range ( "DatabaseHutang " ) .
AdvancedFi1ter
Action : =x1Fi1terInP1ace, CriteriaRange :
=rgAdvFi1ter
Menyalin range DatabaseHutang Advanced Filter
wsPemHut . Range ( "DatabaseHutang " ) .
SpecialCe11s (xlCe11TypeVisib1e ) .
Copy Destination : =wsCetak. Range ( n A4 'I )
' Mencetak database hutang wsCetak.
PrintOut Copies : = 1 , Collate: =True
End Sub
0
' Kode ketika CommandButton Keluar di-klik
Private Sub cmdKe1uar_C1ick( )
End Sub
334
Jika data yang ditampilkan merupakan hasi1 penyaringan
If wsPemHut . FilterMode Then
Tampilkan seluruh data dalam worksheet
PembayaranHutang wsPemHut . ShowA11Data
End If
End Sub
335
3. Pengaturan properti objek kontrol selengkapnya dapat
dilihat pada tabel berikut:
Objek Setting Properti
Name = cmdKeluar, Caption = Keluar, Height =
24, Left = 6, Top = 216, Width = 60, Accelerator
CommandButton = K, PicturePosition = 1 —
frmPicturePositionLeftCenter, Picture =
Keluar.gif, Tablndex = 7
Name = cmdCetak, Caption = Cetak, Height = 24,
Left = 294, Top = 216, Width = 60, Accelerator =
CommandButton C, PicturePosition = 1—
frmPicturePositionLeftCenter, Picture = Print.gif,
Tablndex = 5
336
Name = listPiutang, Height = 126, Left = 6, Top —
84, Width = 414, BoundColumn = 6,
ListBox ColumnCount = 6, Tablndex = 1
Name = optPiutangAll, Caption = Tampilkan
faktur dengan piutang, Height —- 18, Left = 192,
OptionButton
Top = 36, Width = 150, Accelerator = T, Tablndex
=0
Name = optDetail, Caption = Detail penerimaan
piutang per faktur, Height = 18, Left = 192, Top
OptionButton 60, Width = 150, Accelerator = D, Tablndex = 2
Name = imgForm, Height = 24, Left = 6, Top = 6,
Width = 24, Picture = Piutang.gif,
PictureAlignment = 2 —
frmPictureAlignmentCenter, PictureSizeMode
Image = 0 — frmPictureSizeModeClip
Name = lblForm, Caption = Form Penerimaan
Piutang, Height = 24, Left = 30, Top = 6, Width =
390, Font = (Font = Tahoma; Font style = Bold;
Size = 16), BackC010r = (hijau muda),
Label ForeColor = (merah)
Name = lblPiutang, Caption = Piutang, Height =
18, Left = 6, Top = 36, Width = 60, Font = (Font
= Tahoma; Font style = Bold; Size = 11),
Label BackC010r = (biru), Forecolor =
( utih)
Name = lblBayar, Caption = Bayar, Height = 18,
Left = 6, Top = 60, Width = 60, Font = (Font —
Tahoma; Font style = Bold; Size = 11), BackColor
(biru), Forecolor =
Label ( utih)
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
337
' Kode ketika Form Penerimaan Piutang aktif
Private Sub UserForm_Activate( )
0
' wsHdrPj1n adalah worksheet HeaderPenjua1an
Set wsHdrPj1n = Sheets( "HeaderPenjua1an" )
End Sub
' Sub Procedure Judu1PiutangA11
Sub Judu1PiutangA11 ( )
' Menghapus ListBox
listPiutang . Clear
With listPiutang
' Menambahkan item ListBox sebagai judul kolom
. Addl tem
' Judul ListBox kolom pertama
338
' Judul ListBox kolom kedua
End Sub
339
For Each Sel In rgPiutang
' Jika ada sel yang nilainya lebih besar dari O
If Sel > O Then
' Memasukkan nilai ke dalam sel 03
wsHdrPj1n . Range ( "03 " ) . Value
' Menghapus Nilai dalam range L3 : P3
wsHdrPj1n . Range ( "K3 : N3 " ) .
ClearContents ' Penyaringan data
menggunakan Advanced Filter rgDtbsHdrP j
In. AdvancedFi 1 ter
Action : =x1Fi1terInP1ace ,
CriteriaRange : =wsHdrPj1n . Range ( "K 2 :
03 " )
' Memanggil Sub Procedure Judu1PiutangA11
Call Judu1PiutangA11
With wsHdrPj1n
' rgTampi1 range NoFakturHdrPj1n yang
ditampilkan
Set rgTampi1 = wsHdrPj1n. Range( n NoFakturHdrPj1n" ) .
SpecialCe11s ( xlCe11TypeVisib1e )
' sTampi1 pengulangan setiap sel dalam rgTampi1
For Each sTampi1 In rgTampi1
With listPiutang
' Memasukkan item ke dalam ListBox
. Add Item sTampi1. Value
' Nomor faktur berdasar nil ai dalam
sTampi1
. List( . ListCount — 1 0) sTampi1.
Value Pengisian tanggal jatuh tempo
. List( .ListCount — Format ( sTampi1 .
I
Pengisian pembayaran
. List( . ListCount
Format ( sTampi1. Offset ( O , 7) .
Value,
I
Pengisian piutang
340
. List( . ListCount
Format ( sTampi1. Offset ( O , 8) .
Value ,
End With
Next sTampi1
End With
Exit For
' Jika tidak ada sel yang nilainya lebih besar dari
O
Else
' Memanggil Sub Procedure Judu1PiutangA11
Call Judu1PiutangA11
End If
Next Sel
' Jika data yang ditampilkan merupakan hasil penyaringan
If wsHdrPj1n . FilterMode Then
' Tampilkan seluruh data dalam worksheet
HeaderPenjua1an wsHdrP j In. ShowA11Data
End If
End Sub
341
' ComboBox No Faktur diaktifkan
cmbNoFaktur . Enabled = True
342
wsPenPiu. ShowA11 End If
End Sub
With listPiutang
' Menambahkan item ListBox sebagai judul kolom
. Addl tem
' Judul ListBox kolom pertama
343
Exit Sub
End If
End If
End Sub
ai Text Box Bayar
diubah
' Kode ketika nil
Private Sub
txtBayar_Change ( )
' Format TextBox
txtBayar . Value = Bayar
Format ( txtBayar .
' Jika nilai TextBox Value , Piutang 0 atau
kosong
If txtPiutang . Value = 0 Or txt Piutang . Value = Then
' Keluar dari Sub Procedure
Exit Sub
' Jika nilai TextBox Bayar O atau kosong
El self txtBayar . Value = O Or txtBayar . Value = Then
' Keluar dari Sub Procedure
Exit Sub
' Jika nilai TextBox Bayar lebih besar dari TextBox
Piutang
El self CDb1 ( txtBayar . Value) > CDb1 ( txtPiutang
. Value) Then ' Nilai TextBox Bayar sama dengan
TextBox Piutang txtBayar . Value = txtPiutang .
Value
' Keluar dari Sub Procedure
Exit Sub
End If
End Sub
' Kode ketika nilai ComboBox diubah
Private Sub cmbNoFaktur_Change( )
344
menggunakan Advanced Filter wsPenPiu. Range
( "DatabasePiutang " ) . AdvancedFi1ter
Action : =x1Fi1terInP1ace ,
CriteriaRange : =wsPenPiu . Range ( n H2 : H3 n )
With wsPenPiu
' rgTampi1 adalah range NoFakturPenPiu yang
ditampilkan Set rgTampi1 = wsPenPiu .
Range( "NoFakturPenPiu" ) .
SpecialCe11s ( xlCe1 ITypeVi sible )
' sTampi1 merupakan setiap sel dalam rgTampi1
For Each sTampi1 In rgTampi1
With listPiutang
. Addltem sTampi1. Value
' Nomor faktur berdagarkan nilai sTampi1
. List( .ListCount sTampi1. Value
' Tanggal penerimaan 1 kolom sebelah kanan
sTampi1
. List( .ListCount
Format ( sTampi1. Offset ( 0 , 1 ) .
Value,
" dd/mm/yyyy" )
' Kode pelanggan 3 kolom di sebelah kanan
sTampi1
. List( .ListCount
sTampi1.Offset(0, 2 ) . Value
'Nil ai piutang 4 kolom di sebelah kanan
sTampi1
. List( .ListCount -
Format (sTampi1 . Offset ( O , 3 ) .
Value,
' Total yang dibayarkan 5 kolom di kanan
sTampi1
. List( . ListCount —
Format ( sTampi1. Offset ( O , 4 ) .
Value,
' Sisa piutang 6 kolom di sebelah kanan
sTampi1
. List( . ListCount —
Format ( sTampi1. Offset ( O , 5 ) .
Value,
End With
Next sTampi1
End With
End Sub
345
Set wsDtbsP1gn = Sheets ( "
DatabasePe1anggan n ) ' wsHdrPj1n adalah
worksheet HeaderPenjua1an
Set wsHdrPj1n = Sheets ( " HeaderPenjua1an n )
' wsPenPiu adalah worksheet PenerimaanPiutang
Set wsPenPiu = Sheets ( "PenerimaanPiutang
' Jika TextBox Bayar belum diisi
If txtBayar . Value = Then
' Menampilkan kotak pesan Jumlah Barang Kosong
MsgBox "Jumlah penerimaan piutang belum
diisi " vbOKOn1y + vbCritica1 , " Jumlah
Bayar Kosong" ' TextBox Bayar menjadi fokus
txtBayar . SetFocus
' Keluar dari Sub Procedure
Exit Sub
End If
346
c . Offset ( O , 6 ) . Value = c . Offset
( O , 6 ) . Value — CDb1 ( txtBayar .
Value )
End With
With listPiutang
'No faktur di bawah record terakhir penerimaan
piutang wsPenPiu. Cells (RecordAkhirPenPiu + 1 , 1 )
. Value =
. List( . List Index, O )
' Masukkan tanggal pada record yang sama
wsPenPiu. Cells (RecordAkhirPenPiu + 1 , 2 ) .
Value = Date ' Masukkan kode pelanggan pada
record yang sama wsPenPiu. Cells
(RecordAkhirPenPiu + 1 , 3 ) . Value = .
List( . Listlndex, 2 )
' Memasukkan jumlah piutang pada record yang sama
wsPenPiu. Cells (RecordAkhirPenPiu + 1 , 4 ) . Value
=
CDb1 ( txtPiutang . Value )
' Memasukkan penerimaan piutang baru pada record
sama wsPenPiu. Cells (RecordAkhirPenPiu + 1 , 5 ) .
Value =
CDb1 ( txtBayar . Value )
' Memasukkan sisa piutang pada record yang sama
wsPenPiu. Cells (RecordAkhirPenPiu + 1 , 6 ) .
Value =
CDb1 ( txtPiutang . Value ) — CDb1
( txtBayar . Value ) End With
End Sub
347
Set wsTb1Bantu = Sheets ( "
' wsCetak adalah worksheet Cetak
Set wsCetak = Sheets( " Cetak" )
' rgAdvFi1ter adalah range H2 : H3 worksheet
PenerimaanPiutang
Set rgAdvFi1ter = wsPenPiu.Range( '1 H2 : H3 'I )
Application.
CentimetersToPoints ( 1 . 5 ) '
Menentukan margin atas kertas
wsCetak. PageSetup . TopMargin =
Application.
CentimetersToPoints ( 2 ) '
Menentukan margin bawah kertas
wsCetak. PageSetup . BottomMargin
=
Application. CentimetersToPoints (
2 ) ' Menentukan ukuran pencetakan
wsCetak. PageSetup . Zoom = 100 '
Menentukan judul cetak wsCetak.
PageSetup . PrintTit1eRows = " $9 :
$10" ' Menentukan area cetak wsCetak.
PageSetup . PrintArea =
348
' OptionButton Detail penerimaan piutang/faktur yang
terpilih
If optDetai1. Value = True Then
' Memasukkan teks Cetak No Faktur : terpilih
wsCetak.Range( "A3" ) . Value —
Cetak No Faktur & cmbNoFaktur .
Value ' Memasukkan teks no faktur
terpilih wsPenPiu.Range( "H3 " ) . Value
= cmbNoFaktur . Value
Else
' Memasukkan teks Cetak Seluruh Record
wsCetak.Range( "'A3 " ) . Value = "
Cetak : Seluruh Record " ' Menghapus
nilai sel 13 wsPenPiu . Range ( "H3 't ) .
ClearContents
End If
' Format font tebal (bold) pada sel A9 worksheet Cetak
wsCetak.Range( "A3" ) . Font . Bold = True
' Menyalin lebar kolom range
A2 :G2 wsPenPiu . Range( "A2 : F
2" ) . Copy wsCetak. Range( "A4 "
) . PasteSpecia1
Paste : =x1PasteC01umnWidths
' Menyaring data menggunakan Advanced Filter
wsPenPiu. Range ( "DatabasePiutang " ) .
AdvancedFi1ter
Action : =x1Fi1terInP1ace, CriteriaRange :
=rgAdvFi1ter
' Menyalin range DatabasePiutang Advanced
Filter wsPenPiu. Range( "DatabasePiutang" )
. SpecialCe11s (xlCe11TypeVisib1e) . Copy
Destination: = wsCetak . Range( "A5 " )
End Sub
o
' Kode ketika CommandButton Keluar di-klik
Private Sub cmdKe1uar_C1ick( )
0
' Keluar dari Form Penerimaan Piutang
349
Unload Me
End Sub
End Sub
350
Gambar 4.16 Tampilan Form Cetak.
351
Name = optDtbsPelanggan, Caption = Database
OptionButton Pelanggan, Height = 18, Left = 6, Top = 42, Width
= 93, Accelerator = P, Tablndex = 2, Value = False
Name = optTransaksiBeli, Caption = Transaksi
Pembelian, Height = 18, Left = 102, Top = 6,
OptionButton
Width = 93, Accelerator = T, Tablndex = 3, Value
= False
Name = optTransaksiJual, Caption = Transaksi
Penjualan, Height = 18, Left = 102, Top = 24,
OptionButton
Width = 93, Accelerator = j, Tablndex = 4, Value =
False
Name = imgForm, Height = 24, Left = 6, Top = 6,
Width = 24, Picture = Cetak.gif, PictureAlignment = 2
Image
— frmPictureAlignmentCenter, PictureSizeMode
= 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Form Cetak, Height =
24, Left = 30, Top = 6, Width = 174, Font = (Font
Label = Tahoma; Font style = Bold; Size = 16),
BackColor = (hijau muda), Forecolor =
(merah)
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
' Kode ketika CommandButton OK di-klik
Private Sub cmdOK_C1ick( )
' wsDtbsBrg adalah worksheet DatabaseBarang
Set wsDtbsBrg = Sheets( "DatabaseBarang " )
wsDtbsPmsk adalah worksheet DatabasePemasok
Set wsDtbsPmsk = Sheets ( "DatabasePemasok" )
0
' wsDtbsP1gn adalah worksheet
DatabasePe1anggan
Set wsDtbsP1gn = Sheets ( "DatabasePe1anggan
t
' )
' wsHdrPb1n adalah worksheet HeaderPembe1ian
Set wsHdrPb1n = Sheets ( "
HeaderPembe1ian" ) ' wsHdrPj1n adalah
worksheet HeaderPenjua1an
Set wsHdrPj1n = Sheets( " HeaderPenjua1an " )
' Keluar dari Form Cetak
352
Unload Me
' Jika OptionButton Database Barang yang terpilih
If optDtbsBarang . Value = True Then
' Jika database barang kosong
If wsDtbsBrg . Range( "A3 " ) . Value = Then
' Menampilkan kotak pesan Database Barang
Kosong
MsgBox "Tidak ada data dalam database barang" ,
vbOKOn1y , "Database Barang Kosong"
' Keluar dari Sub Procedure
Exit Sub
End If
' Menampilkan Form Cetak Barang
formCetakBarang . Show
' Jika OptionButton Database Pemasok yang terpilih
El self optDtbsPemasok. Value =
True Then ' Jika database
pemasok kosong
If wsDtbsPmsk. Range( "A3 " ) . Value = Then
' Menampilkan kotak pesan Database Pemasok
Kosong
MsgBox "Tidak ada data dalam database pemasok" ,
vbOKOn1y , "Database Pemasok Kosong"
' Keluar dari Sub Procedure
Exit Sub
End If
' Menampilkan Form Cetak Pemasok f
ormCe takPemas ok. Show
353
' Menampilkan kotak pesan Transaksi Pembelian
Kosong
MsgBox "Belum ada transaksi pembelian" ,
vbOKOn1y , Transaksi Pembelian Kosong n
' Keluar dari Sub Procedure
Exit Sub
' Keluar dari Form Pembayaran Hutang
Unload Me
End If
' Menampilkan Form Cetak Pembelian
formCetakPembe1ian . Show
' Jika OptionButton Transaksi Penjualan yang terpilih
El self optTransaksiJua1. Value = True Then
' Jika worksheet HeaderPenjua1an kosong
If wsHdrPj1n.Range( "A3 " ) . Value = n n Then
' Menampilkan kotak pesan Transaksi Penjualan
Kosong
MSgBOx 'l Belum ada transaksx pen Jualan " ,
vbOKOn1y ,
" Transaksi Penjualan Kosong "
Keluar dari Sub Procedure
Exit Sub
End If
' Menampilkan Form Cetak Penjualan
formCetakPenjua1an . Show
End If
End Sub
End Sub
354
Properties. Pilih menu utama yew > Properties Window
atau tekan tombol F4. Obah properti OserForm sebagai
berikut: Name formCetakBarang, Caption — (kosong),
Height 150 dan Width = 189.
2. Tambahkan kontrol ke dalam OserForm hingga tampilan
Form Cetak Barang menjadi seperti pada Gambar 4.17.
355
Name = frmOpsi, Caption = (kosong), Height =
Frame 54, Left = 6, Top = 36, Width = 174, Tablndex = 0
356
Status merupakan range dari sel D3 ke bawah
Set Status = wsDtbsBrg . Range ( " D3 "
wsDtbsBrg . Range ( "D3 " ) . End
( x1 Down) )
End Sub
' Kode ketika OptionButton Seluruh Record di—klik
Private Sub optA11Record_C1ick( )
' ComboBox Status dinonaktifkan
cmbStatus . Enabled = False
End Sub
End Sub
357
kertas wsCetak. PageSetup . LeftMargin
=
Application .
CentimetersToPoints ( 1 . 5 ) '
Menentukan margin kanan kertas
wsCetak. PageSetup . RightMargin =
Application .
CentimetersToPoints ( 1.5 ) '
Menentukan margin atas kertas
wsCetak. PageSetup. TopMargin =
Application.
CentimetersToPoints ( 2 ) '
Menentukan margin bawah kertas
wsCetak. PageSetup. BottomMargin
=
Application.
CentimetersToPoints ( 2 ) '
Menentukan ukuran pencetakan
wsCetak. PageSetup. Zoom = 100 '
Menentukan judul cetak wsCetak.
PageSetup. PrintTit1eRows '
Menentukan area cetak wsCetak.
PageSetup. PrintArea = " $A: $JTI
358
' Memasukkan teks Cetak : sesuai nilai ComboBox
Status wsCetak. Range( "A3 " ) . Value = " Cetak •
& cmbStatus . Value ' Memasukkan nilai ComboBox
Status ke dalam sel N3 wsDtbsBrg . Range( "N3 " ) .
Value = cmbStatus . Value ' Menghapus range L3 :M3
worksheet DatabaseBarang wsDtbsBrg . Range( "L3 :M3
" ) . ClearContents
End If
' Format font tebal (bold) pada sel A3
worksheet Cetak wsCetak.Range( "A3 " ) . Font
. Bold = True
' Menyalin lebar kolom range A2 : J 2
wsDtbsBrg . Range ( " A2 : J2 " ) . Copy
wsCetak . Range ( "A4 " ) . PasteSpecia1
Paste : =x1PasteC01umnWidths
' Menyaring data menggunakan Advanced Filter
wsDtbsBrg . Range ( " DatabaseBarang" ) .
AdvancedFi1 ter
Action : =x1Fi1 ter1nP1ace , Cri ter iaRange :
=rgAdvFi1 ter
' Menyalin range DatabaseBarang Advanced Filter
wsDtbsBrg . Range( "DatabaseBarang " ) .
SpecialCe11s
( xlCe11TypeVisib1e ) . Copy
Destination : =wsCetak. Range ( " A4 )
' Mencetak database barang wsCetak.
PrintOut Copies : Collate : -True
' Jika data yang ditampilkan merupakan hasil penyaringan
If wsDtbsBrg . FilterMode Then
' Tampilkan seluruh data dalam worksheet
DatabaseBarang wsDtbsBrg . ShowA11Data
End If
End Sub
359
Form Cetak Pemasok digunakan untuk mencetak database
pemasok. Anda dapat mencetak seluruh record pemasok dalam
database atau mencetak record pemasok, di mana perusahaan
mempunyai hutang.
1. Pilih menu Insert > dserForm pada jendela Visual Basic
Editor. Atur properti dserForm melalui window Properties.
Pilih menu utama yew > Properties Window atau tekan
tombol F4. Obah properti OserForm sebagai berikut: Name
= formCetakPemasok, Caption = (kosong), Height = 126 dan
Width = 201.
2. Tambahkan kontrol ke dalam dserForm hingga tampilan
Form Cetak Pemasok menjadi seperti pada Gambar 4.18.
360
Picture = Print. if, Tablndex = 1
Name = frmOpsi, Caption = (kosong), Height = 30,
Frame
Left = 6, To = 36, Width = 186, Tablndex = 0
Name = optAllRecord, Caption = Seluruh Record,
OptionButton Height = 18, Left = 6, Top = 6, Width = 72,
Accelerator = S, Tablndex = 0, Value = True
Name = optHutang, Caption = Hutang Pada
OptionButton Pemasok, Height = 18, Left = 84, Top = 6, Width
= 99, Accelerator = H, Tablndex = 1, Value = False
End Sub
o
' rgHutang adalah range dari sel H 3 ke bawah
Set rgHutang = wsDtbsPmsk . Range ( " H 3 "
wsDtbsPmsk. Range( "H3 " ) . End ( xlDown) )
' Struktur pengulangan setiap sel dalam rgHutang
For Each Sel In rgHutang
' Jika ada sel yang nilainya lebih besar dari O
361
If Sel > O Then
' CommandButton Cetak diaktifkan
cmdCetak. Locked = False
' Keluar dari Sub Procedure
Exit Sub
' Jika tidak ada sel yang nilainya lebih besar dari
O Else
' Menonaktifkan CommandButton Cetak
cmdCetak. Locked = True
End
If Next
Sel
End Sub
362
' Menghapus seluruh sel worksheet Cetak
wsCetak . Cells . Clear
' Menentukan lebar kolom A worksheet Cetak
wsCetak. Columns( "A ) . ColumnWidth = 10
' Teks DATABASE PEMASOK pada sel Al worksheet Cetak
wsCetak.Range( "Al" ) . Value = " DATABASE PEMASOK " '
Format font tebal (bold) pada sel Al worksheet Cetak
wsCetak.Range( "Al" ) . Font . Bold = True
' Ukuran font (12) pada sel Al worksheet Cetak
wsCetak.Range( "Al" ) . Font. Size = 12
' Teks pada range Al : HI diformat rata tengah
wsCetak . Range ( "Al : HI " ) .
HorizontalA1ignment = xlCenter ' Menggabungkan
range Al : HI wsCetak . Range ( "Al : HI " ) .
Merge
' Menentukan tinggi baris ke-2 worksheet Cetak
wsCetak. Rows( " 2 : 2" ) . RowHeight
' Jika OptionButton Seluruh Record yang terpilih
If optA11Record. Value = True Then
' Memasukkan teks Cetak : Seluruh Record
wsCetak. Range( "A3 " ) . Value = " Cetak :
Seluruh Record " ' Menghapus range J3 : L3
worksheet DatabasePemasok wsDtbsPmsk. Range( "J
3 : L3 " ) . ClearContents
El self optHutang . Value = True Then
' Memasukkan teks Cetak : Tunggakan Hutang
wsCetak. Range( "A3 " ) . Value = " Cetak :
Tunggakan Hutang "
' Memasukkan nilai ke dalam sel L3
wsDtbsPmsk. Range( "L3 " ) . Value
' Menghapus range -J 3 : K3 worksheet
DatabasePemasok wsDtbsPmsk.Range ( " J 3 : K 3 "
) . ClearContents
End If
' Format font tebal (bold) pada sel A9 worksheet Cetak
wsCetak.Range( "A3 " ) . Font . Bold =
True
363
' Menyalin range DatabasePemasok hasil Advanced Filter
wsDtbsPmsk. Range( "Databasepemasok n ) . SpecialCe11s
( xlCe11TypeVisib1e ) . Copy
Destination : =wsCetak . Range ( n A4 )
' Mencetak database pemasok wsCetak.
PrintOut Copies : Collate : -True
' Jika data yang ditampilkan merupakan hasil penyaringan
If wsDtbsPmsk . FilterMode Then
' Tampilkan seluruh data dalam worksheet
DatabasePemasok wsDtbsPmsk. ShowA11Data
End If
End Sub
364
Gambar 4.19 Tampilan Form Cetak Pelanggan.
365
= 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Cetak Pelanggan,
Height = 24, Left = 30, Top = 6, Width = 162, Font
Label = (Font = Tahoma; Font style = Bold; Size =
16), BackColor = (hijau muda),
Forecolor = (merah)
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Ketikkan kode Macro sebagai berikut:
Kode ketika OptionButton Seluruh Record di—klik
Private Sub optA11Record_C1ick( )
End Sub
o
' Kode ketika OptionButton Piutang Pelanggan di—
klik
Private Sub optPiutang_C1ick( )
End Sub
366
worksheet DatabasePe1anggan
' wsDtbsP1gn adalah Sheets
Set wsDtbsP1gn = '
wsCetak adalah
Set wsCetak =
' (
rgAdvFi1ter "DatabasePe1anggan " )
adalah worksheet Cetak
Set rgAdvFi1terSheets( "Cetak" ) range J 2 : =
L3 wsDtbsP1gn . Range( "J 2 :
L3 " )
' Menentukan
orientasi kertas
wsCetak. . Orientation = x 1
PageSetup ' Landscape kiri kertas .
Menentukan LeftMargin =
margin wsCetak.
PageSetup
Application .
CentimetersToPoints ( 2 ) '
Menentukan margin kanan kertas
wsCetak. PageSetup. RightMargin =
Application.
CentimetersToPoints ( 2 ) '
Menentukan margin atas kertas
wsCetak. PageSetup. TopMargin =
Application.
CentimetersToPoints ( 2 ) '
Menentukan margin bawah kertas
wsCetak. PageSetup. BottomMargin
=
Application.
CentimetersToPoints ( 2 ) '
Menentukan ukuran pencetakan
wsCetak. PageSetup. Zoom = 100 '
Menentukan judul cetak wsCetak.
PageSetup. PrintTit1eRows '
Menentukan area cetak wsCetak.
PageSetup. PrintArea = " $A: $H TI
367
HorizontalA1ignment = xlCenter ' Menggabungkan
range A7 : H 7 wsCetak . Range ( "Al : HI " ) .
Merge
' Menentukan tinggi baris ke-2 worksheet Cetak
wsCetak. Rows( " 2 : 2" ) . RowHeight
' Jika OptionButton Seluruh Record yang terpilih
If optA11Record. Value = True Then
' Memasukkan teks Cetak : Seluruh Record
wsCetak. Range( "A3 " ) . Value = " Cetak :
Seluruh Record " ' Menghapus range J3 : L3
worksheet DatabasePe1anggan wsDtbsP1gn . Range(
"J 3 : L3 " ) . ClearContents
' Jika OptionButton Piutang Pelanggan yang terpilih
El self optPiutang . Value = True Then
' Memasukkan teks Cetak : Piutang Pelanggan
wsCetak. Range( "A3 " ) . Value = " Cetak :
Piutang Pelanggan " ' Memasukkan nil ai ke dalam
sel L3 wsDtbsP1gn. Range( "L3 " ) . Value =
' Menghapus range J 3 : K 3 worksheet
DatabasePe1anggan wsDtbsP1gn . Range ( " J 3 :
K3 " ) . ClearContents
End If
' Format font teba1 (bold) pada
sel A9 worksheet Cetak ) . Font . Bold = True
wsCetak.Range( "A3"
kolom range A2 : H2
' Menyalin lebar "A2 : H2 ) . Copy
wsDtbsP1gn . 't A4 " ) . PasteSpecia1
Range( wsCetak . =x1PasteC01umnWidths
Range( Paste :
( xlCe11TypeVisib1e ) . Copy
Destination : =wsCetak . Range ( n
A4 )
' Mencetak database pelanggan
wsCetak. PrintOut Copies : Collate :
-True
' Jika data yang ditampilkan merupakan hasil penyaringan
If wsDtbsP1gn . FilterMode Then
' Tampilkan seluruh data dalam worksheet
DatabasePe1anggan
wsDtbsP1gn.
ShowA11Data
368
End If
o
' Keluar dari Form Cetak Pelanggan
Unload Me
End Sub
369
Gambar 4.20 Tampilan Form Cetak Pembelian.
370
18, Left = 186, Top = 12, Width = 45, Accelerator
= T, Tablndex = 3, Value = False
Name = optSebelum, Caption = Sebelum, Height
OptionButton = 18, Left = 234, Top = 12, Width = 51,
Accelerator = b, Tablndex = 4, Value = False
Name = optSesudah, Caption = Sesudah, Height
OptionButton = 18, Left = 282, Top = 12, Width = 48,
Accelerator = d, Tablndex = 5, Value = False
ComboBox Name = cmbTam ilan, Height = 18, Left = 78,
Top = 6, Width = 78, style = 2
fmStyleDropDownList, Tablndex = 0, BackColor =
abu-abu
Name = cmbKode, Height = 18, Left = 72, Top =
36, Width = 66, Style = 2 - fmStyleDropDownList,
ComboBox
Tablndex = 1, BackC010r =
(abuabu)
Name = cmbTangga11, Height = 18, Left = 144,
Top = 36, Width = 90, style = 2
fmStyleDropDownList, Tablndex = 6, BackColor =
ComboBox abu-abu
Name = cmbTangga12, Height = 18, Left = 240,
Top = 36, Width = 90, style = 2
fmStyleDropDownList, Tablndex = 7, BackColor =
ComboBox (abu-abu)
Name = chkHutang, Caption = Tunggakan
Hutang, Height - — 18, Left = 72, Top = 60, Width
CheckBox = 87, Accelerator = H, Tablndex = 2
Name = imgForm, Height = 24, Left = 6, Top = 6,
Width = 24, Picture = Cetak.gif, PictureAlignment = 2
Image — frmPictureAlignmentCenter, PictureSizeMode
= 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Cetak Pembelian,
Height = 24, Left = 30, Top = 6, Width = 312, Font
Label = (Font = Tahoma; Font style = Bold; Size =
16), BackColor = (hijau muda),
Forecolor = (merah)
371
Name = lblTampilan, Caption = Tampilan
Label
Laporan, Hei ht = 12, Left = 6, To = 12, Width = 66
Name = lblKode, Caption = Kode Pemasok, Height
Label
= 12, Left = 6, To = 42, Width = 60
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
o
' Kode ketika Form Cetak Pembelian aktif
Private Sub UserForm_Activate( )
372
Dim SelKode As Range
' Deklarasi variabel NonDupKode sebagai koleksi objek
baru
Dim NonDupKode As New Collection
End Sub
373
' Kode ketika OptionButton Seluruh Record di—klik
Private Sub optA11Record_C1ick( )
' Frame PengaturanOpsi dinonaktifkan
frmPengaturanOpsi . 'Enabled = False dalam
OptionButton Antara keadaan terpilih
optAntara . Value = 'True
ComboBox Tanggal1 dikosongkan
cmbTangga11. Value '
ComboBox Tanggal
cmbTangga12. Value '
ComboBox Kode
cmbKode . Value = '
CheckBox Tunggakan
chkHutang . Value = I dikosongkan
=
End Sub Pemasok dikosongkan
End Sub
374
Sheets ( n HeaderPembe1ian" ) . Range ( "J 3 : K 3 ) .
ClearContents
End Sub
End Sub
' Kode ketika OptionButton Sebelum di-klik
Private Sub optSebe1um_C1ick( )
375
End Sub
End Sub
376
' Menghapus nilai sel K3 worksheet HeaderPembe1ian
wsHdrPb1n . Range ( "K3 " ) . ClearContents
' Jika ComboBox Tanggal 2 tidak kosong
Else
' Pengisian nilai sel K3 <= tanggal terpilih
wsHdrPb1n . Range( "K3 " ) . Value =
& Format ( cmbTangga12 . Value , n
mm/dd/yyyy" ) End If
End Sub
NoFakturHdrPb1n II )
' Jika ada baris yang ditampilkan dari hasil
penyaringan
If CekSe1Tampi1. EntireRow. Hidden = False Then
377
' Memanggil Sub Procedure Laporan
Call Laporan
' Keluar dari Sub Procedure
Exit Sub
End If
Next CekSe1Tampi1
End Sub
378
If cmbTampi1an. Value = " Ringkasan n Then
' Teks pada range Al : HI diformat rata tengah
wsCetak . Range ( "Al : HI " ) .
HorizontalA1ignment = xlCenter ' Menggabungkan
range Al : HI wsCetak . Range( "Al : HI " ) .
Merge ' Menentukan orientasi kertas wsCetak.
PageSetup. Orientation = xlPortrait ' Menentukan
margin kiri kertas wsCetak. PageSetup.
LeftMargin =
Application.
CentimetersToPoints ( 1 . 5 ) '
Menentukan margin kanan kertas
wsCetak. PageSetup. RightMargin =
Application.
CentimetersToPoints ( 1 . 5 ) '
Menentukan margin atas kertas
wsCetak. PageSetup. TopMargin =
Application.
CentimetersToPoints ( 2 ) '
Menentukan margin bawah kertas
wsCetak. PageSetup. BottomMargin
= Application.
CentimetersToPoints ( 2 ) '
Menentukan ukuran pencetakan
wsCetak. PageSetup. Zoom = 90 '
Menentukan judul cetak wsCetak.
PageSetup. PrintTit1eRows
' Menentukan area cetak
wsCetak. PageSetup. PrintArea = n
$A: $G TI
' Memasukkan teks
Cetak : Ringkasan Transaksi
wsCetak. Range( "A3 " ) . Value "
Cetak Ringkasan
Transaksi n
' Mengcopy range A2 : G2
wsHdrPb1n . Range ( "A2 :
G2 " ) . Copy
' Menyalin lebar kolom range A2 :
H2 wsCetak. Range( "A4" ) .
PasteSpecia1
Paste : =x1PasteC01umnWidths
' Menyalin range DatabaseHeaderPembe1ian yang
ditampilkan wsHdrPb1n. Range
( "DatabaseHeaderPembe1ian" ) . SpecialCe11s
( xlCe11TypeVisib1e) . Copy
Destination : =wsCetak . Range ( n A4 )
' Jika nilai ComboBox Tampilan Laporan adalah
Detail
El self cmbTampi1an. Value = " Detail n Then ' Teks
pada range Al : FI diformat rata tengah
wsCetak . Range ( "Al : FI " ) .
379
=
HorizontalAlignment = xlCenterxlPortrait '
Menggabungkan range Al : FI
wsCetak. Range ( " Al : FI " ) .
Merge ' Menentukan orientasi ( 1 . 5
kertas wsCetak. PageSetup . )
Orientation ' Menentukan
margin kiri kertas wsCetak.
PageSetup . LeftMargin = ( 1 . 5
Application . CentimetersToPoints )
' Menentukan margin kanan kertas
wsCetak, PageSetup.RightMargin =
Application . CentimetersToPoints
' Menentukan margin atas kertas
wsCetak. PageSetup. TopMargin =
Application.
CentimetersToPoints ( 2 ) '
Menentukan margin bawah kertas
wsCetak. PageSetup. BottomMargin
=
Application.
CentimetersToPoints ( 2 ) '
Menentukan ukuran pencetakan
wsCetak. PageSetup. Zoom = 90 '
Menentukan area cetak wsCetak.
PageSetup. PrintArea =
' Memasukkan teks Cetak : Detail Transaksi
wsCetak. Range( "A3 " ) . Value = " Cetak :
Detail Transaksi "
' Jum1ahSe11 range NoFakturHdrPb1n yang ditampilkan
Set Jum1ahSe11 = wsHdrPb1n. Range( n
380
'No faktur sel kolom A, 2 baris bawah
RecordAkhir wsCetak. Cells (RecordAkhir
+ 2 , 1) . Value = n No Faktur & ItemSe1.
Value
' Pengisian tanggal wsCetak. Cells
(RecordAkhir + 3, 1) . Value = n Tanggal
& ItemSe1. Offset ( O , 1) . Value '
Pengisian tanggal jatuh tempo wsCetak.
Cells (RecordAkhir + 4, 1) . Value =
381
' Pengulangan format rata tengah & menambah
border
For HdrTb1Atas = 1 To 6
' Teks pada judul kolom diformat rata tengah
wsCetak. Cells (RecordAkhir + 6 , HdrTb1Atas)
.
HorizontalA1ignment = xlCenter '
Menambahkan border judul kolom bagian
atas wsCetak. Cells (RecordAkhir + 6 ,
HdrTb1Atas) .
Borders ( xlEdgeTop ) . LineSty1e =
xlContinuous ' Menambahkan border judul
kolom bagian bawah wsCetak. Cells
(RecordAkhir + 6 , HdrTb1Atas) .
Borders ( xlEdgeBottom) . LineSty1e = xlDoub1e
Next HdrTb1Atas
' Range NoFakturDt1Pb1n yang ditampilkan
Set Jum1ahSe12 = Range( "NoFakturDt1Pb1n"
SpecialCe11s ( xlCe1 ITypeVisib1e )
' Pengulangan sel dalam range Jum1ahSe12
For Each ItemSe12 In Jum1ahSe12
' Baris terakhir worksheet Cetak
RecordAkhir2 = wsCetak. Cells (Rows .
Count , End(x1Up) . Offset ( O , O )
. Row ' Pengisian no item wsCetak. Cells
(RecordAkhir2 + 1 , 1 ) . Value =
ItemSe12. Offset ( O , 1 ) .
Value ' Sel no item diformat
rata tengah wsCetak. Cells
(RecordAkhir2 + 1 , 1 ) .
HorizontalA1ignment = xlCenter '
Pengisian kode barang wsCetak. Cells
(RecordAkhir2 + 1 , 2 ) . Value =
ItemSe12. Offset ( O , 2 ) . Value
' Pengisian nama barang wsCetak. Cells
(RecordAkhir2 + 1 , 3 ) . Value =
ItemSe12. Offset ( O , 3 ) . Value
' Pengisian jumlah barang wsCetak.
Cells (RecordAkhir2 + 1 , 4 ) . Value =
382
' Pengisian total item transaksi
wsCetak. Cells (RecordAkhir2 + 1 ,
6 ) . Value =
ItemSe12 . Offset ( 0 ,
6 ) . Value ' Format data sel
total item transaksi wsCetak .
Cells (RecordAkhir2 + 1 , 6 ) .
NumberFormat
Next ItemSe12
383
Borders ( xlEdgeTop ) . LineSty1e =
xlContinuous Next AkhirBorder1
End If
End Sub
384
Form Cetak Penjualan digunakan untuk mencetak transaksi
penjualan yang sudah dilakukan. Selain mencetak seluruh
transaksi penjualan, Anda juga dapat mencetak transaksi
penjualan dengan kriteria tertentu. Hasil pencetakan transaksi
penjualan dapat ditampilkan secara detail atau hanya dalam
bentuk ringkasan. Kode Macro dalam Form Cetak Penjualan
tidak diberi komentar penjelasan, karena pada prinsipnya
mempunyai isi penjelasan yang hampir sama dengan Form Cetak
Pembelian.
1. Pilih menu utama Insert > dserForm pada jendela Visual
Basic Editor. Atur properti OserForm melalui window
Properties. Pilih menu utama yew > Properties Window
atau tekan tombol F4. Obah properti OserForm sebagai
berikut: Name formCetakPenjuaIan, Caption = (kosong),
Height = 198 dan Width = 354.
2. Tambahkan kontrol ke dalam OserForm hingga tampilan
Form Cetak Penjualan menjadi seperti pada Gambar 4.21.
Cetak
385
Name = cmdKeluar, Caption = Keluar, Height —
24, Left = 216, Top = 144, Width = 60,
Accelerator = K, PicturePosition = 1 —
frmPicturePositionLeftCenter, Picture =
CommandButton Keluar.gif, Tablndex = 4
Name = cmdCetak, Caption = Cetak, Height = 24,
Left = 282, Top = 144, Width = 60, Accelerator =
C, PicturePosition = 1—
frmPicturePositionLeftCenter, Picture = Print.gif,
CommandButton Tablndex = 3
Name = frmOpsi, Caption = (kosong), Height =
Frame 30, Left = 6, Top = 36, Width = 168, Tablndex =
386
Name = optSesudah, Caption = Sesudah, Height
= 18, Left = 282, Top = 12, Width = 48,
OptionButton Accelerator = d, Tablndex = 5, Value = False
Name = cmbTampilan, Height = 18, Left = 78,
Top = 6, Width = 78, style = 2
fmStyleDropDownList, Tablndex = 0, BackColor
=
ComboBox (abu-abu)
Name = cmbKode, Height = 18, Left = 72, Top =
36, Width = 66, Style = 2 - fmStyleDropDownList,
Tablndex = 1, BackC010r =
ComboBox (abuabu)
Name = cmbTangga11, Height = 18, Left = 144,
Top = 36, Width = 90, style = 2
fmStyleDropDownList, Tablndex = 6, BackColor
=
ComboBox (abu-abu)
Name = cmbTangga12, Height = 18, Left = 240,
Top = 36, Width = 90, style = 2
fmStyleDropDownList, Tablndex = 7, BackColor =
ComboBox (abu-abu)
Name = chkPiutang, Caption = Piutang, Height =
18, Left = 6, Top = 12, Width = 60, Accelerator =
CheckBox P, Tablndex = 0
Name = imgForm, Height = 24, Left = 6, Top =
6, Width = 24, Picture = Cetak.gif,
Image
PictureAlignment = 2 — frmPictureAlignmentCenter,
PictureSizeMode = 0 — frmPictureSizeModeCli
Name = lblForm, Caption = Cetak Penjualan,
Height = 24, Left = 30, Top = 6, Width = 312, Font
Label = (Font = Tahoma; Font style = Bold; Size =
16), BackC010r = (hijau muda),
Forecolor = (merah)
Name = lblTampilan, Caption = Tampilan
Label Laporan, Height = 12, Left = 6, Top = 12, Width =
387
66
Name = lblKode, Caption = Kode Pelanggan,
Label Height = 12, Left = 6, To = 42, Width = 60
4. Pilih menu yew > Code atau tekan F7 untuk menampilkan
window Code. Hapus kode Macro yang ditampilkan
kemudian ketikkan kode Macro sebagai berikut:
Private Sub UserForm_Activate( )
Terbaru = Application.
WorksheetFunction. Max
( rgTangga1 )
388
NonDupKode . Add SelKode . Value CStr
( SelKode . Value ) Next SelKode
End Sub
frmPengaturanOpsi . Enabled
= False optAntara . Value =
True cmbTangga11. Value =
cmbTangga12. Value =
cmbKode . Value =
chkPiutang . Value = False
End Sub
389
Sheets ( " HeaderPenjua1an" ) . Range ( " L3 : M3 " ) .
ClearContents
End Sub
Private Sub
optTangga1_C1ick( )
cmbTangga12. Enabled =
False cmbTangga11.
Value = cmbTangga12.
Value = -
Sheets ( " HeaderPenjua1an " ) . Range ( " L3 : M3 " ) .
ClearContents
End Sub
390
El self optTangga1. Value = True Then
wsHdrPj1n.Range( "L3 " ) . Value =
CDate ( cmbTangga11. Value )
El self optSebe1um. Value = True Then
wsHdrPj1n.Range( "L3 " ) . Value = n < n &
Format ( cmbTangga11. Value , "mm/dd/yyyy" )
El self optSesudah. Value = True Then
wsHdrPj1n.Range( "L3 " ) . Value = n > n &
Format ( cmbTangga11. Value , "mm/dd/yyyy" )
End If
End Sub
Private Sub
cmbTangga12_Change ( )
End Sub
End Sub
391
Exit Sub
End If
Next CekSe1Tampi1
If wsHdrPj1n . FilterMode
Then wsHdrP j In.
ShowA11Data
End If
End Sub
Sub Laporan( )
392
Transaksi " wsHdrPj1n .
Range( "A2 : 12 " ) .
Copy wsCetak .
Range( "A4 " ) .
PasteSpecia1
Paste : =x1PasteC01umnWidths wsHdrPj
In. Range ( "DatabaseHeaderPenjua1an "
Application. CentimetersToPoints ( 2 )
wsCetak. PageSetup . Zoom = 90 wsCetak. PageSetup
. PrintArea = n $A: $G 'I wsCetak . Range( "A3 " )
. Value = " Cetak : Detail Transaksi "
"No Faktur
wsCetak. Cells (RecordAkhir + 3, 1) .
Value = n Tanggal : & ItemSe1.Offset(O,
393
1) . Value wsCetak. Cells (RecordAkhir +
4, 1 ) . Value =
ItemSe12. Offset ( O , 1 ) .
Value wsCetak. Cells (RecordAkhir2
+ 1 , 1 ) .
HorizontalA1ignment = xlCenter
wsCetak. Cells (RecordAkhir2 + 1 ,
2 ) . Value = ItemSe12. Offset ( O ,
394
2 ) . Value wsCetak. Cells
(RecordAkhir2 + 1 , 3 ) . Value =
ItemSe12. Offset ( O , 3 ) . Value
wsCetak. Cells (RecordAkhir2 + 1 ,
4 ) . Value = ItemSe12. Offset ( O ,
4 ) . Value wsCetak.Ce11s (RecordAkhir2
A- 1 , 5 ) . Value = ItemSe12. Offset
( 0 , 6 ) . Value wsCetak. Cells
(RecordAkhir2 + 1 , 6 ) . Value =
ItemSe12 . Offset ( 0 , 7 ) .
Value wsCetak. Cells (RecordAkhir2
+ 1 , 6 ) .
Number Format = wsCetak.
Cells (RecordAkhir2 + 1 , 7 ) . Value =
ItemSe12 . Offset ( 0 , 8 ) .
Value wsCetak. Cells (RecordAkhir2
+ 1 ,
7 ) .
NumberFormat —
Next ItemSe12
395
2 ) . NumberFormat = 1 ) . Value =
" Bayar "
2 ) . Value =
Next ItemSeI
End If
wsCetak. PrintOut Copies :=1, Collate. • ——True
If wsHdrPj1n .
FilterMode Then
wsHdrPj In .
ShowA11Data
End If
End Sub
396
UTAMA APLIKASI
Private Sub cmdKe1uar_C1ick( )
Unload Me
End Sub
MEMBUAT TAMPILAN
Tampilan utama aplikasi digunakan sebagai tempat penampung
kontrol (tombol) untuk menjalankan form dalam aplikasi.
Tampilan utama tidak dibuat menggunakan OserForm,
melainkan worksheet. Keuntungan tampilan utama pada
worksheet adalah Anda dapat bekerja dengan lebih dari satu
workbook dalam waktu bersamaan. Ketika Anda menggunakan
Aplikasi Penjualan, Anda dapat membuka workbook yang lain
dalam waktu bersamaan. Secara garis besar tombol
dikelompokkan menjadi dua kelompok yaitu Database dan Fitur.
397
2. Pilih worksheet Menuatama. Klik kotak di sebelah pojok kiri
atas perpotongan baris dan kolom untuk menyeleksi
seluruh sel. Klik tombol Format dalam tab Home group Cells
kemudian pilih menu Format Cells... Muncul kotak dialog
Format Cells.
c
1
2
398
kotak dialog Column Width. Pada kotak isian Column
width: ketikkan 21. Klik tombol OK.
6. Blok range Gl :ll. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Column Width... Muncul
kotak dialog Column Width. Pada kotak isian Column
width: ketikkan 2. Klik tombol OK.
Calumn Width
2
Column width:
399
Gambar 5.4 Menggabungkan range dan perataan teks.
400
o Ontuk menampilkan nama aplikasi, ketikan APLIKASI
PENJ(..IALAN pada range hasil penggabungan (D4:F6).
10. Blok range C8:G9. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul
kotak dialog Format Cells.
o Pilih tab Alignment. Pilih Center pada kotak pilihan
Horizontal: dan yertical: Ontuk menggabungkan range
yang diseleksi, beri tanda contreng pada pilihan Merge
cells.
o Pilih tab Font. Pada daftar pilihan Eont: pilih Calibri
(Body). Pada daftar pilihan Fent style: pilih Bold.
Ketikkan 20 pada kotak isian Size: Pada kotak pilihan
Color: pilih warna merah muda kemudian klik tombol
OK.
o Ketikkan DATABASE pada range hasil penggabungan
(C8:G9).
11. Blok range C12:G13. Klik tombol Format dalam tab Home
group Cells kemudian pilih menu Format Cells... Muncul
kotak dialog Format Cells.
Pilih tab Alignment. Pilih Center pada kotak pilihan
Horizontal: dan yertical: Ontuk menggabungkan range
yang diseleksi, beri tanda contreng pada pilihan Merge
cells.
Pilih tab Font. Pada daftar pilihan Eont: pilih Calibri
(Body). Pada daftar pilihan Font style: pilih Bold.
Ketikkan 20 pada kotak isian Size: Pada kotak pilihan
Color: pilih warna merah muda kemudian klik tombol
OK.
Ketikkan FIT(.IR pada range hasil penggabungan
(C12:G13).
.ÅP•UKAS4
401
Gambar 5.6 Hasil desain tampilan utama aplikasi.
402
Load formPemasok
Menampilkan Form
Pemasok f ormPemasok
. Show
End Sub
End Sub
Macro untuk
menampilkan Form ( )
Transaksi
Pembelian Sub Transaksi Pembelian
Transaksi Pembelian
. Show
LoadFormTransaksiBe1i
Mengaktifkan Form
Load
formTransaksiBe1i
Menampilkan Form
formTransaksiBe1i
End Sub
End Sub
403
Kasi r form-Kasi r
. Show
End Sub
' Macro untuk menampxlkan Form Pembayaran Hutang
Sub LoadFormHutang( )
'
o
Mengaktifkan Form Hutang
Pembayaran Load formHutang 0
' Menampilkan Form Hutang
Pembayaran f ormHutang .
Show
End Sub
Penerimaan Piutang
' Macro untuk menampilkan
Form Sub LoadFormPiutang( )
Piutang
I
' Mengaktifkan Form
Piutang
Penerimaan
Load formPiutang '
Menampilkan Form
Penerimaan
formPiutang . Show Cetak
End Sub
End Sub
404
sesuai keinginan. Dalam kelompok Database, kontrol yang
ditambahkan ialah Barang, Pemasok dan Pelanggan.
1. Kembali ke tampilan utama Excel. Klik tombol Shapes dalam
tab Insert group Illustrations. Pilih Rounded Rectangle.
405
5. Ontuk mengatur properti tombol pilih opsi Properties pada
daftar pilihan sebelah kiri. Pilih opsi Don't move or size with
cells agar tombol tidak ikut berpindah dan tidak berubah
ukurannya ketika ada perubahan range yang ditempati.
Hilangkan tanda contreng pada pilihan print object. Beri
tanda contreng pada pilihan Locked
dan Lock text. Klik tombol Close. Pengaturan Locked dan
Lock text hanya berlaku apabila worksheet terproteksi.
406
Gambar 5.10 Mengatur posisi tombol Barang.
AP
Barang
Gambar 5.11 Mengaitkan tombol dengan Macro.
407
Gambar 5.12 Kotak dialog Assign Macro.
408
Gambar 5.13 Mengatur posisi tombol kelompok Database.
409
7. Atur posisi tombol menggunakan mouse hingga terlihat
seperti pada Gambar 5.14.
410
10. Atur posisi masing-masing tombol kelompok Fitur
menggunakan mouse hingga terlihat seperti pada Gambar
5.15.
411
Gambar 5.16 Menyembunyikan kolom dan baris.
412
Gambar 5.17 Kotak dialog Protect Sheet.
413
Gambar 5.19 Kotak dialog Unprotect Sheet.
414
Gambar 5.20 Kotak dialog VBAProject - Project Properties.
Cancel
Password
415
356
PENGGUNAAN APLIKASI
PENJUALAN
OK
417
Gambar 6.2 Record data barang yang akan dimasukkan.
418
Gambar 6.3 Record data
barang sudah ditambahkan.
419
masukkan kemudian ditampilkan. Jika nomor record tidak ada,
muncul kotak pesan peringatan.
420
Gambar 6.6 Pencarian dengan kata kunci kode barang.
421
Gambar 6.7 Pencarian dengan kata kunci nama barang.
422
gunakan fitur
pencarian barang.
2. Setelah dipilih, lakukan penyesuaian data barang kemudian klik
tombol Edit. Muncul kotak pesan Edit Data.
423
Penggunaan Form Pemasok pada prinsipnya sama dengan Form
Barang. Kita dapat menambah record data pemasok baru, mengedit
atau menghapus record data pemasok yang sudah ada serta
melakukan pencarian record data pemasok.
424
6.2.1 Input Data Pemasok
Ketika memasukkan record data pemasok ke dalam database, field
hutang pada awalnya akan terisi 0. Data hutang secara otomatis akan
bertambah jika ada kekurangan pembayaran dalam transaksi
pembelian. Hutang akan berkurang apabila ada transaksi pembayaran
hutang. Daftar pemasok yang akan dimasukkan ke dalam database
dapat dilihat pada tabel berikut:
Kode
Kode Nama Alamat Kontak Telp/HP
Pos
BMOOI CV Berlian JI. Kampus No 51324 Nurul 0281925914
Mas 841
MAOOI CV JI. Pramuka No 51234 Eko 0281912541
Makmur 514
Abadi
AJOOI PT Agung JI. Jenderal 54321 Syahrul 0281942154
Jaya Soedirman No
761
GSOOI PD Gunung JI. Gunung 53412 Sigit 0281936842
Slamet Slamet No 479
MA002 PT JI. HR Bunyamin 52413 Eti 0281932592
Makmur No 912
Alami
Seluruh pemasok berdomisili di kota Purwokerto. Berikut
langkahlangkah input record data pemasok ke dalam database:
1. Klik tombol Pemasok untuk menampilkan Form Pemasok. Karena
database pemasok belum diisi (kosong), muncul kotak pesan
Database Pemasok Kosong. Klik tombol OK.
425
Gambar 6. IO Kotak pesan Database Pemasok Kosong.
426
Gambar 6.12 Record data pemasok sudah ditambahkan.
427
sebelah kanan untuk menampilkan data pemasok sesudah record
terpilih.
6. dntuk menampilkan record data pertama, klik tombol Awal yang
terletak di sebelah kiri scroll bar. Klik tombol Akhir yang terletak
di sebelah kanan scroll bar untuk menampilkan record data
terakhir.
7. dntuk menampilkan nomor record data tertentu, ketikkan
nomor record data yang akan ditampilkan pada kotak isian yang
terletak di sebelah kanan scroll bar. Detail pemasok dengan
nomor record yang Anda masukkan kemudian ditampilkan. Jika
nomor record tidak ada, muncul kotak pesan peringatan.
8. dntuk mengurutkan nama pemasok secara ascending klik tombol
Sort Ascending . Klik tombol Sort Descending untuk
mengurutkan nama pemasok secara descending.
428
Gambar 6.14 Pencarian dengan kata kunci kode pemasok.
429
Gambar 6.15 Pencarian dengan kata kunci nama pemasok.
430
pemasok terpilih. Ontuk membatalkan edit data pemasok, klik
tombol Cancel.
Edit Data
Cancel
431
6.3.1 Input Data Pelanggan
Ketika memasukkan record data pelanggan ke dalam database, field
(kolom) piutang pada awalnya akan terisi O. Data piutang secara
otomatis akan bertambah jika ada kekurangan pembayaran dalam
transaksi penjualan. Piutang akan berkurang apabila ada transaksi
penerimaan piutang. Daftar pelanggan yang akan dimasukkan ke
dalam database dapat dilihat pada tabel berikut:
Kode
Kode Nama Alamat Kontak Telp/HP
Pos
SAKOOI Sinar 53412 Toni 0281962199
JI. KH Agus Salim
Abadi
No 741
Komputer
LKOOI Lima JI. Buaran 51234 Tangkas 0281922485
Komputer Selatan No 329
DCOOI Didi JI. Raya 54321 Mini 0281987264
Comp Baturraden No
5
FCOOI Fajar JI. Gunung Salak 52413 Nurul 0281938641
Comp No 415
432
1. Klik tombol Pelanggan untuk menampilkan Form Pelanggan.
Karena database pelanggan belum diisi (kosong), muncul kotak
pesan Database Pelanggan Kosong. Klik tombol OK.
Database Pelanggan Kosong
433
Gambar 6.19 Record data pelanggan yang akan dimasukkan.
3. Klik tombol Tambah. Form Pelanggan kemudian menampilkan
record data yang sudah dimasukkan.
434
Gambar 6.21 Record pelanggan terpilih.
435
Anda dapat melakukan pencarian record data pelanggan dengan
cepat menggunakan kata kunci kode pelanggan atau nama
pelanggan.
1. Ketikkan kata kunci kode pelanggan pada kotak isian Kode
Pelanggan, misalnya ketikkan D. Klik tombol Cari Kode Pelanggan
yang terletak di sebelah kanan kotak isian Kode Pelanggan.
Data Pelanggan yang mempunyai kode D akan ditampilkan
dalam daftar di bagian bawah Form Pelanggan.
436
pelanggan yang mempunyai nama Comp akan ditampilkan dalam
daftar di bagian bawah Form Pelanggan.
4. Klik data pelanggan hasil pencarian dalam daftar untuk
menampilkan informasi data pelanggan secara detail. Jika
pencarian pelanggan sudah selesai, klik tombol Tutup.
437
Gambar 6.24 Edit data pelanggan.
Cancel
438
dalam database barang (worksheet DatabaseBarang) akan
bertambah.
Ringkasan transaksi pembelian akan dimasukkan ke dalam worksheet
HeaderPembelian, sedangkan detail transaksi pembelian dimasukkan
ke dalam worksheet DetailPembelian. Apabila dalam transaksi
pembelian jumlah uang yang dibayarkan perusahaan kurang,
transaksi pembelian juga dimasukkan ke dalam worksheet
PembayaranHutang.
Tanggal jatuh tempo pelunasan hutang adalah 3 bulan, terhitung
sejak pembelian. Kekurangan pembayaran merupakan hutang
perusahaan kepada pemasok. Transaksi yang akan dicatat berikut ini
adalah 4 transaksi pembelian dengan rincian sebagai berikut:
Pemasok PD Gunung Slamet
Total pembelian
Rp5.476.OOO,Pembayaran Rp5.476
.OOO,Hutang Rpo,-
Kode Barang Nama Barang Jumlah
DVDRW ST DVDRW SATA 8
CD-R CD-R 700MB 80 Min 20
DVD-R DVD-R 4,7GB 120 Min 20
KB PS-2 Keyboard PS-2 25
ms PS2 Mouse PS2 25
ms PC-ISB mouse PS2 & OSB 25
Pemasok PT Agung Jaya Total
pembelian Rp9.405.OOO,Pembayara
n Rp7.500.OOO,Hutang Rp1.905.OO
O,-
Kode Barang Nama Barang Jumlah
SCAN Scanner 5
PR Printer 10
SPK Speaker 5
439
SPK RMT Speaker + Remote 5
Pemasok CV Makmur Abadi Total
pembelian Rp8.325.OOO,Pembayaran
Rp5.OOO.OOO,Hutang Rp3.325.OOO,-
Kode Barang Nama Barang Jumlah
HD 250 Hard Disk 250GB SATA 5
HD 500 Hard Disk 500GB SATA 5
DDR2 2000 DDR 2 2GB 5
DDR3 1000 DDR 3 IGB 5
Flash Disk 4GB 20
440
Transaksi
441
Gambar 6.28 Item transaksi pembelian sudah dimasukkan.
442
Gambar 6.29 Edit item transaksi pembelian
443
11. (]ntuk menyimpan transaksi pembelian klik tombol Simpan. Klik
tombol Cetak untuk mencetaknya. (]ntuk menyimpan sekaligus
mencetak transaksi pembelian klik tombol Bayar.
444
6.5 Menggunakan Form Transaksi Penjualan
Form Transaksi Penjualan digunakan untuk mencatat transaksi
penjualan barang yang dilakukan perusahaan. Transaksi penjualan
tidak dapat dilakukan apabila database barang kosong. Jika database
pelanggan kosong, Anda masih dapat melakukan transaksi penjualan
menggunakan Form Kasir.
Anda hanya dapat melakukan transaksi penjualan untuk item barang
yang sudah dibeli sebelumnya. Dalam transaksi penjualan, setiap
barang yang dijual akan mengurangi jumlah Stok barang dalam
gudang (database barang). Oleh karena itu, sebelum menginput
barang ke dalam Form Transaksi Penjualan, Macro akan mengecek
terlebih dahulu apakah Stok barang yang akan di-input mencukupi
atau tidak.
Jumlah barang yang dijual juga tidak boleh melebihi Stok barang
dalam database barang. Misalnya, jumlah DVDRW SATA yang Anda
beli hanya 8 unit. Jika Anda akan memasukkan DVDRW SATA
sebanyak 10 unit ke dalam daftar item transaksi penjualan, muncul
kotak pesan Stok Barang Tidak Ada.
445
Pelanggan Lima
Komputer
Diskon
(Rp209.OOO,-)
Total Rp1.881.OOO,-
Penjualan
Pembayaran Rp1.500.OOO,-
Piutang Rp381.000,-
Kode Nama Barang Jumlah
Barang
CD-R CD-R 56X 700MB 80 5
Min
DVD-R DVD-R 4,7GB 120
Min
5
KB PS-2 Keyboard PS-2 10
ms PS2 Mouse PS2 10
SPK Speaker 3
Pelanggan Bintang Comp
Diskon 0% (RpO,-)
Total Rp4.585.OOO,-
Penjualan
Pembayaran Rp3.500.OOO,-
Piutang Rp 1.085.OOO,-
Kode BarangNama Barang Jumlah
HD 250 Hard Disk 250GB
2
SATA
HD 500 Hard Disk 500GB
2
SATA
LCD 16 Monitor LCD 16" 2
LED 16 Monitor LED 16" 2
Pelanggan Fajar Comp
446
Diskon 0% (RpO,-)
Total Rp2.675.OOO,-
Penjualan
Pembayaran Rp2.675.OOO,-
Piutang Rpo,-
Kode BarangNama Barang Jumlah
BLTH USB Bluetooth 5
PR Printer 5
MS PUSB Mouse PS2 & USB 5
Power Suppy 500 3
PS 500
Watt
1. Klik tombol Penjualan untuk menampilkan Form Transaksi
Penjualan. Pada kotak pilhan Kode Pelanggan pilih LKOOI. Kotak
isian Nama Pelanggan secara otomatis akan terisi Lima Komputer.
2. Pilih CD-R pada kotak pilihan Kode Barang untuk memasukkan
barang CD-R 56X 700MB 80 Min ke dalam transaksi penjualan.
3. Ketikkan 5 pada kotak isian Jumlah. Klik tombol Input untuk
memasukkan item barang CD-R 56X 700MB 80 Min ke dalam
daftar item transaksi penjualan.
4. (]ntuk menginput item transaksi penjualan 4 barang yang lain,
lakukan dengan cara yang sama seperti pada langkah 2 dan 3.
5. Pada kotak isian Diskon ketikkan 10. Kotak isian di sebelah kanan
secara otomatis terisi 209.000. Ketikkan jumlah uang yang
dibayarkan, yaitu 1.500.000 pada kotak isian Bayar. Kotak isian
Piutang secara otomatis akan terisi 381.000 karena jumlah
pembayaran lebih kecil dari nilai total transaksi penjualan.
447
Gambar 6.34 Seluruh iłem transaksi penJualan.
448
8. (]ntuk melihat ringkasan dan detail transaksi penjualan dengan no
faktur tertentu, pilih no faktur transaksi penjualan yang akan
ditampilkan pada kotak pilihan No Faktur.
9. Klik tombol Keluar untuk keluar dari Form Transaksi Penjualan.
449
Penjualan
Pembayaran
Rp400.OOO,-
Kembali Rp67.OOO,-
Kode Barang Nama Barang Jumlah
CD-R CD-R 56X 700MB 1
80 Min
DDR3 1000 DDR 3 IGB 1
DVDRW ST DVDRW SATA 1
Diskon 0% (Rpo,-)
Total Rp207.500,-
Penjualan
Pembayaran Rp250.OOO,-
Kembali Rp42.500,-
Kode Barang Nama Barang Jumlah
DVD-R DVD-R 16X 4,7GB 1
120 Min
FD 8 Flash Disk 8GB 1
1. Klik tombol Kasir untuk menampilkan Form Kasir.
2. Pilih CD-R pada kotak pilihan Kode Barang untuk memasukkan
barang CD-R 56X 700MB 80 Min ke dalam transaksi penjualan.
3. Ketikkan 1 pada kotak isian Jumlah. Klik tombol Input untuk
memasukkan item barang CD-R 56X 700MB 80 Min ke dalam
daftar item transaksi penjualan.
4. (-lntuk menginput item transaksi pembelian 2 barang yang lain,
lakukan dengan cara yang sama seperti pada langkah 2 dan 3.
450
Gambar 6.37 Item transaksi pen,jualan dalam Form Kasir.
5. Pada kotak isian Diskon ketikkan 10. Kotak isian di sebelah kanan
secara otomatis terisi 37.000. Ketikkan jumlah uang yang
dibayarkan, yaitu 400.000 pada kotak isian Bayar. Kotak isian
Kembali secara otomatis akan terisi 67.000 karena jumlah
pembayaran lebih besar dari nilai total transaksi penjualan.
6. Klik tombol Cetak untuk mencetak transaksi penjualan. Ontuk
mencetak sekaligus menyimpan transaksi penjualan klik tombol
Bayar.
7. dntuk mencatat transaksi penjualan yang Iain, lakukan dengan
cara yang sama seperti pada langkah 2 sampai 6.
8. Klik tombol Keluar untuk keluar dari Form Kasir.
451
Form Pembayaran Hutang digunakan untuk mencatat transaksi
pembayaran hutang perusahaan kepada pemasok. Proses transaksi
pembayaran hutang hanya dapat dilakukan untuk transaksi
pembelian dengan sistem hutang.
1. Klik tombol Pembayaran Hutang untuk menampilkan Form
Pembayaran Hutang. Ketika dijalankan, Form Pembayaran
Hutang akan menampilkan ringkasan seluruh transaksi
pembelian dengan sistem hutang.
2. (-lntuk mencatat transaksi pembayaran hutang, pilih salah satu
transaksi pembelian dałam daftar, misalnya pilih TB0002. Kołak
isian Hutang secara otomatis akan menampilkan besarnya
hutang transaksi pembelian dengan no faktur TB0002, yaitu
1.905.000.
452
Gambar 6.39 Jumlah hutang berkurang.
453
Gambar 6.41 Mencetak seluruh transaksi pembayaran hutang.
454
Gambar 6.42 Transaksi penJualan dengan piutang ditampilkan.
455
Form
456
Form Cetak
5. (-lntuk mencetak seluruh transaksi penerimaan piutang, pilih
opsi lampilkan faktur dengan piutang kemudian klik tombol
Cetak.
6. Pilih opsi Detail penerimaan piutang per faktur untuk mencetak
penerimaan piutang nomor faktur tertentu. Pilih no faktur yang
akan dicetak pada kotak pilihan yang tersedia. Klik tombol Cetak.
7. Klik tombol Keluar untuk keluar dari Form Penerimaan Piutang.
PIUTANG
Cet:ak N. F-aktur:
Cetak Barang
Seluruh Record
459
Menggunakan Form Cetak
Cetak digunakan untuk mencetak
Gambar 6.50 Mencetak data pemasok di mana perusahaan
berhutang.
460
Menggunakan Form Cetak
Cetak digunakan untuk mencetak
etakfem e tan
461
Menggunakan Form Cetak
Cetak digunakan untuk mencetak
secara Detail atau hanya Ringkasan. Jika sudah, klik tombol
Cetak.
PE-ME-ELIAN
462
3. Ontuk mencetak transaksi pembelian dengan kriteria tertentu,
pilih Pengaturan Qpsi.
o Beri tanda contreng pada pilihan Hutang untuk mencetak
transaksi pembelian nomor faktur tertentu yang masih ada
tunggakan hutang.
o Pilih kode pemasok pada kotak pilihan Kode Pemasok untuk
mencetak transaksi pembelian berdasarkan kode pemasok
terpilih.
o Pilih salah satu opsi tanggal yang tersedia, yaitu Antara
(transaksi pembelian pada kisaran waktu yang Anda pilih
pada kotak pilihan 1 dan 2), langgal (transaksi pembelian
pada tanggal yang Anda pilih pada kotak pilihan 1), Sebelum
(transaksi pembelian sebelum tanggal yang Anda pilih pada
kotak pilihan 1) dan Sesudah (transaksi pembelian sesudah
tanggal yang Anda pilih pada kotak pilihan 1).
463
Gambar 6.56 Hasil cetak detail transaksi pembelian (2)
4. Klik tombol Cetak. Jika tidak ada transaksi pembelian yang sesuai
dengan kriteria yang Anda tentukan, muncul kotak pesan seperti
terlihat pada Gambar 6.56.
464
tertentu. Hasil pencetakan transaksi penjualan dapat ditampilkan
secara detail atau hanya dalam bentuk ringkasan.
1. Klik tombol Cetak untuk menampilkan Form Cetak. Pilih opsi
Transaksi Peniualan pada daftar pilihan yang tersedia. Klik
tombol
OK. Muncul Form Cetak Penjualan.
465
o Beri tanda contreng pada pilihan Riutang untuk mencetak
transaksi pembelian nomor faktur tertentu yang masih ada
piutang.
o Pilih kode pelanggan pada kotak pilihan Kode Pelanggan
untuk mencetak transaksi penjualan berdasarkan kode
pelanggan terpilih.
o Pilih salah satu opsi tanggal yang tersedia, yaitu Antara
(transaksi penjualan pada kisaran waktu yang Anda pilih pada
kotak pilihan 1 dan 2), langgal (transaksi penjualan pada
tanggal yang Anda pilih pada kotak pilihan 1), Sekelum
(transaksi penjualan sebelum tanggal yang Anda pilih pada
kotak pilihan 1) dan Sesudah (transaksi penjualan sesudah
tanggal yang Anda pilih pada kotak pilihan 1).
4. Klik tombol Cetak. Jika tidak ada transaksi penjualan yang sesuai
dengan kriteria yang Anda tentukan, muncul kotak pesan Tidak
Ada Transaksi.
5. Klik tombol Keluar untuk keluar dari Form Cetak Penjualan.
%•
• 111
466
Gambar 6.60 Hasil cetak detail transaksi penjualan.
TENTANG PENUI-IS
467
406
Membuat Aplikasi Penjualan
dengan Macro Excel
Kelompok
Apl.
Perkantoran
Keterampilan
Tingkat Pemula
PT ELEX MEDIA KOMPUTINDO Tingkat
Menengah
Tingkat Mahir
Jenis Buku
Referensi
Tutorial
Latihan
Kompas Gramedia Building
Jl. Palmerah Barat 29-37, Jakarta 10270
Telp. (021) 536501 10-536501 1 1, Ext 3214
Webpage: http://elexmedia.co.id