16 New Messages
Digest #1890
Messages
Wed Nov 7, 2012 2:39 pm (PST) . Posted by:
"aji mumpung"
ternyata tipe datanya Variant ya.. tadinya saya kira tipe datanya bisa
Range semua hehehe..
terima kasih mr Kid untuk koreksinya, ini menjadi tambahan ilmu untuk saya
wassalam,
-aji mumpung-
Pada 8 November 2012 00:03, Mr. Kid <mr.nmkid@gmail.com > menulis:
> **
>
>
> Deklarasi variabel seperti :
> Public kGender, kNama, kHasil, kBayar As Range
> akan menghasilkan :
> 1. variabel bertipe variant :
> kGender,kNama,kHasil
> 2. variabel bertipe range :
> kBayar
>
> Datatype bertipe variant bisa diisi dengan object. Katanya sebaiknya
> menggunakan tipe data yang memang secara eksplisit sesuai dengan tipe
> data yang akan disimpan didalamnya.
>
> Akan lebih baik jika deklarasi menjadi :
> Public kGender as range, kNama as range, kHasil as range, kBayar As Range
>
> Wassalam,
> Kid.
>
>
>
>
> 2012/11/7 aji mumpung <pupung1986@gmail.com >
>
>> Public kGender, kNama, kHasil, kBayar As Range
>
>
>
>
Range semua hehehe..
terima kasih mr Kid untuk koreksinya, ini menjadi tambahan ilmu untuk saya
wassalam,
-aji mumpung-
Pada 8 November 2012 00:03, Mr. Kid <mr.nmkid@gmail.
> **
>
>
> Deklarasi variabel seperti :
> Public kGender, kNama, kHasil, kBayar As Range
> akan menghasilkan :
> 1. variabel bertipe variant :
> kGender,kNama,
> 2. variabel bertipe range :
> kBayar
>
> Datatype bertipe variant bisa diisi dengan object. Katanya sebaiknya
> menggunakan tipe data yang memang secara eksplisit sesuai dengan tipe
> data yang akan disimpan didalamnya.
>
> Akan lebih baik jika deklarasi menjadi :
> Public kGender as range, kNama as range, kHasil as range, kBayar As Range
>
> Wassalam,
> Kid.
>
>
>
>
> 2012/11/7 aji mumpung <pupung1986@gmail.
>
>> Public kGender, kNama, kHasil, kBayar As Range
>
>
>
>
Wed Nov 7, 2012 5:19 pm (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
hehehe... sebaiknya diuji saja.
misal buat prosedur seperti ini (di sebuah module :: di VBE, menu Insert ->
Module -> ketik script)
public sub UjiVariabel()
dim kHasil, kBayar As Range
kHasil = 7
end sub
kemudian, coba run prosedur tersebut. mestinya tidak muncul error, karena
variabel kHasil bukan bertipe object, jadi bisa diisi suatu nilai konstanta
dan bisa diisi tanpa menggunakan klausa Set.
sekarang ganti kHasil=7 dengan kBayar=7
lalu run lagi prosedurnya.
Akan muncul error, karena variabel range akan diisi sebuah konstanta dan
proses pengisiannya tanpa klausa set.
Jadi tipe data kHasil bukanlah object. Tipe data kBayar adalah object,
yaitu object range.
pengujian juga bisa dilakukan dengan prosedur berikut :
public sub TipeVariabel()
dim kHasil, kBayar As Range
msgbox "Variabel kHasil bertipe nomor : " & vartype(kHasil) & vbcrlf &
"Variabel kBayar bertipe nomor : " & vartype(kBayar)
end sub
lalu run prosedurnya. daftar nomor vartype adalah sebagai berikut :
Constant Value Description *vbEmpty* 0 Empty <HV01200929.htm>(uninitialized)
*vbNull* 1 Null <HV01200929.htm> (no valid data) *vbInteger* 2 Integer *
vbLong* 3 Long integer *vbSingle* 4 Single-precision floating-point number *
vbDouble* 5 Double-precision floating-point number *vbCurrency* 6 Currency
value *vbDate* 7 Date value *vbString* 8 String *vbObject* 9 Object *vbError
* 10 Error value *vbBoolean* 11 Boolean value *vbVariant* 12
*Variant*(used only with
arrays <HV01200929.htm> of variants) *vbDataObject* 13 A data access object
*vbDecimal* 14 Decimal value *vbByte* 17 Byte value
*vbUserDefinedType* 36 Variants
that contain user-defined types *vbArray* 8192 Array
Variabel kBayar akan bernomor 9 karena bertipe Object, yaitu object range.
Variabel kHasil akan bernomor 0 (empty) karena belum diketahui secara pasti
bertipe apa, dan cenderung sebagai variant.
Variabel bertipe variant yang diisi sebuah array variant akan langsung
menghasilkan tipe variant.
Jika deklarasi untuk kHasil diganti dengan kHasil as Variant, maka hasil
run prosedur akan tetap menghasilkan kHasil bernomor 0.
Artinya, kHasil memang bertipe Variant. Variabel kBayar bertipe object,
yaitu object range.
Jika sebelum baris msgbox diberi perintah :
kHasil="tes tes 123"
kemudian prosedur TipeVariabel di run kembali, maka kHasil menghasilkan
nomor 8 (string), dan kBayar tetap 9 (object dalam hal ini sebagai object
range).
Wassalam,
Kid.
2012/11/8 aji mumpung <pupung1986@gmail.com >
> **
>
>
> ternyata tipe datanya Variant ya.. tadinya saya kira tipe datanya bisa
> Range semua hehehe..
>
> terima kasih mr Kid untuk koreksinya, ini menjadi tambahan ilmu untuk saya
>
> wassalam,
>
> -aji mumpung-
>
> Pada 8 November 2012 00:03, Mr. Kid <mr.nmkid@gmail.com > menulis:
>
> **
>>
>>
>> Deklarasi variabel seperti :
>> Public kGender, kNama, kHasil, kBayar As Range
>> akan menghasilkan :
>> 1. variabel bertipe variant :
>> kGender,kNama,kHasil
>> 2. variabel bertipe range :
>> kBayar
>>
>> Datatype bertipe variant bisa diisi dengan object. Katanya sebaiknya
>> menggunakan tipe data yang memang secara eksplisit sesuai dengan tipe
>> data yang akan disimpan didalamnya.
>>
>> Akan lebih baik jika deklarasi menjadi :
>> Public kGender as range, kNama as range, kHasil as range, kBayar As Range
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>> 2012/11/7 aji mumpung <pupung1986@gmail.com >
>>
>>> Public kGender, kNama, kHasil, kBayar As Range
>>
>>
>>
>
>
misal buat prosedur seperti ini (di sebuah module :: di VBE, menu Insert ->
Module -> ketik script)
public sub UjiVariabel(
dim kHasil, kBayar As Range
kHasil = 7
end sub
kemudian, coba run prosedur tersebut. mestinya tidak muncul error, karena
variabel kHasil bukan bertipe object, jadi bisa diisi suatu nilai konstanta
dan bisa diisi tanpa menggunakan klausa Set.
sekarang ganti kHasil=7 dengan kBayar=7
lalu run lagi prosedurnya.
Akan muncul error, karena variabel range akan diisi sebuah konstanta dan
proses pengisiannya tanpa klausa set.
Jadi tipe data kHasil bukanlah object. Tipe data kBayar adalah object,
yaitu object range.
pengujian juga bisa dilakukan dengan prosedur berikut :
public sub TipeVariabel(
dim kHasil, kBayar As Range
msgbox "Variabel kHasil bertipe nomor : " & vartype(kHasil) & vbcrlf &
"Variabel kBayar bertipe nomor : " & vartype(kBayar)
end sub
lalu run prosedurnya. daftar nomor vartype adalah sebagai berikut :
Constant Value Description *vbEmpty* 0 Empty <HV01200929.
*vbNull* 1 Null <HV01200929.
vbLong* 3 Long integer *vbSingle* 4 Single-precision floating-point number *
vbDouble* 5 Double-precision floating-point number *vbCurrency* 6 Currency
value *vbDate* 7 Date value *vbString* 8 String *vbObject* 9 Object *vbError
* 10 Error value *vbBoolean* 11 Boolean value *vbVariant* 12
*Variant*(used only with
arrays <HV01200929.
*vbDecimal* 14 Decimal value *vbByte* 17 Byte value
*vbUserDefinedType* 36 Variants
that contain user-defined types *vbArray* 8192 Array
Variabel kBayar akan bernomor 9 karena bertipe Object, yaitu object range.
Variabel kHasil akan bernomor 0 (empty) karena belum diketahui secara pasti
bertipe apa, dan cenderung sebagai variant.
Variabel bertipe variant yang diisi sebuah array variant akan langsung
menghasilkan tipe variant.
Jika deklarasi untuk kHasil diganti dengan kHasil as Variant, maka hasil
run prosedur akan tetap menghasilkan kHasil bernomor 0.
Artinya, kHasil memang bertipe Variant. Variabel kBayar bertipe object,
yaitu object range.
Jika sebelum baris msgbox diberi perintah :
kHasil="tes tes 123"
kemudian prosedur TipeVariabel di run kembali, maka kHasil menghasilkan
nomor 8 (string), dan kBayar tetap 9 (object dalam hal ini sebagai object
range).
Wassalam,
Kid.
2012/11/8 aji mumpung <pupung1986@gmail.
> **
>
>
> ternyata tipe datanya Variant ya.. tadinya saya kira tipe datanya bisa
> Range semua hehehe..
>
> terima kasih mr Kid untuk koreksinya, ini menjadi tambahan ilmu untuk saya
>
> wassalam,
>
> -aji mumpung-
>
> Pada 8 November 2012 00:03, Mr. Kid <mr.nmkid@gmail.
>
> **
>>
>>
>> Deklarasi variabel seperti :
>> Public kGender, kNama, kHasil, kBayar As Range
>> akan menghasilkan :
>> 1. variabel bertipe variant :
>> kGender,kNama,
>> 2. variabel bertipe range :
>> kBayar
>>
>> Datatype bertipe variant bisa diisi dengan object. Katanya sebaiknya
>> menggunakan tipe data yang memang secara eksplisit sesuai dengan tipe
>> data yang akan disimpan didalamnya.
>>
>> Akan lebih baik jika deklarasi menjadi :
>> Public kGender as range, kNama as range, kHasil as range, kBayar As Range
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>> 2012/11/7 aji mumpung <pupung1986@gmail.
>>
>>> Public kGender, kNama, kHasil, kBayar As Range
>>
>>
>>
>
>
Wed Nov 7, 2012 5:48 pm (PST) . Posted by:
"him mah"
ketika butuh fungsi untuk penggabungan beberapa range, akhirnya ketemu
salah satu warisan dari Mbak Siti. Mungkin bisa dipakai oleh
temen-temen yang lain
Pada tanggal 04/11/10, STDEV(i) <setiyowati.devi@gmail.com > menulis:
> yang jadi masalah
> jika delimiter (symbol pemisah data) adalah KOMA
> *maka di dalam HASILnya kita akan kesulitan membedakan
> KOMA ex Delmiter -vs- KOMA ex formatting bilangan
> *
> Hendaknya hal ini dipertimbangan
> terutana jika hasil (dlm satu cell tsb) akan di expand lagi menjadi data
> beberapa cells
>
>
>
> 2010/11/4 him mah <himmah.mlg@gmail.com >
>>
>> sesuai dengan yang diharapkan
>> 2010/11/4, STDEV(i) <setiyowati.devi@gmail.com >:
>> > coba gunakan Property Range.Text ( instead of : Range.Value )
>> > masih pakai prosedur yg baru saja dibicarakan
>> >
>> > If Len(cel.TEXT) > 0 Then Gabung = Gabung & cel.TEXT & dlmtr
>> > mohon kabarnya, apakah berhasil dgn baik
>> >
>> > 2010/11/4 him mah <himmah.mlg@gmail.com >
>> >> oh iya bisa ngga kita menggabungkan beberapa cell dalam satu cell, dan
>> >> formatnya sesuai format masing masing yang kita gabung
>
salah satu warisan dari Mbak Siti. Mungkin bisa dipakai oleh
temen-temen yang lain
Pada tanggal 04/11/10, STDEV(i) <setiyowati.devi@
> yang jadi masalah
> jika delimiter (symbol pemisah data) adalah KOMA
> *maka di dalam HASILnya kita akan kesulitan membedakan
> KOMA ex Delmiter -vs- KOMA ex formatting bilangan
> *
> Hendaknya hal ini dipertimbangan
> terutana jika hasil (dlm satu cell tsb) akan di expand lagi menjadi data
> beberapa cells
>
>
>
> 2010/11/4 him mah <himmah.mlg@gmail.
>>
>> sesuai dengan yang diharapkan
>> 2010/11/4, STDEV(i) <setiyowati.devi@
>> > coba gunakan Property Range.Text ( instead of : Range.Value )
>> > masih pakai prosedur yg baru saja dibicarakan
>> >
>> > If Len(cel.TEXT) > 0 Then Gabung = Gabung & cel.TEXT & dlmtr
>> > mohon kabarnya, apakah berhasil dgn baik
>> >
>> > 2010/11/4 him mah <himmah.mlg@gmail.
>> >> oh iya bisa ngga kita menggabungkan beberapa cell dalam satu cell, dan
>> >> formatnya sesuai format masing masing yang kita gabung
>
Wed Nov 7, 2012 7:00 pm (PST) . Posted by:
"Syahrul Udhiyat" acha_aroel87
best regards,
Syahrul Udhiyat
telp : +62 818 08870933 / +62 2194718424
email : acha_aroel87@
web : acha-aroel.blogspot
Wed Nov 7, 2012 9:32 pm (PST) . Posted by:
"Fajar Fatahillah" fajar.fatahillah
Dear Master, mohon bantuannya dalam kasus dibawah ini,
saya ingin menghilangkan data tertentu dari ribuan data yang ada secara cepat ,
apakah ada formula atau caranya.
file contoh terlampir.
Thanks,
Fajar Fatahillah
saya ingin menghilangkan data tertentu dari ribuan data yang ada secara cepat ,
apakah ada formula atau caranya.
file contoh terlampir.
Thanks,
Fajar Fatahillah
Wed Nov 7, 2012 11:06 pm (PST) . Posted by:
"hendrik karnadi" hendrikkarnadi
Coba pindahkan kriterianya ke Sheet baru, kemudian lakukan Advance Filter dengan kriteria yang ada di sheet baru tsb.
Hasil kriteria (tidak termasuk judul) didelete dengan delete row, kemudian lakukan advance filter sekali lagi dengan kriteria kosong.
Hasilnya data yang didelete akan hilang
Salam,
Hendrik Karnadi
Catatan : Untuk menghindari hal2 yang tidak diinginkan, copy dulu filenya untuk back up
________________________________
From: Fajar Fatahillah <fajar.fatahillah@yahoo.com >
To: "belajar-excel@yahoogroups.com " <belajar-excel@yahoogroups.com >
Sent: Thursday, 8 November 2012, 12:32
Subject: [belajar-excel] menghilangkan data tertentu secara cepat
Dear Master, mohon bantuannya dalam kasus dibawah ini,
saya ingin menghilangkan data tertentu dari ribuan data yang ada secara cepat ,
apakah ada formula atau caranya.
file contoh terlampir.
Thanks,
Fajar Fatahillah
Hasil kriteria (tidak termasuk judul) didelete dengan delete row, kemudian lakukan advance filter sekali lagi dengan kriteria kosong.
Hasilnya data yang didelete akan hilang
Salam,
Hendrik Karnadi
Catatan : Untuk menghindari hal2 yang tidak diinginkan, copy dulu filenya untuk back up
____________
From: Fajar Fatahillah <fajar.fatahillah@
To: "belajar-excel@
Sent: Thursday, 8 November 2012, 12:32
Subject: [belajar-excel] menghilangkan data tertentu secara cepat
Dear Master, mohon bantuannya dalam kasus dibawah ini,
saya ingin menghilangkan data tertentu dari ribuan data yang ada secara cepat ,
apakah ada formula atau caranya.
file contoh terlampir.
Thanks,
Fajar Fatahillah
Thu Nov 8, 2012 3:22 am (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
File terlampir adalah contoh penggunaan advanced filter yang dimaksud Pak
Hendrik.
Wassalam,
Kid.
2012/11/8 hendrik karnadi <hendrikkarnadi@yahoo.com >
> **
>
>
> Coba pindahkan kriterianya ke Sheet baru, kemudian lakukan Advance Filter
> dengan kriteria yang ada di sheet baru tsb.
>
> Hasil kriteria (tidak termasuk judul) didelete dengan delete row, kemudian
> lakukan advance filter sekali lagi dengan kriteria kosong.
>
> Hasilnya data yang didelete akan hilang
>
> Salam,
> Hendrik Karnadi
>
> Catatan : Untuk menghindari hal2 yang tidak diinginkan, copy dulu filenya
> untuk back up
>
> ------------------------------
> *From:* Fajar Fatahillah <fajar.fatahillah@yahoo.com >
> *To:* "belajar-excel@yahoogroups.com " <belajar-excel@yahoogroups.com >
> *Sent:* Thursday, 8 November 2012, 12:32
> *Subject:* [belajar-excel] menghilangkan data tertentu secara cepat
>
>
> Dear Master, mohon bantuannya dalam kasus dibawah ini,
> saya ingin menghilangkan data tertentu dari ribuan data yang ada secara
> cepat ,
> apakah ada formula atau caranya.
> file contoh terlampir.
>
> Thanks,
>
> Fajar Fatahillah
>
>
>
>
Hendrik.
Wassalam,
Kid.
2012/11/8 hendrik karnadi <hendrikkarnadi@
> **
>
>
> Coba pindahkan kriterianya ke Sheet baru, kemudian lakukan Advance Filter
> dengan kriteria yang ada di sheet baru tsb.
>
> Hasil kriteria (tidak termasuk judul) didelete dengan delete row, kemudian
> lakukan advance filter sekali lagi dengan kriteria kosong.
>
> Hasilnya data yang didelete akan hilang
>
> Salam,
> Hendrik Karnadi
>
> Catatan : Untuk menghindari hal2 yang tidak diinginkan, copy dulu filenya
> untuk back up
>
> ------------
> *From:* Fajar Fatahillah <fajar.fatahillah@
> *To:* "belajar-excel@
> *Sent:* Thursday, 8 November 2012, 12:32
> *Subject:* [belajar-excel] menghilangkan data tertentu secara cepat
>
>
> Dear Master, mohon bantuannya dalam kasus dibawah ini,
> saya ingin menghilangkan data tertentu dari ribuan data yang ada secara
> cepat ,
> apakah ada formula atau caranya.
> file contoh terlampir.
>
> Thanks,
>
> Fajar Fatahillah
>
>
>
>
Wed Nov 7, 2012 7:01 pm (PST) . Posted by:
"hendrik karnadi" hendrikkarnadi
Mohon bersabar Pak, butuh waktu untuk loopingnya. Kebetulan ilmu permacroan saya masih agak terbatas.
Sesuai saran Mod, coba pelajari dulu cara membuat daftar filenya (tentunya tidak ingin diketik bukan ?)
Dari daftar file tsb kita harus membuat loopingnya, agar data dari setiap file yang ada (kecuali file proses) dicopas ke sheet Total dalam file Process.
Salam,
Hendrik Karnadi
________________________________
From: Agus Erwanto <erwanto_agus@yahoo.co.id >
To: belajar-excel@yahoogroups.com
Sent: Wednesday, 7 November 2012, 18:50
Subject: Re: [belajar-excel] membuat macros append untuk beberapa file xls
Terimakasih Pak Hendrik,
tool sudah bisa dijalankan,
tetapi masalahnya disini saya punya banyak file yang harus digabungkan bahkan sampai ratusan, bagaimana ya? karena tidak mungkin menulis satu persatu nama file.
--- Mods ---
Sepertinya ini re-post dalam rentang waktu yang kurang lama. Mohon repost berikutnya agak diperpanjang interval antara posting dan repost-nya.
Untuk mendaftar nama file, coba login dengan yahoo ID Anda dan jalan-jalan kemilis ke bagian files seperti link berikut :
http://tech.groups.yahoo.com/group/belajar-excel/files/Contoh%20Excel%20dari%20Mod/
Disana ada beberapa file contoh untuk membuat daftar nama-nama file.
Silakan diunduh, dipelajari, diterapkan ke kasus yang dihadapi.
Jika mengalami masalah, utarakab ke milis beserta usaha penerapannya.
------------
--- Pada Sel, 6/11/12, hendrik karnadi <hendrikkarnadi@yahoo.com > menulis:
Dari: hendrik karnadi <hendrikkarnadi@yahoo.com >
Judul: Re: [belajar-excel] membuat macros append untuk beberapa file xls
Kepada: "belajar-excel@yahoogroups.com " <belajar-excel@yahoogroups.com >
Tanggal: Selasa, 6 November, 2012, 5:06 PM
Sesuai saran Mod, coba pelajari dulu cara membuat daftar filenya (tentunya tidak ingin diketik bukan ?)
Dari daftar file tsb kita harus membuat loopingnya, agar data dari setiap file yang ada (kecuali file proses) dicopas ke sheet Total dalam file Process.
Salam,
Hendrik Karnadi
____________
From: Agus Erwanto <erwanto_agus@
To: belajar-excel@
Sent: Wednesday, 7 November 2012, 18:50
Subject: Re: [belajar-excel] membuat macros append untuk beberapa file xls
Terimakasih Pak Hendrik,
tool sudah bisa dijalankan,
tetapi masalahnya disini saya punya banyak file yang harus digabungkan bahkan sampai ratusan, bagaimana ya? karena tidak mungkin menulis satu persatu nama file.
--- Mods ---
Sepertinya ini re-post dalam rentang waktu yang kurang lama. Mohon repost berikutnya agak diperpanjang interval antara posting dan repost-nya.
Untuk mendaftar nama file, coba login dengan yahoo ID Anda dan jalan-jalan kemilis ke bagian files seperti link berikut :
http://tech.
Disana ada beberapa file contoh untuk membuat daftar nama-nama file.
Silakan diunduh, dipelajari, diterapkan ke kasus yang dihadapi.
Jika mengalami masalah, utarakab ke milis beserta usaha penerapannya.
------------
--- Pada Sel, 6/11/12, hendrik karnadi <hendrikkarnadi@
Dari: hendrik karnadi <hendrikkarnadi@
Judul: Re: [belajar-excel] membuat macros append untuk beberapa file xls
Kepada: "belajar-excel@
Tanggal: Selasa, 6 November, 2012, 5:06 PM
Thu Nov 8, 2012 4:33 am (PST) . Posted by:
"lkm jktind" lkmjkt
Pak Agus .
Ada peninggalan dari alm ibu siti :
Mengabungkan beberapa file csv dalam satu foleder ke file baru di excel .
mungkin bisa dipakai .
Salam
Lukman
file itu harus di letakan di dalam satu folder
saya masih gatek . nga bisa up load berikut foleder nya.
2012/11/7 Agus Erwanto <erwanto_agus@yahoo.co.id >
> **
>
>
> Terimakasih Pak Hendrik,
> tool sudah bisa dijalankan,
> tetapi masalahnya disini saya punya banyak file yang harus digabungkan
> bahkan sampai ratusan, bagaimana ya? karena tidak mungkin menulis satu
> persatu nama file.
>
> --- Mods ---
> Sepertinya ini re-post dalam rentang waktu yang kurang lama. Mohon repost
> berikutnya agak diperpanjang interval antara posting dan repost-nya.
>
> Untuk mendaftar nama file, coba login dengan yahoo ID Anda dan jalan-jalan
> kemilis ke bagian files seperti link berikut :
>
> http://tech.groups.yahoo.com/group/belajar-excel/files/Contoh%20Excel%20dari%20Mod/
>
> Disana ada beberapa file contoh untuk membuat daftar nama-nama file.
> Silakan diunduh, dipelajari, diterapkan ke kasus yang dihadapi.
> Jika mengalami masalah, utarakab ke milis beserta usaha penerapannya.
> ------------
>
>
> --- Pada Sel, 6/11/12, hendrik karnadi <hendrikkarnadi@yahoo.com > menulis:
>
> Dari: hendrik karnadi <hendrikkarnadi@yahoo.com >
> Judul: Re: [belajar-excel] membuat macros append untuk beberapa file xls
> Kepada: "belajar-excel@yahoogroups.com " <belajar-excel@yahoogroups.com >
> Tanggal: Selasa, 6 November, 2012, 5:06 PM
>
>
>
Ada peninggalan dari alm ibu siti :
Mengabungkan beberapa file csv dalam satu foleder ke file baru di excel .
mungkin bisa dipakai .
Salam
Lukman
file itu harus di letakan di dalam satu folder
saya masih gatek . nga bisa up load berikut foleder nya.
2012/11/7 Agus Erwanto <erwanto_agus@
> **
>
>
> Terimakasih Pak Hendrik,
> tool sudah bisa dijalankan,
> tetapi masalahnya disini saya punya banyak file yang harus digabungkan
> bahkan sampai ratusan, bagaimana ya? karena tidak mungkin menulis satu
> persatu nama file.
>
> --- Mods ---
> Sepertinya ini re-post dalam rentang waktu yang kurang lama. Mohon repost
> berikutnya agak diperpanjang interval antara posting dan repost-nya.
>
> Untuk mendaftar nama file, coba login dengan yahoo ID Anda dan jalan-jalan
> kemilis ke bagian files seperti link berikut :
>
> http://tech.
>
> Disana ada beberapa file contoh untuk membuat daftar nama-nama file.
> Silakan diunduh, dipelajari, diterapkan ke kasus yang dihadapi.
> Jika mengalami masalah, utarakab ke milis beserta usaha penerapannya.
> ------------
>
>
> --- Pada Sel, 6/11/12, hendrik karnadi <hendrikkarnadi@
>
> Dari: hendrik karnadi <hendrikkarnadi@
> Judul: Re: [belajar-excel] membuat macros append untuk beberapa file xls
> Kepada: "belajar-excel@
> Tanggal: Selasa, 6 November, 2012, 5:06 PM
>
>
>
Wed Nov 7, 2012 10:24 pm (PST) . Posted by:
"Dicky Zulkifli" dicky.zulkifli
Dear Master,
Mohon bantuannya dengan menggunakan formula apa untuk mengisi cell-cell yng
berwarna kuning sehingga didapatkan hasil yang sesuai ketentuannya.
Yaitu dapat mengakomodir penerimaan per tigabulanan serta persentase
kenaikan biaya sewa pertahunnya sewa.
Untuk jelasnya file terlampir.
Terimakasih sebelumnya atas solusi yang diberikan, dan mohon maaf kalau ada
kekurangan dalam hal penyampaiannya.
Regards,
Dicky
Mohon bantuannya dengan menggunakan formula apa untuk mengisi cell-cell yng
berwarna kuning sehingga didapatkan hasil yang sesuai ketentuannya.
Yaitu dapat mengakomodir penerimaan per tigabulanan serta persentase
kenaikan biaya sewa pertahunnya sewa.
Untuk jelasnya file terlampir.
Terimakasih sebelumnya atas solusi yang diberikan, dan mohon maaf kalau ada
kekurangan dalam hal penyampaiannya.
Regards,
Dicky
Thu Nov 8, 2012 3:07 am (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
Coba formula di H4 :
=IF((EDATE($C4-DAY($C4)+1,CEILING(COLUMN()-COLUMN($H$3),3))=H$3-DAY(H$3)+1)*(H$3-DAY(H$3)+1<EDATE($D4,0)),$E4*$F4*($G4+1)^(YEAR(H$3)-YEAR($C4))*3,0)
Wassalam,
Kid.
2012/11/8 Dicky Zulkifli <dicky.zulkifli@yahoo.co.id >
> **
>
>
> Dear Master,****
>
> ** **
>
> Mohon bantuannya dengan menggunakan formula apa untuk mengisi cell-cell
> yng berwarna kuning sehingga didapatkan hasil yang sesuai ketentuannya.***
> *
>
> Yaitu dapat mengakomodir penerimaan per tigabulanan serta persentase
> kenaikan biaya sewa pertahunnya sewa.****
>
> Untuk jelasnya file terlampir.****
>
> Terimakasih sebelumnya atas solusi yang diberikan, dan mohon maaf kalau
> ada kekurangan dalam hal penyampaiannya.****
>
> ** **
>
> Regards,****
>
> ** **
>
> Dicky****
>
>
>
=IF((EDATE($
Wassalam,
Kid.
2012/11/8 Dicky Zulkifli <dicky.zulkifli@
> **
>
>
> Dear Master,****
>
> ** **
>
> Mohon bantuannya dengan menggunakan formula apa untuk mengisi cell-cell
> yng berwarna kuning sehingga didapatkan hasil yang sesuai ketentuannya.
> *
>
> Yaitu dapat mengakomodir penerimaan per tigabulanan serta persentase
> kenaikan biaya sewa pertahunnya sewa.****
>
> Untuk jelasnya file terlampir.**
>
> Terimakasih sebelumnya atas solusi yang diberikan, dan mohon maaf kalau
> ada kekurangan dalam hal penyampaiannya.
>
> ** **
>
> Regards,****
>
> ** **
>
> Dicky****
>
>
>
Thu Nov 8, 2012 12:35 am (PST) . Posted by:
"lapendosol opik" lapendosol
Trimakasih Mas Kid, penjelasannya pake ilustrasi lebih mendalam. Sekarang sedang dimasukkan ke file aslinya, tapi ketemu beberapa kendala. Mohon bantuannya lagi.
File excel aslinya menggunakan 1 control image saja.
Gambar yg akan diganti/dicoret sekitar 10 - 14 gambar. Saya ingin menggabungkan script contoh file ini dengan file aslinya.
Contoh 1 gambar:
File aslinya
Private Sub cmdL2F_Click()
If lblFolder.Caption = "" Then
MsgBox ("Tentukan Folder Terlebih Dahulu")
ElseIf Dir(lblFolder.Caption & "\l2f.jpg") = "" Then
MsgBox ("Tipe Jari Tidak Tersedia")
ElseIf lblL1.Caption = "" Then
MsgBox ("Tipe Jarinya belum diisi")
txtL1.SetFocus
ElseIf txtL1.Text = "" Then
MsgBox ("Angka belum diisi")
txtL1.SetFocus
Else
lblJari.Caption = "L2F"
cmdLL.Caption = "L2L"
cmdLLL.Caption = "L2LL"
cmdRR.Caption = "L2R"
cmdRRR.Caption = "L2RR"
imgJari.Picture = LoadPicture(vbNullString)
imgJari.Picture = LoadPicture(lblFolder.Caption & "\l2f.jpg")
txtL2.SetFocus
End If
End Sub
Digabungkan sama script contoh
Private Sub cmdGambar1_Click() 'file gambar 1
cboImg.Clear 'hapus daftar combo (daftar gambar)
cboImg.Text = vbNullString 'set text combo jadi nullstring
lstLine.Clear 'hapus listbox (daftar garis)
'init nilai koordinat titik start dan titik end
sngX01 = 0
sngX02 = 0
sngY01 = 0
sngY02 = 0
'init semua gambar berdasar jumlah control image yang digunakan
With myImg(0) 'pada gambar ke-0 (image 1)
.sSource = "Gambar 1"
.sPicFile = ThisWorkbook.Path & "\gambar 1.jpg" 'harus fullfilename
Set .img = img1
IsiGambar .img, .sPicFile, .bImgState 'pasang gambar ke dalam image control
If .bImgState Then 'cek ada gambar terpasang
cboImg.AddItem .img.Name 'tambah item dalam combo
'ganti dengan sumber daftar garis (tipe data : string), seperti dari cell
'listbox akan terisi data ini jika combobox mengalami pengubahan pilihan
.sLineList = vbNullString 'untuk contoh dibuat nullstring saja
End If
End With
With myImg(1) 'pada gambar ke-1 (image 2)
.sSource = "Gambar 1"
.sPicFile = ThisWorkbook.Path & "\diinginkan gambar 1.jpg" 'harus fullfilename
Set .img = img2
IsiGambar .img, .sPicFile, .bImgState 'pasang gambar ke dalam image control
If .bImgState Then 'cek ada gambar terpasang
cboImg.AddItem .img.Name 'tambah item dalam combo
'ganti dengan sumber daftar garis (tipe data : string), seperti dari cell
'listbox akan terisi data ini jika combobox mengalami pengubahan pilihan
.sLineList = vbNullString 'untuk contoh dibuat nullstring saja
End If
End With
Me.Repaint 'cat ulang userform
End Sub
Mohon dikoreksi, susunan saya sudah bener belum? Menjadi seperti ini:
Private Sub cmdL2F_Click()
If lblFolder.Caption = "" Then
MsgBox ("Tentukan Folder Terlebih Dahulu")
ElseIf Dir(lblFolder.Caption & "\l2f.jpg") = "" Then
MsgBox ("Tipe Jari Tidak Tersedia")
ElseIf lblL1.Caption = "" Then
MsgBox ("Tipe Jarinya belum diisi")
txtL1.SetFocus
ElseIf txtL1.Text = "" Then
MsgBox ("Angka belum diisi")
txtL1.SetFocus
Else
lblJari.Caption = "L2F"
cmdLL.Caption = "L2L"
cmdLLL.Caption = "L2LL"
cmdRR.Caption = "L2R"
cmdRRR.Caption = "L2RR"
imgJari.Picture = LoadPicture(vbNullString)
imgJari.Picture = LoadPicture(lblFolder.Caption & "\l2f.jpg")
txtL2.SetFocus
cboImg.Clear 'hapus daftar combo (daftar gambar)
cboImg.Text = vbNullString 'set text combo jadi nullstring
lstLine.Clear 'hapus listbox (daftar garis)
'init nilai koordinat titik start dan titik end
sngX01 = 0
sngX02 = 0
sngY01 = 0
sngY02 = 0
'init semua gambar berdasar jumlah control image yang digunakan
With myImg(0) 'pada gambar ke-0 (image 1)
.sSource = "L2F"
.sPicFile = lblFolder.Caption & "\l2f.jpg" 'harus fullfilename
Set .img = imgJari
IsiGambar .img, .sPicFile, .bImgState 'pasang gambar ke dalam image control
If .bImgState Then 'cek ada gambar terpasang
cboImg.AddItem .img.Name 'tambah item dalam combo
'ganti dengan sumber daftar garis (tipe data : string), seperti dari cell
'listbox akan terisi data ini jika combobox mengalami pengubahan pilihan
.sLineList = vbNullString 'untuk contoh dibuat nullstring saja
End If
End With
With myImg(1) 'karena cuma pakai 1 control image, maka saya samain isinya dengan myImg(0)
.sSource = "L2F"
.sPicFile = lblFolder.Caption & "\l2f.jpg"
Set .img = imgJari
IsiGambar .img, .sPicFile, .bImgState
If .bImgState Then
cboImg.AddItem .img.Name
.sLineList = vbNullString
End If
End With
Me.Repaint 'cat ulang userform
End If
End Sub
________________________________
From: Mr. Kid <mr.nmkid@gmail.com >
To: belajar-excel@yahoogroups.com
Sent: Wednesday, November 7, 2012 10:35 PM
Subject: Re: [belajar-excel] Modifikasi image di form input dengan macro (VBA)
Tumben belum ada yang sempet reply thread ini.
File terlampir berisi sebuah folder dengan beberapa file gambar dan sebuah file Excel berisi VBA.
Thread ini adalah tentang menggambar di userform.
Sebelum membicarakan lebih jauh tentang menggambar di-userform, ada baiknya dipahami dulu batasan-batasan yang melekat bersama userform dalam VBA.
UserForm adalah sebuah object interface berbasis grafis (GUI). Barang ini bener-bener enak dilihat oleh user, tapi tidak semua GUI yang tampak memiliki karakteristik yang sama. Contoh paling dekat adalah GUI dalam VBA berbeda karakteristiknya dengan GUI dalam VB, padahal sama-sama bahasa pemrogramannya adalah Visual Basic.
Ada hal yang sama tentang keduanya, yaitu bentuknya sebagai object. Setiap object selalu memiliki ID alias diberi ID oleh OS ketika dibentuk (di-create). Proses create disini bukan proses create si aplikasi atau semacamnya, tetapi ketika siobject akan ditampilkan atau digunakan (masuk ke memorikomputer).ID ini bermacam-macam. Untuk urusan tampilan, id ini biasadisebut Window handler atau dikenal dengan hWnd.
Ada beberapa orang diluar sana (entah kalau di dalam sini) yang mengatakan bahwa UserForm dalam VBA (at least VBA 7 kebawah) bersifat windowless (mungkin maksudnya bukan sebuah window beneran). Apapun katanya, jika itu adalah sebuah tampilan, pasti punya hWnd. Permasalahannya adalah mudah atau tidaknya untuk didapatkan si nilai id bernama hWnd tersebut.
Pada VB GUI, setiap object control memiliki class sendiri-sendiri, sehingga hWnd bisa diperoleh berdasar nama class-nya. Pada VBA, beberapa object control memiliki class yang sama tapi nama child object yang berbeda.Nilai hWnd itu sendiri kadang tidak serta merta dimasukkan kedalam properti si object control, maka tidak bisa langsung didapat begitu saja.
Oke... sebelum lebih jauh lagi, pasti ada pertanyaandalam benak, untuk apa sih si hWnd itu, sampai segitu pentingnya.
Ilustrasi sederhananya begini... hWnd adalah ID Unique. Dari hWnd itu bisa didapatkan wujud si benda.Jadi, walau ada banyak benda yang sama, pasti hWnd nya beda. Jadi tidak akan pernah salah pilih benda yang akan digunakan dan diproses.
Contoh dalam thread ini, akan menggambar suatu garis dalam sebuah control object bernama image. Kalau ada banyak image di userform, image mana yang akan digambari tentulah memerlukan sebuah id yang unique. Untuk si Excelnya sendiri, bisa tahu seluk beluknya object yang ada dalam dirinya termasuk dalam userform, karena mereka adalah anak-anaknya si Excel. Lalu bagaimana jika yang ingin mencari si object adalah tetanggayang tinggalnya beberapa kilometer dari rumahnya dan belum pernah kenal ?
kenapa juga tetangga nyariin anaknya si excel...
Excel tidak punya kemampuan yang luwes dalam menggambar garis. Nah.... tetangga sebelah yang agak jauh rumahnya itu adalah tukang gambar. Namanya GDI (Graphics Device Interface). Dia bisa menggambar dengan baik, jadi dia bisa dikaryakan untuk menggambari salah satu anak excel yang ada dalam userform. Si GDI ini masuk dalam sebuah klub spesialisyang sering disebut WinAPI (Windows Application Programming Interfaces). Maka Excel harus menelepon ke klub tersebut dan minta disambungkan langsung ke tim GDI yang tukang gambar. Bagian ini bisa dilihat di module bernama modDraw bagian deklarasi fungsi-fungsi winapi.
Begitu si tetangga masuk, bladalah... anaknya banyak banget dan adayang kelasnya samadan gak mau ngaku dia nomor id-nya berapa. Puyeng kan si tetangga tukang gambar. Dari cerita ini saja, maka sudah jelas terbatasi bahwa tidak semua object control dalam userform VBA bisa diproses macem-macem. Banyak sekali keterbatasannya. Jadi pilihlah dengan bijak control apa yang ingin digunakan dan bisa untuk apa saja.
Lanjutkan perjalanan...
Akhirnya diputuskan yang akan digambari adalah beberapa anak yang sudah jelas punya id, sehingga si tetangga bener-bener bisa mengenalinya dan mengajaknya untuk digambari. Misal sebuah image yang sudah berisi gambar.
Untuk memulai kegiatan menggambar, maka si GDI (tukang gambar) harus mempersiapkan lingkungan yang kondusif untuk dirinya bekerja. Lingkungan ini disebut Device Context (DC). Nah si GDI pun memberi id sendiri terhadap setiap kondisi lingkungan tempatnya bekerja, yang disebut Device Context Handler (hDC). Ketika dia akan menggambar, dia memberi id ke kanvas penggambarannya (si image control yang berisi gambar tadi). Dia juga memerlukan kuas untuk menggambar dan inipun diberi ID olehnya. Jadi, komputer berisi banyak sekali id... tapi kok ya gak mbulet bingung ya... ya itulah untungnya bekerja dengan ID.
Itu tadi gambaran dasar untuk bisa menggambar disebuah userform. Namanya tukang gambar, dia bisa menggambar dengan berbagai cara, dari sambil berdiri sampai sambil nungging juga bisa. Sekarang, akan pilih cara apa nih...
Setidaknya cara yang lebih mudah untuk diterima akal masing-masing dulu.
Nah... file terlampir menggunakan cara paling sederhana dari kegiatan menggambar, yaitu ambil kuas dan lakukan coretan.
Kalau ada salah coret gimana ?
itu dia, menghapus coretan di lokasi yang sewarna (latar warna putih saja) pasti lebih mudah menghapusnya, yaitu dengan melukis warna putih lagi. Kalau salah coret di gambar pelangi yang warnanya gak karauan, tentu gak bisa dilakukan dengan mudah. Karena metode gambarnya adalah yang sederhana, ambil kuas dan mulai buat coretan.
Untung semua itu dilakukan didalam komputer yang kehidupannya bisa selalu seakan-akan diulang.
Maka jika akan menghapus sebuah coretan salah, caranya buang si kanvas, load ulang si kanvas, dan mulai gambar dari nol.
o..o.. kalau sudah ada seribu coretan dan coretan ke-1001 yang salah, berarti harus gambar baru lagi dari coretan ke-1.
Mau gimana lagi, pilih cara yang sederhana kok. Kuatirnya lupa apa saja 1000 coretan awal sebelum yang salah tadi. Untuk itu, setiap kali melakukan coretan, disimpanlah cara mencoretnya. Karena coretannya berupa garis, maka cukup simpan titik awal dan akhirnya.
Itu tadi konsep menggambar sederhana pada userform. Dari sini, maka perlu sebuah wadah untuk mencatat setiap coretan yang dilakukan.Artinya, coretan itu ndak bisa di-klik langsung disulap sim salabim hilang, tetapi harus digambar ulang dari awal.
So... batasan ini sudah memupuskan keinginan agar klik kanan si garis maka hilanglah dia,karena pakai cara sederhana. Kalau pakai cara yang lebih rumit tentu bisa, tapi apa gunanya kalau gak mudeng. Lebih baik mulai dari yang sederhana sampai suatu saat nanti bisa memahami yang rumit.
Bagaimana bentuknya, silakan lihat di file terlampir. Asumsi yang digunakan adalah sudah mampu menyusun proses menulis dan membaca suatu data dari dan ke suatu tempat lain dalam berbagai bentuk. Karena file terlampir tidak menyertakan cara mengambil suatunilai dari suatu cell atau cara menulis hasil ke suatu cell. Jadi fokus hanya ke masalah gambar. Silakan dikembangkan.
Yang penting lagi, script yang adapada file terlampir belum sempat dicoba dalam berbagai keadaan. Jadi bisa saja muncul error. Nah untuk hal ini, semoga kita bersama-sama bisa menyempurnakannyabahkan mengembangkannya.
Demikian dongeng selama rehatantar sesinya...
Wassalam,
Kid.
2012/11/6 lapendosol opik <lapendosol@yahoo.com >
>
>Dear para master excel,
>Saya punya kendala dengan kerjaan saya, dimana harus menghitung garis2 antara satu titik ke titik yg lain pada gambar seperti dicontoh. Selama ini cara menghitungnya mengandalkan visual saja. Tapi kelemahannya visual, bisa saja yang dihitung tidak membentuk garis lurus. Maka dari itu, saya ingin bertanya seandainya form input di modifikasi object imagenya dengan memberi garis lurus warna merah. Tujuannya agar lebih maximal lagi kerjanya dan meminimalisasi kesalahan.
>Berikut saya sertakan contoh filenya, karena filenya lebih dari 250KB maka saya upload di boxnet:
>https://www.box.com/s/izfudbk98by3gzb82ztj
>
>
>1. Modifikasi image dalam form input, jika meng-klik pada object image 2titik, maka terbentuk garis lurus warna merah diantara 2titik tersebut.
>2. Diberi fungsi undo atau menghapus garis lurus merah yg di klik 2titik tadi. Berguna jika terjadi salah penitikan
>
>
>Mohon bantuannya sebelumnya saya ucapkan terimakasih yg sebesar2nya
>Regard,
>
>
>Opik
>
>
File excel aslinya menggunakan 1 control image saja.
Gambar yg akan diganti/dicoret sekitar 10 - 14 gambar. Saya ingin menggabungkan script contoh file ini dengan file aslinya.
Contoh 1 gambar:
File aslinya
Private Sub cmdL2F_Click(
If lblFolder.Caption = "" Then
MsgBox ("Tentukan Folder Terlebih Dahulu")
ElseIf Dir(lblFolder.
MsgBox ("Tipe Jari Tidak Tersedia")
ElseIf lblL1.Caption = "" Then
MsgBox ("Tipe Jarinya belum diisi")
txtL1.SetFocus
ElseIf txtL1.Text = "" Then
MsgBox ("Angka belum diisi")
txtL1.SetFocus
Else
lblJari.Caption = "L2F"
cmdLL.Caption = "L2L"
cmdLLL.Caption = "L2LL"
cmdRR.Caption = "L2R"
cmdRRR.Caption = "L2RR"
imgJari.Picture = LoadPicture(
imgJari.Picture = LoadPicture(
txtL2.SetFocus
End If
End Sub
Digabungkan sama script contoh
Private Sub cmdGambar1_Click(
cboImg.Clear 'hapus daftar combo (daftar gambar)
cboImg.Text = vbNullString 'set text combo jadi nullstring
lstLine.Clear 'hapus listbox (daftar garis)
'init nilai koordinat titik start dan titik end
sngX01 = 0
sngX02 = 0
sngY01 = 0
sngY02 = 0
'init semua gambar berdasar jumlah control image yang digunakan
With myImg(0) 'pada gambar ke-0 (image 1)
.sSource = "Gambar 1"
.sPicFile = ThisWorkbook.
Set .img = img1
IsiGambar .img, .sPicFile, .bImgState 'pasang gambar ke dalam image control
If .bImgState Then 'cek ada gambar terpasang
cboImg.AddItem .img.Name 'tambah item dalam combo
'ganti dengan sumber daftar garis (tipe data : string), seperti dari cell
'listbox akan terisi data ini jika combobox mengalami pengubahan pilihan
.sLineList = vbNullString 'untuk contoh dibuat nullstring saja
End If
End With
With myImg(1) 'pada gambar ke-1 (image 2)
.sSource = "Gambar 1"
.sPicFile = ThisWorkbook.
Set .img = img2
IsiGambar .img, .sPicFile, .bImgState 'pasang gambar ke dalam image control
If .bImgState Then 'cek ada gambar terpasang
cboImg.AddItem .img.Name 'tambah item dalam combo
'ganti dengan sumber daftar garis (tipe data : string), seperti dari cell
'listbox akan terisi data ini jika combobox mengalami pengubahan pilihan
.sLineList = vbNullString 'untuk contoh dibuat nullstring saja
End If
End With
Me.Repaint 'cat ulang userform
End Sub
Mohon dikoreksi, susunan saya sudah bener belum? Menjadi seperti ini:
Private Sub cmdL2F_Click(
If lblFolder.Caption = "" Then
MsgBox ("Tentukan Folder Terlebih Dahulu")
ElseIf Dir(lblFolder.
MsgBox ("Tipe Jari Tidak Tersedia")
ElseIf lblL1.Caption = "" Then
MsgBox ("Tipe Jarinya belum diisi")
txtL1.SetFocus
ElseIf txtL1.Text = "" Then
MsgBox ("Angka belum diisi")
txtL1.SetFocus
Else
lblJari.Caption = "L2F"
cmdLL.Caption = "L2L"
cmdLLL.Caption = "L2LL"
cmdRR.Caption = "L2R"
cmdRRR.Caption = "L2RR"
imgJari.Picture = LoadPicture(
imgJari.Picture = LoadPicture(
txtL2.SetFocus
cboImg.Clear 'hapus daftar combo (daftar gambar)
cboImg.Text = vbNullString 'set text combo jadi nullstring
lstLine.Clear 'hapus listbox (daftar garis)
'init nilai koordinat titik start dan titik end
sngX01 = 0
sngX02 = 0
sngY01 = 0
sngY02 = 0
'init semua gambar berdasar jumlah control image yang digunakan
With myImg(0) 'pada gambar ke-0 (image 1)
.sSource = "L2F"
.sPicFile = lblFolder.Caption & "\l2f.jpg" 'harus fullfilename
Set .img = imgJari
IsiGambar .img, .sPicFile, .bImgState 'pasang gambar ke dalam image control
If .bImgState Then 'cek ada gambar terpasang
cboImg.AddItem .img.Name 'tambah item dalam combo
'ganti dengan sumber daftar garis (tipe data : string), seperti dari cell
'listbox akan terisi data ini jika combobox mengalami pengubahan pilihan
.sLineList = vbNullString 'untuk contoh dibuat nullstring saja
End If
End With
With myImg(1) 'karena cuma pakai 1 control image, maka saya samain isinya dengan myImg(0)
.sSource = "L2F"
.sPicFile = lblFolder.Caption & "\l2f.jpg"
Set .img = imgJari
IsiGambar .img, .sPicFile, .bImgState
If .bImgState Then
cboImg.AddItem .img.Name
.sLineList = vbNullString
End If
End With
Me.Repaint 'cat ulang userform
End If
End Sub
____________
From: Mr. Kid <mr.nmkid@gmail.
To: belajar-excel@
Sent: Wednesday, November 7, 2012 10:35 PM
Subject: Re: [belajar-excel] Modifikasi image di form input dengan macro (VBA)
Tumben belum ada yang sempet reply thread ini.
File terlampir berisi sebuah folder dengan beberapa file gambar dan sebuah file Excel berisi VBA.
Thread ini adalah tentang menggambar di userform.
Sebelum membicarakan lebih jauh tentang menggambar di-userform, ada baiknya dipahami dulu batasan-batasan yang melekat bersama userform dalam VBA.
UserForm adalah sebuah object interface berbasis grafis (GUI). Barang ini bener-bener enak dilihat oleh user, tapi tidak semua GUI yang tampak memiliki karakteristik yang sama. Contoh paling dekat adalah GUI dalam VBA berbeda karakteristiknya dengan GUI dalam VB, padahal sama-sama bahasa pemrogramannya adalah Visual Basic.
Ada hal yang sama tentang keduanya, yaitu bentuknya sebagai object. Setiap object selalu memiliki ID alias diberi ID oleh OS ketika dibentuk (di-create). Proses create disini bukan proses create si aplikasi atau semacamnya, tetapi ketika siobject akan ditampilkan atau digunakan (masuk ke memorikomputer)
Ada beberapa orang diluar sana (entah kalau di dalam sini) yang mengatakan bahwa UserForm dalam VBA (at least VBA 7 kebawah) bersifat windowless (mungkin maksudnya bukan sebuah window beneran). Apapun katanya, jika itu adalah sebuah tampilan, pasti punya hWnd. Permasalahannya adalah mudah atau tidaknya untuk didapatkan si nilai id bernama hWnd tersebut.
Pada VB GUI, setiap object control memiliki class sendiri-sendiri, sehingga hWnd bisa diperoleh berdasar nama class-nya. Pada VBA, beberapa object control memiliki class yang sama tapi nama child object yang berbeda.Nilai hWnd itu sendiri kadang tidak serta merta dimasukkan kedalam properti si object control, maka tidak bisa langsung didapat begitu saja.
Oke... sebelum lebih jauh lagi, pasti ada pertanyaandalam benak, untuk apa sih si hWnd itu, sampai segitu pentingnya.
Ilustrasi sederhananya begini... hWnd adalah ID Unique. Dari hWnd itu bisa didapatkan wujud si benda.Jadi, walau ada banyak benda yang sama, pasti hWnd nya beda. Jadi tidak akan pernah salah pilih benda yang akan digunakan dan diproses.
Contoh dalam thread ini, akan menggambar suatu garis dalam sebuah control object bernama image. Kalau ada banyak image di userform, image mana yang akan digambari tentulah memerlukan sebuah id yang unique. Untuk si Excelnya sendiri, bisa tahu seluk beluknya object yang ada dalam dirinya termasuk dalam userform, karena mereka adalah anak-anaknya si Excel. Lalu bagaimana jika yang ingin mencari si object adalah tetanggayang tinggalnya beberapa kilometer dari rumahnya dan belum pernah kenal ?
kenapa juga tetangga nyariin anaknya si excel...
Excel tidak punya kemampuan yang luwes dalam menggambar garis. Nah.... tetangga sebelah yang agak jauh rumahnya itu adalah tukang gambar. Namanya GDI (Graphics Device Interface). Dia bisa menggambar dengan baik, jadi dia bisa dikaryakan untuk menggambari salah satu anak excel yang ada dalam userform. Si GDI ini masuk dalam sebuah klub spesialisyang sering disebut WinAPI (Windows Application Programming Interfaces). Maka Excel harus menelepon ke klub tersebut dan minta disambungkan langsung ke tim GDI yang tukang gambar. Bagian ini bisa dilihat di module bernama modDraw bagian deklarasi fungsi-fungsi winapi.
Begitu si tetangga masuk, bladalah... anaknya banyak banget dan adayang kelasnya samadan gak mau ngaku dia nomor id-nya berapa. Puyeng kan si tetangga tukang gambar. Dari cerita ini saja, maka sudah jelas terbatasi bahwa tidak semua object control dalam userform VBA bisa diproses macem-macem. Banyak sekali keterbatasannya. Jadi pilihlah dengan bijak control apa yang ingin digunakan dan bisa untuk apa saja.
Lanjutkan perjalanan..
Akhirnya diputuskan yang akan digambari adalah beberapa anak yang sudah jelas punya id, sehingga si tetangga bener-bener bisa mengenalinya dan mengajaknya untuk digambari. Misal sebuah image yang sudah berisi gambar.
Untuk memulai kegiatan menggambar, maka si GDI (tukang gambar) harus mempersiapkan lingkungan yang kondusif untuk dirinya bekerja. Lingkungan ini disebut Device Context (DC). Nah si GDI pun memberi id sendiri terhadap setiap kondisi lingkungan tempatnya bekerja, yang disebut Device Context Handler (hDC). Ketika dia akan menggambar, dia memberi id ke kanvas penggambarannya (si image control yang berisi gambar tadi). Dia juga memerlukan kuas untuk menggambar dan inipun diberi ID olehnya. Jadi, komputer berisi banyak sekali id... tapi kok ya gak mbulet bingung ya... ya itulah untungnya bekerja dengan ID.
Itu tadi gambaran dasar untuk bisa menggambar disebuah userform. Namanya tukang gambar, dia bisa menggambar dengan berbagai cara, dari sambil berdiri sampai sambil nungging juga bisa. Sekarang, akan pilih cara apa nih...
Setidaknya cara yang lebih mudah untuk diterima akal masing-masing dulu.
Nah... file terlampir menggunakan cara paling sederhana dari kegiatan menggambar, yaitu ambil kuas dan lakukan coretan.
Kalau ada salah coret gimana ?
itu dia, menghapus coretan di lokasi yang sewarna (latar warna putih saja) pasti lebih mudah menghapusnya, yaitu dengan melukis warna putih lagi. Kalau salah coret di gambar pelangi yang warnanya gak karauan, tentu gak bisa dilakukan dengan mudah. Karena metode gambarnya adalah yang sederhana, ambil kuas dan mulai buat coretan.
Untung semua itu dilakukan didalam komputer yang kehidupannya bisa selalu seakan-akan diulang.
Maka jika akan menghapus sebuah coretan salah, caranya buang si kanvas, load ulang si kanvas, dan mulai gambar dari nol.
o..o.. kalau sudah ada seribu coretan dan coretan ke-1001 yang salah, berarti harus gambar baru lagi dari coretan ke-1.
Mau gimana lagi, pilih cara yang sederhana kok. Kuatirnya lupa apa saja 1000 coretan awal sebelum yang salah tadi. Untuk itu, setiap kali melakukan coretan, disimpanlah cara mencoretnya. Karena coretannya berupa garis, maka cukup simpan titik awal dan akhirnya.
Itu tadi konsep menggambar sederhana pada userform. Dari sini, maka perlu sebuah wadah untuk mencatat setiap coretan yang dilakukan.Artinya, coretan itu ndak bisa di-klik langsung disulap sim salabim hilang, tetapi harus digambar ulang dari awal.
So... batasan ini sudah memupuskan keinginan agar klik kanan si garis maka hilanglah dia,karena pakai cara sederhana. Kalau pakai cara yang lebih rumit tentu bisa, tapi apa gunanya kalau gak mudeng. Lebih baik mulai dari yang sederhana sampai suatu saat nanti bisa memahami yang rumit.
Bagaimana bentuknya, silakan lihat di file terlampir. Asumsi yang digunakan adalah sudah mampu menyusun proses menulis dan membaca suatu data dari dan ke suatu tempat lain dalam berbagai bentuk. Karena file terlampir tidak menyertakan cara mengambil suatunilai dari suatu cell atau cara menulis hasil ke suatu cell. Jadi fokus hanya ke masalah gambar. Silakan dikembangkan.
Yang penting lagi, script yang adapada file terlampir belum sempat dicoba dalam berbagai keadaan. Jadi bisa saja muncul error. Nah untuk hal ini, semoga kita bersama-sama bisa menyempurnakannyaba
Demikian dongeng selama rehatantar sesinya...
Wassalam,
Kid.
2012/11/6 lapendosol opik <lapendosol@yahoo.
>
>Dear para master excel,
>Saya punya kendala dengan kerjaan saya, dimana harus menghitung garis2 antara satu titik ke titik yg lain pada gambar seperti dicontoh. Selama ini cara menghitungnya mengandalkan visual saja. Tapi kelemahannya visual, bisa saja yang dihitung tidak membentuk garis lurus. Maka dari itu, saya ingin bertanya seandainya form input di modifikasi object imagenya dengan memberi garis lurus warna merah. Tujuannya agar lebih maximal lagi kerjanya dan meminimalisasi kesalahan.
>Berikut saya sertakan contoh filenya, karena filenya lebih dari 250KB maka saya upload di boxnet:
>https://www.
>
>
>1. Modifikasi image dalam form input, jika meng-klik pada object image 2titik, maka terbentuk garis lurus warna merah diantara 2titik tersebut.
>2. Diberi fungsi undo atau menghapus garis lurus merah yg di klik 2titik tadi. Berguna jika terjadi salah penitikan
>
>
>Mohon bantuannya sebelumnya saya ucapkan terimakasih yg sebesar2nya
>Regard,
>
>
>Opik
>
>
Thu Nov 8, 2012 3:44 am (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
Karena hanya menggunakan 1 image saja, maka :
1. Bagian deklarasi variabel myImg diubah dari 0 to 1 menjadi 0 saja.
2. hapus baris-baris :
imgJari.Picture = LoadPicture(vbNullString)
imgJari.Picture = LoadPicture(lblFolder.Caption & "\l2f.jpg")
dan blok :
With myImg(1) 'karena cuma pakai 1 control image,
maka saya samain isinya dengan myImg(0)
.sSource = "L2F"
.sPicFile = lblFolder.Caption & "\l2f.jpg"
Set .img = imgJari
IsiGambar .img, .sPicFile, .bImgState
If .bImgState Then
cboImg.AddItem .img.Name
.sLineList = vbNullString
End If
End With
3. Pada event initialize, hapus blok yang dimulai dari with myImg(1) sampai
dengan end with
Wassalam,
Kid.
2012/11/8 lapendosol opik <lapendosol@yahoo.com >
> Mohon dikoreksi, susunan saya sudah bener belum? Menjadi seperti ini:
>
> Private Sub cmdL2F_Click()
> If lblFolder.Caption = "" Then
> MsgBox ("Tentukan Folder Terlebih Dahulu")
> ElseIf Dir(lblFolder.Caption & "\l2f.jpg") = "" Then
> MsgBox ("Tipe Jari Tidak Tersedia")
> ElseIf lblL1.Caption = "" Then
> MsgBox ("Tipe Jarinya belum diisi")
> txtL1.SetFocus
> ElseIf txtL1.Text = "" Then
> MsgBox ("Angka belum diisi")
> txtL1.SetFocus
> Else
> lblJari.Caption = "L2F"
> cmdLL.Caption = "L2L"
> cmdLLL.Caption = "L2LL"
> cmdRR.Caption = "L2R"
> cmdRRR.Caption = "L2RR"
> imgJari.Picture = LoadPicture(vbNullString)
> imgJari.Picture = LoadPicture(lblFolder.Caption & "\l2f.jpg")
> txtL2.SetFocus
> cboImg.Clear 'hapus daftar combo (daftar
> gambar)
> cboImg.Text = vbNullString 'set text combo jadi
> nullstring
> lstLine.Clear 'hapus listbox (daftar garis)
>
> 'init nilai koordinat titik start dan titik end
> sngX01 = 0
> sngX02 = 0
> sngY01 = 0
> sngY02 = 0
>
> 'init semua gambar berdasar jumlah control image yang digunakan
> With myImg(0) 'pada gambar ke-0 (image 1)
> .sSource = "L2F"
> .sPicFile = lblFolder.Caption & "\l2f.jpg" 'harus
> fullfilename
> Set .img = imgJari
> IsiGambar .img, .sPicFile, .bImgState 'pasang gambar ke dalam
> image control
> If .bImgState Then 'cek ada gambar terpasang
> cboImg.AddItem .img.Name 'tambah item dalam combo
>
> 'ganti dengan sumber daftar garis (tipe data : string),
> seperti dari cell
> 'listbox akan terisi data ini jika combobox mengalami
> pengubahan pilihan
> .sLineList = vbNullString 'untuk contoh dibuat nullstring saja
> End If
> End With
>
> With myImg(1) 'karena cuma pakai 1 control image,
> maka saya samain isinya dengan myImg(0)
> .sSource = "L2F"
> .sPicFile = lblFolder.Caption & "\l2f.jpg"
> Set .img = imgJari
> IsiGambar .img, .sPicFile, .bImgState
> If .bImgState Then
> cboImg.AddItem .img.Name
> .sLineList = vbNullString
> End If
> End With
>
> Me.Repaint 'cat ulang userform
> End If
> End Sub
>
1. Bagian deklarasi variabel myImg diubah dari 0 to 1 menjadi 0 saja.
2. hapus baris-baris :
imgJari.Picture = LoadPicture(
imgJari.Picture = LoadPicture(
dan blok :
With myImg(1) 'karena cuma pakai 1 control image,
maka saya samain isinya dengan myImg(0)
.sSource = "L2F"
.sPicFile = lblFolder.Caption & "\l2f.jpg"
Set .img = imgJari
IsiGambar .img, .sPicFile, .bImgState
If .bImgState Then
cboImg.AddItem .img.Name
.sLineList = vbNullString
End If
End With
3. Pada event initialize, hapus blok yang dimulai dari with myImg(1) sampai
dengan end with
Wassalam,
Kid.
2012/11/8 lapendosol opik <lapendosol@yahoo.
> Mohon dikoreksi, susunan saya sudah bener belum? Menjadi seperti ini:
>
> Private Sub cmdL2F_Click(
> If lblFolder.Caption = "" Then
> MsgBox ("Tentukan Folder Terlebih Dahulu")
> ElseIf Dir(lblFolder.
> MsgBox ("Tipe Jari Tidak Tersedia")
> ElseIf lblL1.Caption = "" Then
> MsgBox ("Tipe Jarinya belum diisi")
> txtL1.SetFocus
> ElseIf txtL1.Text = "" Then
> MsgBox ("Angka belum diisi")
> txtL1.SetFocus
> Else
> lblJari.Caption = "L2F"
> cmdLL.Caption = "L2L"
> cmdLLL.Caption = "L2LL"
> cmdRR.Caption = "L2R"
> cmdRRR.Caption = "L2RR"
> imgJari.Picture = LoadPicture(
> imgJari.Picture = LoadPicture(
> txtL2.SetFocus
> cboImg.Clear 'hapus daftar combo (daftar
> gambar)
> cboImg.Text = vbNullString 'set text combo jadi
> nullstring
> lstLine.Clear 'hapus listbox (daftar garis)
>
> 'init nilai koordinat titik start dan titik end
> sngX01 = 0
> sngX02 = 0
> sngY01 = 0
> sngY02 = 0
>
> 'init semua gambar berdasar jumlah control image yang digunakan
> With myImg(0) 'pada gambar ke-0 (image 1)
> .sSource = "L2F"
> .sPicFile = lblFolder.Caption & "\l2f.jpg" 'harus
> fullfilename
> Set .img = imgJari
> IsiGambar .img, .sPicFile, .bImgState 'pasang gambar ke dalam
> image control
> If .bImgState Then 'cek ada gambar terpasang
> cboImg.AddItem .img.Name 'tambah item dalam combo
>
> 'ganti dengan sumber daftar garis (tipe data : string),
> seperti dari cell
> 'listbox akan terisi data ini jika combobox mengalami
> pengubahan pilihan
> .sLineList = vbNullString 'untuk contoh dibuat nullstring saja
> End If
> End With
>
> With myImg(1) 'karena cuma pakai 1 control image,
> maka saya samain isinya dengan myImg(0)
> .sSource = "L2F"
> .sPicFile = lblFolder.Caption & "\l2f.jpg"
> Set .img = imgJari
> IsiGambar .img, .sPicFile, .bImgState
> If .bImgState Then
> cboImg.AddItem .img.Name
> .sLineList = vbNullString
> End If
> End With
>
> Me.Repaint 'cat ulang userform
> End If
> End Sub
>
Thu Nov 8, 2012 2:35 am (PST) . Posted by:
"prabowoseptyobimo" prabowoseptyobimo
kebetulan ada spreadsheet yang telah jadi, lalu ingin di modifikasi, dengan menambahkan beberapa colum di tengah tengah ternyata tidak bisa, muncul textbox bertuliskan :
to prevent possible loss of data, excel cannot shift nonblank cells off of the worksheet. select another location in which to insert new cells or delete data form the end of your worksheet.
if you do not have data in cells that can be shifted off the worksheet, you can reset which cells ecxcel considers nonblank. to do this CTRL+End to locate the last nonblank cell on the worksheet. delete this cell and all cells between it and the last row and colum of your data then save
kalau seperti ini bagaimana menambahkan colum kedalam sheet ....
to prevent possible loss of data, excel cannot shift nonblank cells off of the worksheet. select another location in which to insert new cells or delete data form the end of your worksheet.
if you do not have data in cells that can be shifted off the worksheet, you can reset which cells ecxcel considers nonblank. to do this CTRL+End to locate the last nonblank cell on the worksheet. delete this cell and all cells between it and the last row and colum of your data then save
kalau seperti ini bagaimana menambahkan colum kedalam sheet ....
Thu Nov 8, 2012 3:11 am (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
Jika tidak bisa insert sebanyak n column(s) :
>> Periksa pada n kolom terkanan worksheet, apakah ada data disana. Jika
ada, putuskan lebih dulu apakah boleh dihapus. Jika boleh dihapus, hapuslah
data di n kolom terkanan itu. Setelah itu, coba insert sebanyak n column.
Jika masih tidak bisa, pastikan tidak ada kolom yang di-hide (biasanya
pesan tidak boleh insert-nya berbeda yang sedang dihadapi).
Hal ini juga berlaku ketika tidak bisa insert sebanyak n row(s)
Wassalam,
Kid.
On Thu, Nov 8, 2012 at 5:13 PM, prabowoseptyobimo <
prabowoseptyobimo@yahoo.com > wrote:
> **
>
>
> kebetulan ada spreadsheet yang telah jadi, lalu ingin di modifikasi,
> dengan menambahkan beberapa colum di tengah tengah ternyata tidak bisa,
> muncul textbox bertuliskan :
>
> to prevent possible loss of data, excel cannot shift nonblank cells off of
> the worksheet. select another location in which to insert new cells or
> delete data form the end of your worksheet.
>
> if you do not have data in cells that can be shifted off the worksheet,
> you can reset which cells ecxcel considers nonblank. to do this CTRL+End to
> locate the last nonblank cell on the worksheet. delete this cell and all
> cells between it and the last row and colum of your data then save
>
> kalau seperti ini bagaimana menambahkan colum kedalam sheet ....
>
>
>
>> Periksa pada n kolom terkanan worksheet, apakah ada data disana. Jika
ada, putuskan lebih dulu apakah boleh dihapus. Jika boleh dihapus, hapuslah
data di n kolom terkanan itu. Setelah itu, coba insert sebanyak n column.
Jika masih tidak bisa, pastikan tidak ada kolom yang di-hide (biasanya
pesan tidak boleh insert-nya berbeda yang sedang dihadapi).
Hal ini juga berlaku ketika tidak bisa insert sebanyak n row(s)
Wassalam,
Kid.
On Thu, Nov 8, 2012 at 5:13 PM, prabowoseptyobimo <
prabowoseptyobimo@
> **
>
>
> kebetulan ada spreadsheet yang telah jadi, lalu ingin di modifikasi,
> dengan menambahkan beberapa colum di tengah tengah ternyata tidak bisa,
> muncul textbox bertuliskan :
>
> to prevent possible loss of data, excel cannot shift nonblank cells off of
> the worksheet. select another location in which to insert new cells or
> delete data form the end of your worksheet.
>
> if you do not have data in cells that can be shifted off the worksheet,
> you can reset which cells ecxcel considers nonblank. to do this CTRL+End to
> locate the last nonblank cell on the worksheet. delete this cell and all
> cells between it and the last row and colum of your data then save
>
> kalau seperti ini bagaimana menambahkan colum kedalam sheet ....
>
>
>
Thu Nov 8, 2012 4:56 am (PST) . Posted by:
"lkm jktind" lkmjkt
Pak Kid.
Terima kasih .
Sudah dapat saya selesaikan sesuai dengan kebutuhan saya.
Mohon do koreksi.
Hanya masih belum tau cara mendapatkan . bila salah input kode transaksi
dengan salah input no Acc yg nga ada
adapun untuk mempelajari macro untuk excel . buku apakah yg di sarankan ?
Visual basic , visual basic 6, visual basic for aplication apakah
semua ini bisa di gunakan untuk macro excel ?
Salam
Lukman
2012/11/3 Mr. Kid <mr.nmkid@gmail.com >
> **
>
>
> Bagaimana ya cara menjelaskannya...
> Mungkin lihat file terlampir saja ya...
>
> Tapi, cuplikannya seperti ini :
>
> Tanya Set rngRef =
> Sheet5.Range("a1").CurrentRegion --- kenapa sheet 5
> ? (bukankah sheet database adanya di sheet 2) Tanya Set rngLibur =
> Sheet5.Range("n1").CurrentRegion.Resize(, 1) -- kenapa di sheet 5
> ? cell N1 --- daftar hari libur. Jawab Sheet5 (bukan sheet 5) adalah
> nama object class dari worksheet. Lihat di VBE frame VBA Project (Project
> Explorer) Jawab
> Tanya If LenB(.Value) <> 0
> Then --- kok bisa di namai
> B lenB Jawab LenB( bla ) dan bukan Len B atau LenB. Jawab LenB
> adalah sebuah fungsi untuk menghitung jumlah karakter suatu nilai data
> bertipe string (teks) dalam satuan byte. Jawab Yang umum dikenal adalah
> fungsi Len, yang menghitung jumlah karakter suatu nilai data. Jadi, hasil
> LenB akan diubah oleh VB engine menjadi hasil Len. Jawab Fungsi selalu
> diikuti buka kurung. Coba lihat semua fungsi dalam worksheet yang dipakai
> di formula, seperti : Jawab =VLookUp( bla , bla, bla,bla ) atau
> =Sum( bla:bla ) Jawab Selalu diikuti buka kurung bukan ? Jawab
> Tanya .Offset(0, -1).Value = UCase$(.Offset(0, -1).Value) ---
> huruf $ ini mewakili apa dan apa gunanya ? Jawab UCase$ adalah nama
> fungsi. Sedangkan .Offset(0, -1).Value adalah nilai inputan ke parameter
> yang diminta si fungsi Jawab Coba perhatikan ketika membuat formula di
> worksheet, seperti =VLookUp( , maka user harus mengisi suatu nilai yang
> diminta oleh VLookUp bukan ? Jawab Itu namanya nilai untuk inputan bagi
> input parameter fungsi. Jawab Fungsi UCase$ adalah fungsi untuk mengubah
> seluruh karakter menjadi huruf kapital (seperti UCase), tetapi input
> parameternya adalah string (teks) Jawab Jadi, pada fungsi UCase, input
> parameter adalah bertipe variant. Jawab Coba perhatikan di VBE ketika
> menulis : Jawab UCase$( akan muncul tooltip berbunyi Ucase$( String
> as string ) as string Jawab ketika menulis : Jawab UCase( akan muncul
> tooltip berbunyi Ucase( String ) as string Jawab Karena tidak ada
> definisi jelas seperti yang diberi warna merah, maka tipe data pada Ucase
> adalah Variant. Jawab Tipe data variant memakan ruang memori lebih
> banyak, sehingga relatif lebih lambat diproses. Jawab
> Tanya Dim rngDT As Range, rngLoopDT As Range --
> dengan memakai as range -- mungkin arti nya bila data bertambah akan di
> loop mengikuti jumlah rows yg ada ? Jawab Tidak. Jawab Tidak ada
> hubungannya penggunaan tipe data range dengan bertambah atau berkurangnya
> data dimanapun berada. Jawab Dipilih menggunakan tipe data range, karena
> akan memproses memanfaatkan bendanya. Excel adalah kumpulan range, bukan
> kumpulan nomor baris dan nomor kolom. Jawab Untuk membuat variabel
> bertipe range dapat menyesuaikan dengan jumlah record yang ada, Jawab dibutuhkan
> perintah yang detil dalam menentukan area range yang harus disimpan dalam
> variabel bertipe range itu. Jawab Artinya, variabel selalu bersifat pasifkarena memang tugasnya hanya menyimpan sesuatu yang diamanahkan kepadanya
> untuk disimpan Jawab
> Tanya Dim rngDT As Range, rngLoopDT As Range --
> dengan memakai as range -- mungkin arti nya bila data bertambah akan di
> loop mengikuti jumlah rows yg ada ? Tanya -- beda nya rngDT dengan
> rngLoopDT ? mungkin kah artinya : rngDT --- data yg ada akan di
> loop sebanyak rngLoopDT ? Jawab rngDT :: rencananya sih (jadi ini
> alasan pribadi, dan bukan aturan baku) akan digunakan untuk menyimpan data
> disuatu range yang ada di sheet inputan Jawab rngLoopDT :: untuk
> menyimpan data di rngDT yang sedang diproses saat loop dengan for each nanti
> Jawab Jadi, rngDT bukan berarti data yang akan di loop sebanyak rngLoopDT
> Jawab tapi rngLoopDT adalah wadah untuk menyimpan range dari rngDT yang
> sedang diproses ketika melakukan loop dengan For Each Jawab
> Tanya Dim dblRefFee As
> Double -- Pakai double
> dan Long beda nya dimana ? Jawab Coba pelajari (lihat di Help atau
> browsing internet dengan key Data Type) tentang tipe data. Jawab Tipe
> data skalar jenis Double dapat menyimpan bilangan pecahan pada interval
> nilai tertentu. Jawab Tipe data skalar jenis Long dapat menyimpan
> bilangan bulat pada interval nilai tertentu. Jawab Pertanyaannya, kapan
> suatu bilangan Anda sebut bilangan pecahan ? Dan kapan akan Anda sebut
> bahwa suatu bilangan itu bilangan bulat ? Jawab Setelah dapat kepastian
> nilai datanya bertipe numerik sebagai bilangan bulat atau pecahan, maka
> bisa ditentukan apakah akan menggunakan Double atau Long. Jawab
> Permintaan Kalau nga keberatan . mohon di tampilkan no row nya di work
> sheet - agar lebih mudah saya mempelajari nya . Permintaan Karena saya
> mau tambahkan dengan nilai beli , jual dan total transaksi per konfirmasi.
> Jawab Keberatan sih nggak Jawab Bukannya malah akan lebih bermanfaat
> ketika Anda bisa melakukannya sendiri ? Jawab Dengan memahami nomor row
> apa yang dikehendaki, maka bisa diketahui nomor row itu adalah nomor row di
> data yang mana. Jawab Dengan tahu data yang mana yang akan diambil
> row-nya, maka dapat diketahui baris-baris script yang mana yang memproses
> data tersebut Jawab Dengan diketahui bari-baris script yang memproses
> data tersebut, bisa diketahui apakah nilai (bisa bertipe apa saja) yang
> diproses atau benda yang diproses Jawab Dengan diketahui apa yang
> diproses, maka akan ada ide untuk mendapatkan nilai row yang diharapkan
> Jawab Kemudian ditulis bagaimana cara mendapatkan nilai row itu Jawab Ketika
> sudah didapat, maka akan ada proses pengambilan keputusan untuk menyimpan
> dimana dalam bentuk apa Jawab Apakah langsung sebagai nilai rownya yang
> ditulis dalam sebuah cell, atau akan disimpan disebuah variabel lebih dulu
> Jawab Ketika akan menulis di cell tertentu, cell yang manakah ? Bagaimana
> cara sampai ke cell tersebut dari cell-cell data inputan yang sedang
> diproses ? Jawab Kemudian ditulis deh script hasil karya pemikiran
> tersebut. Jawab Hal ini memang panjang, butuh kesabaran (pintu pertama
> ilmu pengetahuan), dan penuh kesulitan (tidak ada perwujudan kebaikan akan
> melalui jalan yang mudah) Jawab tapi hasilnya adalah suatu pemberian
> (kata orang adalah anugerah) yang sulit diambil oleh pihak lain Jawab Bagaimana
> ? Mau mencoba sampai puyeng dulu ? Jawab Alasan sudah dekat deadline
> adalah alasan klise. Jadi, kalau alasannya sudah dekat deadline, pakai
> formula dulu saja wakakakka Jawab
> Wassalam,
> Kid.
>
>
>
>
> 2012/11/3 lkm jktind <lkmjktind@gmail.com >
>
>> **
>>
>>
>> Pak Kid
>> Tanya :
>>
>> Set rngRef = Sheet5.Range("a1").CurrentRegion
>> --- kenapa sheet 5 ? (bukankah sheet database adanya di sheet 2)
>> Set rngLibur = Sheet5.Range("n1").CurrentRegion.Resize(, 1) --
>> kenapa di sheet 5 ? cell N1 --- daftar hari libur.
>>
>>
>> For Each rngLoopDT In rngDT.Resize(, 1).Offset(1, 4)
>> With rngLoopDT
>> If LenB(.Value) <> 0
>> Then --- kok bisa di namai
>> B len*B*
>>
>> .Offset(0, -1).Value = UCase$(.Offset(0, -1).Value) ---
>> huruf $ ini mewakili apa dan apa gunanya ?
>>
>> Dim rngDT As Range, rngLoopDT As Range --
>> dengan memakai as range -- mungkin arti nya bila data bertambah akan di
>> loop mengikuti jumlah rows yg ada ?
>>
>> -- beda nya rngDT dengan rngLoopDT
>>
>>
>> mungkin kah artinya : rngDT --- data yg ada akan di
>> loop sebanyak rngLoopDT ?
>> Dim dblRefFee As
>> Double -- Pakai
>> double dan Long beda nya dimana ?
>>
>> sekian dulu pertanyan dari saya .
>>
>> Mohon di koreksi .
>>
>> Kalau nga keberatan . mohon di tampilkan no row nya di work sheet - agar
>> lebih mudah saya mempelajari nya .
>>
>> Karena saya mau tambahkan dengan nilai beli , jual dan total transaksi
>> per konfirmasi.
>>
>>
>>
>> Terima kasih.
>>
>>
>> Salam
>>
>> Lukman
>>
>>
>
>
Terima kasih .
Sudah dapat saya selesaikan sesuai dengan kebutuhan saya.
Mohon do koreksi.
Hanya masih belum tau cara mendapatkan . bila salah input kode transaksi
dengan salah input no Acc yg nga ada
adapun untuk mempelajari macro untuk excel . buku apakah yg di sarankan ?
Visual basic , visual basic 6, visual basic for aplication apakah
semua ini bisa di gunakan untuk macro excel ?
Salam
Lukman
2012/11/3 Mr. Kid <mr.nmkid@gmail.
> **
>
>
> Bagaimana ya cara menjelaskannya.
> Mungkin lihat file terlampir saja ya...
>
> Tapi, cuplikannya seperti ini :
>
> Tanya Set rngRef =
> Sheet5.Range(
> ? (bukankah sheet database adanya di sheet 2) Tanya Set rngLibur =
> Sheet5.Range(
> ? cell N1 --- daftar hari libur. Jawab Sheet5 (bukan sheet 5) adalah
> nama object class dari worksheet. Lihat di VBE frame VBA Project (Project
> Explorer) Jawab
> Tanya If LenB(.Value) <> 0
> Then --- kok bisa di namai
> B lenB Jawab LenB( bla ) dan bukan Len B atau LenB. Jawab LenB
> adalah sebuah fungsi untuk menghitung jumlah karakter suatu nilai data
> bertipe string (teks) dalam satuan byte. Jawab Yang umum dikenal adalah
> fungsi Len, yang menghitung jumlah karakter suatu nilai data. Jadi, hasil
> LenB akan diubah oleh VB engine menjadi hasil Len. Jawab Fungsi selalu
> diikuti buka kurung. Coba lihat semua fungsi dalam worksheet yang dipakai
> di formula, seperti : Jawab =VLookUp( bla , bla, bla,bla ) atau
> =Sum( bla:bla ) Jawab Selalu diikuti buka kurung bukan ? Jawab
> Tanya .Offset(0, -1).Value = UCase$(.Offset(
> huruf $ ini mewakili apa dan apa gunanya ? Jawab UCase$ adalah nama
> fungsi. Sedangkan .Offset(0, -1).Value adalah nilai inputan ke parameter
> yang diminta si fungsi Jawab Coba perhatikan ketika membuat formula di
> worksheet, seperti =VLookUp( , maka user harus mengisi suatu nilai yang
> diminta oleh VLookUp bukan ? Jawab Itu namanya nilai untuk inputan bagi
> input parameter fungsi. Jawab Fungsi UCase$ adalah fungsi untuk mengubah
> seluruh karakter menjadi huruf kapital (seperti UCase), tetapi input
> parameternya adalah string (teks) Jawab Jadi, pada fungsi UCase, input
> parameter adalah bertipe variant. Jawab Coba perhatikan di VBE ketika
> menulis : Jawab UCase$( akan muncul tooltip berbunyi Ucase$( String
> as string ) as string Jawab ketika menulis : Jawab UCase( akan muncul
> tooltip berbunyi Ucase( String ) as string Jawab Karena tidak ada
> definisi jelas seperti yang diberi warna merah, maka tipe data pada Ucase
> adalah Variant. Jawab Tipe data variant memakan ruang memori lebih
> banyak, sehingga relatif lebih lambat diproses. Jawab
> Tanya Dim rngDT As Range, rngLoopDT As Range --
> dengan memakai as range -- mungkin arti nya bila data bertambah akan di
> loop mengikuti jumlah rows yg ada ? Jawab Tidak. Jawab Tidak ada
> hubungannya penggunaan tipe data range dengan bertambah atau berkurangnya
> data dimanapun berada. Jawab Dipilih menggunakan tipe data range, karena
> akan memproses memanfaatkan bendanya. Excel adalah kumpulan range, bukan
> kumpulan nomor baris dan nomor kolom. Jawab Untuk membuat variabel
> bertipe range dapat menyesuaikan dengan jumlah record yang ada, Jawab dibutuhkan
> perintah yang detil dalam menentukan area range yang harus disimpan dalam
> variabel bertipe range itu. Jawab Artinya, variabel selalu bersifat pasifkarena memang tugasnya hanya menyimpan sesuatu yang diamanahkan kepadanya
> untuk disimpan Jawab
> Tanya Dim rngDT As Range, rngLoopDT As Range --
> dengan memakai as range -- mungkin arti nya bila data bertambah akan di
> loop mengikuti jumlah rows yg ada ? Tanya -- beda nya rngDT dengan
> rngLoopDT ? mungkin kah artinya : rngDT --- data yg ada akan di
> loop sebanyak rngLoopDT ? Jawab rngDT :: rencananya sih (jadi ini
> alasan pribadi, dan bukan aturan baku) akan digunakan untuk menyimpan data
> disuatu range yang ada di sheet inputan Jawab rngLoopDT :: untuk
> menyimpan data di rngDT yang sedang diproses saat loop dengan for each nanti
> Jawab Jadi, rngDT bukan berarti data yang akan di loop sebanyak rngLoopDT
> Jawab tapi rngLoopDT adalah wadah untuk menyimpan range dari rngDT yang
> sedang diproses ketika melakukan loop dengan For Each Jawab
> Tanya Dim dblRefFee As
> Double -- Pakai double
> dan Long beda nya dimana ? Jawab Coba pelajari (lihat di Help atau
> browsing internet dengan key Data Type) tentang tipe data. Jawab Tipe
> data skalar jenis Double dapat menyimpan bilangan pecahan pada interval
> nilai tertentu. Jawab Tipe data skalar jenis Long dapat menyimpan
> bilangan bulat pada interval nilai tertentu. Jawab Pertanyaannya, kapan
> suatu bilangan Anda sebut bilangan pecahan ? Dan kapan akan Anda sebut
> bahwa suatu bilangan itu bilangan bulat ? Jawab Setelah dapat kepastian
> nilai datanya bertipe numerik sebagai bilangan bulat atau pecahan, maka
> bisa ditentukan apakah akan menggunakan Double atau Long. Jawab
> Permintaan Kalau nga keberatan . mohon di tampilkan no row nya di work
> sheet - agar lebih mudah saya mempelajari nya . Permintaan Karena saya
> mau tambahkan dengan nilai beli , jual dan total transaksi per konfirmasi.
> Jawab Keberatan sih nggak Jawab Bukannya malah akan lebih bermanfaat
> ketika Anda bisa melakukannya sendiri ? Jawab Dengan memahami nomor row
> apa yang dikehendaki, maka bisa diketahui nomor row itu adalah nomor row di
> data yang mana. Jawab Dengan tahu data yang mana yang akan diambil
> row-nya, maka dapat diketahui baris-baris script yang mana yang memproses
> data tersebut Jawab Dengan diketahui bari-baris script yang memproses
> data tersebut, bisa diketahui apakah nilai (bisa bertipe apa saja) yang
> diproses atau benda yang diproses Jawab Dengan diketahui apa yang
> diproses, maka akan ada ide untuk mendapatkan nilai row yang diharapkan
> Jawab Kemudian ditulis bagaimana cara mendapatkan nilai row itu Jawab Ketika
> sudah didapat, maka akan ada proses pengambilan keputusan untuk menyimpan
> dimana dalam bentuk apa Jawab Apakah langsung sebagai nilai rownya yang
> ditulis dalam sebuah cell, atau akan disimpan disebuah variabel lebih dulu
> Jawab Ketika akan menulis di cell tertentu, cell yang manakah ? Bagaimana
> cara sampai ke cell tersebut dari cell-cell data inputan yang sedang
> diproses ? Jawab Kemudian ditulis deh script hasil karya pemikiran
> tersebut. Jawab Hal ini memang panjang, butuh kesabaran (pintu pertama
> ilmu pengetahuan)
> melalui jalan yang mudah) Jawab tapi hasilnya adalah suatu pemberian
> (kata orang adalah anugerah) yang sulit diambil oleh pihak lain Jawab Bagaimana
> ? Mau mencoba sampai puyeng dulu ? Jawab Alasan sudah dekat deadline
> adalah alasan klise. Jadi, kalau alasannya sudah dekat deadline, pakai
> formula dulu saja wakakakka Jawab
> Wassalam,
> Kid.
>
>
>
>
> 2012/11/3 lkm jktind <lkmjktind@gmail.
>
>> **
>>
>>
>> Pak Kid
>> Tanya :
>>
>> Set rngRef = Sheet5.Range(
>> --- kenapa sheet 5 ? (bukankah sheet database adanya di sheet 2)
>> Set rngLibur = Sheet5.Range(
>> kenapa di sheet 5 ? cell N1 --- daftar hari libur.
>>
>>
>> For Each rngLoopDT In rngDT.Resize(
>> With rngLoopDT
>> If LenB(.Value) <> 0
>> Then --- kok bisa di namai
>> B len*B*
>>
>> .Offset(0, -1).Value = UCase$(.Offset(
>> huruf $ ini mewakili apa dan apa gunanya ?
>>
>> Dim rngDT As Range, rngLoopDT As Range --
>> dengan memakai as range -- mungkin arti nya bila data bertambah akan di
>> loop mengikuti jumlah rows yg ada ?
>>
>> -- beda nya rngDT dengan rngLoopDT
>>
>>
>> mungkin kah artinya : rngDT --- data yg ada akan di
>> loop sebanyak rngLoopDT ?
>> Dim dblRefFee As
>> Double -- Pakai
>> double dan Long beda nya dimana ?
>>
>> sekian dulu pertanyan dari saya .
>>
>> Mohon di koreksi .
>>
>> Kalau nga keberatan . mohon di tampilkan no row nya di work sheet - agar
>> lebih mudah saya mempelajari nya .
>>
>> Karena saya mau tambahkan dengan nilai beli , jual dan total transaksi
>> per konfirmasi.
>>
>>
>>
>> Terima kasih.
>>
>>
>> Salam
>>
>> Lukman
>>
>>
>
>
GROUP FOOTER MESSAGE
---------------------------------------------------------------------
bergabung ke milis (subscribe), kirim mail kosong ke:
belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke:
belajar-excel@yahoogroups.com
berkunjung ke web milis
http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran
http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di :
http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe):
kirim mail kosong ke belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------
bergabung ke milis (subscribe), kirim mail kosong ke:
belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke:
belajar-excel@yahoogroups.com
berkunjung ke web milis
http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran
http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di :
http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe):
kirim mail kosong ke belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------
Tidak ada komentar:
Posting Komentar