Sebelum membahas script-nya, gimana kalau ngobrolin tentang datanya lebih
dulu.
imo,
sheet DATABASE kolom A:C adalah data referensi produk.
sheet Jual adalah data transaksi Penjualan
sheet Beli adalah data transaksi Pembelian
sejarah (histori) perubahan harga beli adalah summary dari transaksi
pembelian yang setara dengan output
kondisi stok adalah summary transaksi beli dan transaksi jual yang setara
dengan output berupa summary data terakhir setiap produk.
dari keadaan di atas, ada benang merahnya, yaitu data-data transaksi
menuntut adanya dimensi waktu. Selain itu, suatu saat nanti bisa jadi akan
dibutuhkan dimensi Customer (saat ini ndak ada juga ndak masalah).
Kegiatan real manusia dalam melakukan penjualan maupun pembelian tidak
pasti seluruh produk setiap hari. Maka, pencatatan ketika terjadi penjualan
saja dan pencatatan ketika terjadi pembelian saja akan lebih memberi banyak
informasi.
Jadi, untuk tabel jual dan beli, setidaknya dibutuhkan kolom tanggal
kegiatan (1 kolom saja), kode produk (1 kolom saja), jumlah penjualan atau
pembelian (1 kolom saja), harga jual atau beli (1 kolom saja), bila perlu
ada posisi stok produk tersebut setelah kegiatan [saldo akhir] (1 kolom
saja). Hal ini akan membuat tabel data menjadi ramping dan tinggi (panjang
kebawah) dengan jumlah kolom total hanya 4 kolom sampai 5 kolom. Kelak,
ketika sudah ada data customer, maka akan bertambah 1 kolom lagi. Jika ada
variabel discount, maka bertambah 1 kolom lagi dst.
Setiap data akan tinggal disebuah sheet tersendiri. Referensi produk di
sebuah sheet (misal Produk), transaksi Jual di sheet Jual, transaksi beli
di sheet Beli, setiap output di sebuah sheet per jenis output. Sheet input
bisa disebuah sheet tersendiri atau di sebuah userform.
Input (form input dengan userform atau dengan worksheet) bisa diatur
disuatu tempat tersendiri yang terpisah dengan sheet-sheet data tadi.
Proses simpan hanyalah menyimpan yang perlu saja.
Dengan begitu, maka tidak akan dibutuhkan banyak sheet.
Dengan tabel data yang memiliki dimensi waktu (sebagai sebuah kolom), akan
memudahkan proses pengolahan data untuk membentuk banyak output.
btw,
jika memang akan tetap seperti yang ada sekarang, maka script yang ada
(untuk 1 sheet saja) bisa seperti :
Dim sFull As String, sBell As String
dim sht as worksheet
sFull = "Jual "
sBell = "Beli "
set sht=Sheets.Add (After:=Sheets(Sheets.Count))
Sheets("Jual").Range("A1:ZZ1").Copy sht.range("a1")
'Sheets("Sheet1").Select
'Cells.Select
'ActiveSheet.Paste
'Application.CutCopyMode = False
Sheets("Database").Range("A:D,F:F").Copy sht.range("a1")
'Sheets("Sheet1").Select
'ActiveSheet.Paste
Application.CutCopyMode = False
'Range("A1").Select
Sheets("database").Range("i1").Value = dtpAdd.SelDate
'lblSementara.Caption = Sheets("Database").Range("I1").Text
'Sheets("Sheet1").Select
'Sheets("Sheet1").Name = (sFull & lblSementara.Caption)
sht.name=sfull & format$(dtpadd.seldate , "YYYYMMDD") 'jika dtpadd.seldate
bertipe string, ganti dengan cDate(dtpadd.seldate)
Wassalam,
Kid.
2013/4/14 lapendosol opik <[email protected]>
> **
>
>
> Trimakasih mas Kid atas tanggapannya.
> Ada FormatString, defaultnya kosong
> Pas saya isi (dini hari tadi) dd mmm yyyy, hasilnya ditampilan aneh,
> hasilnya 14 31 2013
> Sekarang dicoba lagi isi dd mmm yyyy hasilnya 14 03 2013. Mungkin besok
> kalo saya coba masukkan
> dd mmm yyyy hasilnya berubah lagi. Sementara ini saya pake format yang ada
> aja, tampilannya:
> Sunday , April 14, 2013
> dtpicker sangat perlu buat file yang saya gunakan, salah satunya untuk
> membuat/menambah sheet dengan nama sesuai bulan dan tahun dalam dtpicker.
> Sekian lama dicoba2 dengan banyak kegagalan, akhirnya ketemu cara menambah
> sheet dengan nama bulan tahun. Berikut hasilnya, mohon dikoreksi kalo ada
> yang bisa diringkas:
>
> Private Sub cmbAddSheet_Click()
> Dim sFull As String, sBell As String
> sFull = "Jual "
> sBell = "Beli "
>
> Sheets.Add After:=Sheets(Sheets.Count)
> Sheets("Jual").Range("A:ZZ").Copy
> Sheets("Sheet1").Select
> Cells.Select
> ActiveSheet.Paste
> Application.CutCopyMode = False
> Sheets("Database").Range("A:D,F:F").Copy
> Sheets("Sheet1").Select
> ActiveSheet.Paste
> Application.CutCopyMode = False
> Range("A1").Select
>
> Sheets("database").Range("i1").Value = dtpAdd.SelDate
> lblSementara.Caption = Sheets("Database").Range("I1").Text
> Sheets("Sheet1").Select
> Sheets("Sheet1").Name = (sFull & lblSementara.Caption)
>
> Sheets.Add After:=Sheets(Sheets.Count)
> Sheets("Beli").Range("A:ZZ").Copy
> Sheets("Sheet2").Select
> Cells.Select
> ActiveSheet.Paste
> Application.CutCopyMode = False
> Sheets("Database").Range("A:E").Copy
> Sheets("Sheet2").Select
> ActiveSheet.Paste
> Application.CutCopyMode = False
> Range("a1").Select
> Sheets("Sheet2").Select
> Sheets("Sheet2").Name = (sBell & lblSementara.Caption)
>
> End Sub
>
> Asumsinya, tiap file dibuka pertama kali, ketika sheet ditambah, default
> name sheetnya selalu Sheet1 dan seterusnya. Sheet baru tersebut terdiri
> dari 2, Jual dan Beli (tiap bulan hanya dilakukan sekali). Dimana isi dari
> sheet yang ditambahkan, isinya mengacu pada sheet Database (copy nama2
> barang) dan sheet Jual/Beli (untuk meng-copy tanggal 1-31, karena belum tau
> cara tambah tanggal sesuai bulan secara otomatis). Kemudian tanggal dari
> dtPicker tadi saya pindahkan sementara ke Range I1, dengan custom format
> mmm yyyy (karena yang diambil cuma bulan dan tahun). Saya sudah coba
> beberapa kali untuk mengambil text di I1 untuk menamai sheet baru tapi
> hasilnya gak memuaskan, yang muncul malah 41378.082974537. Maka text dari
> I1 saya pindah sementara ke lblSementara untuk kemudian dijadikan nama
> sheet baru. Alhasil seperti script diatas. Mohon sedianya untuk mengkoreksi
> apabila ada yang bisa diringkas.
>
> Terimakasih sebelumnya dan sebanyak-banyaknya
> Wassalam,
>
> ------------------------------
> *From:* Mr. Kid <[email protected]>
> *To:* [email protected]
> *Sent:* Sunday, April 14, 2013 12:11 PM
>
> *Subject:* Re: [belajar-excel] Menampilkan Pop-up kalender pada Form
>
>
> Kayanya utk membuat dtpicker menampilkan custom format di komputer
> sampeyan ndak bisa. Kalau hasil dtpicker yg akan diletakkan ke object lain
> bisa dengan mengubah tipe data hasil dtpicker menjadi datetime, lalu
> diformat sesuai kebutuhan.
> Jika diletakkan di range tertentu, hasil konversi tipe data menjadi
> datetime lalu format cell number.
> Wassalam,
> Kid.
> On Apr 13, 2013 11:00 AM, "lapendosol opik" <[email protected]> wrote:
>
> **
>
> Ga tau mas, opsinya cuma 3 doang itu
> Hehehehe
> Wassalam,
>
>
> ------------------------------
> *From:* Mr. Kid <[email protected]>
> *To:* BeExcel <[email protected]>
> *Sent:* Saturday, April 13, 2013 5:38 AM
> *Subject:* Re: [belajar-excel] Menampilkan Pop-up kalender pada Form
>
>
> Oh ndak ada opsi Custom ya (nomor berapa yang bunyinya sesuatuCustom)
> hehehe...malah baru tahu kalau beda isinya dtPicker tersebut dengan yang
> biasanya.
>
> Wassalam,
> Kid.
>
>
>
>
> 2013/4/12 lapendosol opik <[email protected]>
>
> **
>
> Saya dapet file mscomct2.cab dari link2 yang ada di topik
> http://tech.groups.yahoo.com/group/belajar-excel/message/23263 ini mas
> UFIControls nya udah coba di set 1 - 5, tapi anehnya kok selalu kembali
> lagi menjadi 2.
> Sebenernya ga terlalu ngrepotin sih nongol infonya, toh cuma sekali klik
> OK berikutnya udah ga nongol lagi.
> Hehehe
> Oiya, format tampilannya kan cuma ada 3;
> 0 - jwdpShortDate (4/12/2013)
> 4 - jwdpLongDate (Friday , April 12 , 2013)
> 9 - jwdpTime (8:22:37 PM)
> Gimana cara menambahkan format tampilan jadi 12 April 2013 saja?
> Trimakasih sebelumnya
> Wassalam,
>
> ------------------------------
> *From:* Mr. Kid <[email protected]>
> *To:* BeExcel <[email protected]>
> *Sent:* Friday, April 12, 2013 1:56 PM
>
> *Subject:* Re: [belajar-excel] Menampilkan Pop-up kalender pada Form
>
>
> Tumben mscomct2.cab dari microsoft dinyatakan unsafe. Jangan-jangan
> mscomct2.ocx nya bukan dari microsoft... hehehe...
> tapi memang mungkin terjadi kok..
> coba disini :
> http://support.microsoft.com/kb/827742
> tapi nanti kalau UFIControls diset nilainya 1 gak bisa, coba diset 5 atau
> 3.
>
> Nah... sebelum melanjutkannya,
> kalau yang buat aplikasi saja, mau pakai dtpicker atau calendar atau apa
> saja yang anggapannya simple dan cakep itu sudah sulit,
> bagaimana dengan user yang gak mudeng ?
> siapa yang akan meng-install-kan dan siapa yang akan mengubah registry-nya
> ?
> kalau gak boleh jadi admin komputer, lalu gimana aplikasinya nanti kalau
> ndak punya dtpicker atau calendar control karena masalah install dan
> register activex nya ?
>
> tapi ini hanya sekedar pertanyaan yang ndak ada maksudnya apa-apa.... :)
>
>
> Wassalam,
> Kid.
>
>
>
>
> 2013/4/12 lapendosol opik <[email protected]>
>
> **
>
> Udah di enable mas, tapi tetep nongol informasinya
> Wassalam,
>
> ------------------------------
> *From:* Mr. Kid <[email protected]>
> *To:* BeExcel <[email protected]>
> *Sent:* Friday, April 12, 2013 1:25 PM
>
> *Subject:* Re: [belajar-excel] Menampilkan Pop-up kalender pada Form
>
>
> Pada Excel Options -> page Trust center -> klik tombol Trust Center
> Settings -> page ActiveX Controls -> pilih Enable -> OK sampai worksheet
>
> Wassalam,
> Kid.
>
>
> 2013/4/12 lapendosol opik <[email protected]>
>
> **
>
> Udah bisa mas,
> Saya udah register mscomct2.ocx dengan aplikasi tambahan register ocx.exe
> Sudah saya pasang DTpickernya di vba, pas di run sih belum ada masalah (di
> PC saya),
> Tapi tiap run awal (pertama kali file excelnya dibuka), selalu tampil
> peringatan:
>
> This application is about to initialize ActiveX controls that might be
> unsafe. If you trust the source of this file, select OK and the controls
> will
> be initialized using your current workspace settings.
>
> Gimana caranya biar ga nongol itu terus ya?
> Trimakasih
> Wassalam,
>
>
>
> ------------------------------
> *From:* lapendosol opik <[email protected]>
> *To:* "[email protected]" <[email protected]>
> *Sent:* Friday, April 12, 2013 12:16 PM
>
> *Subject:* Re: [belajar-excel] Menampilkan Pop-up kalender pada Form
>
>
> Makasih mas Kid,
> Gimana caranya download file2 terlampir ditopik yang bersangkutan? Supaya
> bisa mengikuti topiknya, kayanya kasusnya hampir sama tentang pembukuan
> *re-Pengiriman BUKU.xlsx *dll
> Saya cari kok ga nemu2 Mas
> Trimakasih
> Wassalam,
> *
> *
>
> ------------------------------
> *From:* Mr. Kid <[email protected]>
> *To:* BeExcel <[email protected]>
> *Sent:* Friday, April 12, 2013 10:16 AM
> *Subject:* Re: [belajar-excel] Menampilkan Pop-up kalender pada Form
>
>
> Silakan ke :
> http://tech.groups.yahoo.com/group/belajar-excel/message/23263
> dan ikuti semua link yang ada disana bila diperlukan.
>
>
> Wassalam,
> Kid.
>
>
>
> 2013/4/11 lapendosol opik <[email protected]>
>
> **
>
> Dear master be-Excel
> Saya membuat form di vba, saya ingin menambahkan combobox kalender pada
> form tersebut seperti terlampir
> Bagaimana cara menambahkan kalendernya ke form?
> Jika informasi cpunya berpengaruh, saya pakai:
> Microsoft Office Professional Plus 2010
> Windows 7 Professional
> Intel(R) Core(TM) i3-2310M 2.10GHz
> 2 GB ram
> 32-bit
>
> Sebelumnya saya ucapkan terimakasih
> Wassalam,
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>