Halo Mr. Kid
Untuk masalah no.1 saya yakin code berikut ini, yg saya buat salah
Public ICRT As Long, IPCS As Long
Public Function NILAITOTAL() As Long
Set ICRT = 0
Set IPCS = 0
Do Until LISTVIEW1.ListItems.Count = 0
LISTVIEW1.ListItems.Item.Text
LISTVIEW1.ListItems.Item.SubItems (1)
LISTVIEW1.ListItems.Item.SubItems (2)
LISTVIEW1.ListItems.Item.SubItems (3)
LISTVIEW1.ListItems.Item.SubItems (4)
LISTVIEW1.ListItems.Item.SubItems (5)
ICRT = Sum(LISTVIEW1.ListItems.Item.SubItems(4).Value)
IPCS = Sum(LISTVIEW1.ListItems.Item.SubItems(4).Value)
Loop
yang no.2 masih bingung masalah loop dan penerapan code nya
Mohon pencerahannya, dibuatkan code contoh agar saya bisa memahai dan
menerapakannya..
Terima kasih.
Ratri Risyanto
From: Mr. Kid
Sent: Thursday, March 06, 2014 4:42 AM
To: BeExcel
Subject: Re: [belajar-excel] Re: Mods: Menyimpan data ListView ke Excel
Hai Ratri,
1. di Excel, pakai formula Sum yang dimulai dari baris header sampai 1 baris
sebelum baris total. Baris terakhir sebelum baris total dikorbankan sebagai
dummy baris kosong.
>> coba pada excel worksheet bernama sj cell E14 diberi formula berbunyi =Sum(
>> e8:e13 )
>> copy formula itu ke kolom F.
>> pastikan bahwa baris 13 adalah baris dummy agar Anda bisa melakukan insert
>> baris baru pada baris 13, tetapi jangan pernah melakukan delete row di baris
>> 13.
di VBA.
> buat variabel berscope public untuk total CRT bernama lCRT bertype Long
> karena berasumsi CRT bilangan bulat dan maksimal 9 digit
> berarti deklarasi variabel diletakkan di area general declaration.
> lebih lengkap tentang datatype dan penulisan code di VBA bisa dilihat mulai
> dari sini sampai disini. (tidak ada dan belum menemukan adalah dua hal
> berbeda)
> prosedur komputasi nilai total akan membuat variabel lCRT berisi nilai total.
> prosedur tersebut dipanggil setiap kali ada perubahan item dalam listview,
> seperti ketika ada penambahan data (berarti pada akhir proses klik tombol
> tambahkan ada proses penghitungan nilai total dan penulisan ke textbox
> terkait), edit data, hapus data, dan pembukaan userform
2. jadi, pengisian item pilihan combobox dilakukan dengan cara me-loop seluruh
data referensi yang didalamnya ada pemeriksaan kode atau nama si suplier. Jika
sama dengan yang di-input, barulah dilakukan add item.
5. jika ingin insert baris,
> a. blok sebuah baris excel (ada disini). Misal dengan sheets("nama
> sheet").range("a13").entirerow
> b. perluas (ada disini) jumlah baris sejumlah jumlah baris yang akan
> di-insert. misal akan insert 17 baris, maka setelah entirerow diberi
> .resize(17)
> c. lakukan insert alias menfaatkan methods Insert yang dimiliki object range.
> Berarti menambahkan .Insert setelah .resize(17)
Angka 17 bisa diganti dengan variabel yang menunjukkan jumlah baris yang akan
di-insert.
Dongengan tentang VBA ada di blog milis mulai dari sini.
Wassalam,
Kid.
2014-03-05 9:03 GMT+07:00 Ratri Risyanto <[email protected]>:
Halo Mr. Kid
Saya masih tidak faham jawaban no.1, 2, dan 4
yang no.1 , apakah pakai datatype? kalau pakai itu di vba ms. excel kok tidak
ada? dan penempatan variabel apakah saat crt / pcs change?
yamg no.2 sudah browsing tapi masih tidak faham, soalnya kasusnya agak
berbeda.
yang no.5 jg tidak faham.
terutama no.1 itu yang paling susah faham, Mohon maklum masih beginner....
Terima kasih.
Ratri Risyanto
From: Mr. Kid
Sent: Monday, March 03, 2014 3:03 PM
To: BeExcel
Subject: Re: [belajar-excel] Re: Mods: Menyimpan data ListView ke Excel
Hai Ratri,
gugur satu tumbuh seribu ya...
1. di Excel, pakai formula Sum yang dimulai dari baris header sampai 1 baris
sebelum baris total. Baris terakhir sebelum baris total dikorbankan sebagai
dummy baris kosong.
di UserForm, berikut alurnya :
i. buat variabel (jumlah variabel disesuaikan dengan kebutuhan) berscope
public sebagai penyimpan nilai total.
ii. buat sebuah prosedur penghitung total yang didalamnya berisi proses :
> a. set variabel total dengan 0
> b. loop per item dalam listview jika ada item dalam listview
> c. isi variabel total dengan penambahan nilai yang ada pada item
listview yang sedang aktif ditunjuk oleh loop
> d. selesai loop, tulis isi variabel total ke textbox yang membutuhkan
2. coba jalan-jalan bertemu combobox yang ada disini.
3. sebelum proses hapus, lakukan cek jumlah item dalam listview. Jika
listview tidak ada itemnya, maka keluar dari prosedur. Properti yang dapat
digunakan adalah ListItems. Properti listitems memiliki properti Count yang
menunjukkan jumlah item dalam listview.
4. buat alur proses pengubahan nilai di listview, mulai mengambil data dari
item yang terpilih ke controls diluar listview. Kemudian siapkan tombol untuk
simpan ke listview (menulis nilai hasil edit ke listview). Proses diakhiri
dengan menjalankan event click milik simpan ke excel yang dibuat tempo lalu.
5. alurnya adalah blok mulai 1 baris diatas baris total, perluas menjadi
sebanyak baris tambahan yang dibutuhkan, lakukan insert row
6. pada prosedur sub event click tombol print beri baris kode berikut :
nama_object_userform_anda.hide
sheets("nama sheetnya").range("area range yang akan diprint").printout
'ganti printout jadi printpreview jika ingin preview dulu
nama_object_userform_anda.show
Wassalam,
Kid.
2014-03-03 1:01 GMT+07:00 Ratri Risyanto <[email protected]>:
Dh,
Terima kasih banyak tanggapan dan jawabannya Mr. Kid atas pertanyaan saya
(yang banyak sekali..!!!)
Sangat membantu sekali dan sudah saya terapkan, dan berhasil...!!!
Kali ini saya mau tanya banyak lagi.. sbb:
1. Bagaimana caranya memunculkan total CRT dan PCS (di tabel excel) secara
otomatis saat penginputan, juga pada form, di textbox tot crt, dan tot pcs
2.Bila saya merubah sistem input (yg mulanya dari prdcd) ke label cmbsup
(nama supplier) dan mau saya ganti jd combobox (txsupco dan cmbsup
bagaimana caranya agar saat saya input di cmbsup (sdh jd combobox) di
cmbprdcd hanya muncul nama barang dari supplier tsb. (sesuai data di sheet
prodmast)?
3. Saat saya klik tombol “Hapus” pada saat listview kosong, muncul pesan
error. bagaimana caranya agar tdk terjadi “pesan error” tsb? dan bisa
memunculkan msgbox “data sudah kosong”
4. Bila sistem input saya rubah lagi, bagaimana saat input data di listview
tersimpan, data di excel juga bisa tersimpan? dan saat edit data di listview,
data diexcel pun ter-edit juga?
5. (baik pakai sistem input no.4 atau yg sudah ada) misal table input di
sheet “SJ” dibuat minimal 5 row input (sesuai file attach) tapi saya mau input
lebih, misal 10 row, apa bisa table tsb bisa menambahkan row otomatis
untuk kekurangannya, tanpa menghapus / menindih (replace) “total”, “pengirim”,
dan “penerima”?
6. terakhir... bagaimana cara memunculkan form print (ctrl+p) saat diklik
tombol “print”.
(file attachment)
Demikian pertanyaan saya, mohon maaf bila pertanyaannya terlalu banyak,
Saya tunggu tanggapan dan jawabanya, bila Mr. Kid atau para Master lainnya
berkenan..
Terima kasih banyak sekali lagi.. Salam para Master semuanya.
Hs,
Ratri Risyanto
From: Mr. Kid
Sent: Sunday, March 02, 2014 6:16 PM
To: BeExcel
Subject: Re: [belajar-excel] Re: Mods: Menyimpan data ListView ke Excel
Hai Ratri,
1. bagaimana membuat textbox no (textbox1) bisa memunculkan nomor urut
otomatis saat penginputan
>> pindahkan baris pengesetan textbox1 yang melalui event activate milik
userform ke event initialize milik userform
>> tambahkan pada event click tombol penyimpan ke listview dengan :
textbox1.text=nama_listviewnya.listitems.count+1
2. bagaimana caranya data di listview tersimpan di range ini, dengan
menggunakan tombol "simpan ke excel"?
>> pada event click si tombol penyimpan beri baris kode :
dim rng as range, lIdx as long, lCol as long
set rng = sheets("nama sheetnya").range("alamat cell pertama penulisan")
for lidx=1 to nama_listviewnya.listitems.count
rng.cells(lidx,1).value=nama_listviewnya.listitems(lidx).text
for lcol=1 to nama_listviewnya.listitems(lidx).listsubitems.count
rng.cells(lidx,lcol+1).value=nama_listviewnya.listitems(lidx).listsubitems(lcol)
next lcol
next lidx
3. bagaimana bisa menghapus data (clear contents) di range biru otomatis
tanpa menghapus range ungu
>> letakkan baris kode berikut dalam prosedur yang membutuhkan
dim lRec as long, rng as range, lCol as long
set rng=sheets("nama sheetnya").range("alamat cell penulisan nomor pertama")
lcol= 27 'ganti 27 dengan jumlah kolom dari area range yang akan dibersihkan
lrec=application.worksheetfunction.count( rng.entirecolumn )
if lrec>0 then
rng.resize( lrec , lcol ).clearcontents
endif
Wassalam,
Kid.
On Sat, Mar 1, 2014 at 1:29 AM, Ratri Risyanto <[email protected]> wrote:
From: Ratri Risyanto
Sent: Friday, February 28, 2014 1:31 PM
To: EXCEL GROUP
Subject: SIMPAN DATA LISTVIEW KE EXCEL?
Yth: All Masters Excel
Bagaimana caranya menyimpan data listview ke excel? file terlampir...
Mohon bantuannya...
Terima kasih.
Hk,
Ratri Risyanto