Senin, 26 November 2012

[belajar-excel] Digest Number 1932

5 New Messages

Digest #1932
1.1
1.2
Re: Tes kecepatan macro ambil tanggal by "Mr. Kid" nmkid.family@ymail.com
2a
Re: Menulis formula di makro by "Emi" emilestariklcc
3b
Re: memakai Material control userform by "Mr. Kid" nmkid.family@ymail.com

Messages

Mon Nov 26, 2012 6:53 am (PST) . Posted by:

"lkm jktind" lkmjkt

Pak Kid .

Hasil nya tes_14 : 8.30469 detik Tes_14a : 8.05469 detik dan Tes_14b
: 6.41406 detik

Terima kasih.

Salam

Lukman

2012/11/26 Mr. Kid <mr.nmkid@gmail.com>

> **
>
>
> Mumpung ada yang ngeTes...
>
> Kalau tes_14 diubah menjadi :
> Sub Tes_14a()
> Set Rng = Range("A2", Range("A1000000").End(xlUp))
> with rng
> application.calculation=xlmanual
> .Offset(0, 20).Formula = "=B2*C2"
> .Offset(0, 21).Formula = "=D2*E2"
> .Offset(0, 22).Formula = "=B2*D2"
> .Offset(0, 23).Formula = "=C2*E2"
> application.calculation=xlautomatic
>
> .Offset(0, 20).Value = .Offset(0, 20).Value
> .Offset(0, 21).Value = .Offset(0, 21).Value
> .Offset(0, 22).Value = .Offset(0, 22).Value
> .Offset(0, 23).Value = .Offset(0, 23).Value
> end with
> End Sub
> ada selisih waktunya (ukur waktu proses dengan timer ya) gak dengan yang
> tes_14
> kemudian coba juga kalau menjadi :
> Sub Tes_14b()
> Set Rng = Range("A2", Range("A1000000").End(xlUp))
> with rng.Offset(0, 20)
> .Formula = "=B2*C2"
> .Value = .Value
> end with
>
> with rng.Offset(0, 21)
> .Formula = "=D2*E2"
> .Value = .Value
> end with
>
> with rng.Offset(0, 22)
> .Formula = "=B2*D2"
> .Value = .Value
> end with
>
> with rng.Offset(0, 23)
> .Formula = "=C2*E2"
> .Value = .Value
> end with
> End Sub
> ada selisih waktu atau tidak.
>
>
> Dari hasil diatas . bila di kolom P berisi 3 macam formula .
> maka harus di buat 3 macam range : misal
> rng_A ---- > untuk formula A
> rng_B -----> untuk formula B
>
> rng_C -----> untuk formula C
> Atau
> rng_D ---> kemudian formula A, B ,C bergantian di input
> >> Pertanyaannya, kenapa kok kolom P harus diisi 3 formula ?
> Jika 3 formula itu karena keadaannya berbeda-beda, mungkin bisa dibuat
> formula universalnya.
> Contoh : rng.formula="=if(a2=1,b2*c2,if(a2=2,d2*c2,e2*b2))"
> hehehe... kayanya bukan seperti itu ya... :)
> ya wis lah atur aja...
>
>
> mengenai Temp file . ini akan membebani memory kah ?
> Bila file : 'M:\data_saham\LK_WEB_100.xlsm = 55 mb, maka memory yg akan
> terpakai juga 55 MB
> >> Formula merujuk range di worksheet lain akan lebih lebih lambat
> dibanding merujuk di worksheet yang sama.
> Formula merujuk file lain lebih lambat dibanding merujuk di file yang sama.
> Formula merujuk ke file lain yang tertutup katanya bisa lebih lama lagi.
>
>
> cara penulisannya di macro dengan file :
> 'M:\data_saham\LK_WEB_100.xlsm untuk di jadikan file temp . dan cara
> penghapusnya .
> >> ke sheet temporary, bukan file temporary. Jadi konsepnya adalah
> mengusahakan formula merujuk ke workbook yang sama tapi beda sheet jika
> tidak mungkin merujuk ke sheet yang sama.
> dim wbkA as workbook, wbkR as workbook
> dim shtA as worksheet, shtTmp as worksheet
> dim rng as range
>
> set wbka=thisworkbook
> set shta=activesheet
> set shttmp=sheets.add(after:=sheets(sheets.count))
> shttmp.name="Temp"
>
> set wbkr=workbooks.open("fullfilename_si_file_lain",readonly:=true)
> wbkr.sheets("nama sheet referensi yang dirujuk
> formula").range("a1:ai32000").copy
> shttmp.range("a1").pastespecial xlpastevalues
> wbkr.close false
> wbka.activate
> shta.activate
>
> set rng=shta.range("p6:p500000")
> rng.formula="formula yang bunyinya sudah merujuk ke sheet bernama temp"
> shta.calculate
> rng.value=rng.value
>
> application.displayalerts=false
> shttmp.delete
> application.displayalerts=true
>
> Wassalam,
> Kid.
>
>
> 2012/11/26 lkm jktind <lkmjktind@gmail.com>
>
>> Pak Kid.
>>
>> dengan data sebanyak 506.286 row.
>> Tes_14 waktunya 9 detik.
>> Tes_12 waktunya sudah 30 menit belum selesai.
>>
>> Sub Tes_14()
>> Range("A2").Select
>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>> Rng.Offset(0, 20).Formula = "=B2*C2"
>> Rng.Offset(0, 21).Formula = "=D2*E2"
>> Rng.Offset(0, 22).Formula = "=B2*D2"
>> Rng.Offset(0, 23).Formula = "=C2*E2"
>> Rng.Offset(0, 20).Value = Rng.Offset(0, 20).Value
>> Rng.Offset(0, 21).Value = Rng.Offset(0, 21).Value
>> Rng.Offset(0, 22).Value = Rng.Offset(0, 22).Value
>> Rng.Offset(0, 23).Value = Rng.Offset(0, 23).Value
>> End Sub
>>
>> Sub tes_12()
>>
>> For r = 2 To s
>> Cells(r, 21).Value = Cells(r, 2) * Cells(r, 3)
>> Cells(r, 22).Value = Cells(r, 4) * Cells(r, 5)
>> Cells(r, 23).Value = Cells(r, 2) * Cells(r, 4)
>> Cells(r, 24).Value = Cells(r, 3) * Cells(r, 5)
>> Next
>>
>> Dari hasil diatas . bila di kolom P berisi 3 macam formula .
>> maka harus di buat 3 macam range : misal
>> rng_A ---- > untuk formula A
>> rng_B -----> untuk formula B
>>
>> rng_C -----> untuk formula C
>> Atau
>> rng_D ---> kemudian formula A, B ,C bergantian di input
>>
>> untuk resize : akan saya pelajari lebih lanjut.
>>
>> mengenai Temp file . ini akan membebani memory kah ?
>> Bila file : 'M:\data_saham\LK_WEB_100.xlsm = 55 mb, maka memory yg akan
>> terpakai juga 55 MB
>>
>> Mohon pak Kid memberikan contoh : cara penulisannya di macro dengan file :
>> 'M:\data_saham\LK_WEB_100.xlsm untuk di jadikan file temp . dan cara
>> penghapusnya .
>>
>>
>> Terima kasih .
>>
>> Salam
>>
>> Lukman
>>
>>
>
>

Mon Nov 26, 2012 8:24 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Makasih Pak Lukman.
Maaf kalau merepotkan.

Wassalam,
Kid.
On Nov 26, 2012 11:22 PM, "lkm jktind" <lkmjktind@gmail.com> wrote:

> **
>
>
> Pak Kid .
>
> Hasil nya tes_14 : 8.30469 detik Tes_14a : 8.05469 detik dan
> Tes_14b : 6.41406 detik
>
> Terima kasih.
>
>
> Salam
>
> Lukman
>
>
>
> 2012/11/26 Mr. Kid <mr.nmkid@gmail.com>
>
>> **
>>
>>
>> Mumpung ada yang ngeTes...
>>
>> Kalau tes_14 diubah menjadi :
>> Sub Tes_14a()
>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>> with rng
>> application.calculation=xlmanual
>> .Offset(0, 20).Formula = "=B2*C2"
>> .Offset(0, 21).Formula = "=D2*E2"
>> .Offset(0, 22).Formula = "=B2*D2"
>> .Offset(0, 23).Formula = "=C2*E2"
>> application.calculation=xlautomatic
>>
>> .Offset(0, 20).Value = .Offset(0, 20).Value
>> .Offset(0, 21).Value = .Offset(0, 21).Value
>> .Offset(0, 22).Value = .Offset(0, 22).Value
>> .Offset(0, 23).Value = .Offset(0, 23).Value
>> end with
>> End Sub
>> ada selisih waktunya (ukur waktu proses dengan timer ya) gak dengan yang
>> tes_14
>> kemudian coba juga kalau menjadi :
>> Sub Tes_14b()
>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>> with rng.Offset(0, 20)
>> .Formula = "=B2*C2"
>> .Value = .Value
>> end with
>>
>> with rng.Offset(0, 21)
>> .Formula = "=D2*E2"
>> .Value = .Value
>> end with
>>
>> with rng.Offset(0, 22)
>> .Formula = "=B2*D2"
>> .Value = .Value
>> end with
>>
>> with rng.Offset(0, 23)
>> .Formula = "=C2*E2"
>> .Value = .Value
>> end with
>> End Sub
>> ada selisih waktu atau tidak.
>>
>>
>> Dari hasil diatas . bila di kolom P berisi 3 macam formula .
>> maka harus di buat 3 macam range : misal
>> rng_A ---- > untuk formula A
>> rng_B -----> untuk formula B
>>
>> rng_C -----> untuk formula C
>> Atau
>> rng_D ---> kemudian formula A, B ,C bergantian di input
>> >> Pertanyaannya, kenapa kok kolom P harus diisi 3 formula ?
>> Jika 3 formula itu karena keadaannya berbeda-beda, mungkin bisa dibuat
>> formula universalnya.
>> Contoh : rng.formula="=if(a2=1,b2*c2,if(a2=2,d2*c2,e2*b2))"
>> hehehe... kayanya bukan seperti itu ya... :)
>> ya wis lah atur aja...
>>
>>
>> mengenai Temp file . ini akan membebani memory kah ?
>> Bila file : 'M:\data_saham\LK_WEB_100.xlsm = 55 mb, maka memory yg akan
>> terpakai juga 55 MB
>> >> Formula merujuk range di worksheet lain akan lebih lebih lambat
>> dibanding merujuk di worksheet yang sama.
>> Formula merujuk file lain lebih lambat dibanding merujuk di file yang
>> sama.
>> Formula merujuk ke file lain yang tertutup katanya bisa lebih lama lagi.
>>
>>
>> cara penulisannya di macro dengan file :
>> 'M:\data_saham\LK_WEB_100.xlsm untuk di jadikan file temp . dan cara
>> penghapusnya .
>> >> ke sheet temporary, bukan file temporary. Jadi konsepnya adalah
>> mengusahakan formula merujuk ke workbook yang sama tapi beda sheet jika
>> tidak mungkin merujuk ke sheet yang sama.
>> dim wbkA as workbook, wbkR as workbook
>> dim shtA as worksheet, shtTmp as worksheet
>> dim rng as range
>>
>> set wbka=thisworkbook
>> set shta=activesheet
>> set shttmp=sheets.add(after:=sheets(sheets.count))
>> shttmp.name="Temp"
>>
>> set wbkr=workbooks.open("fullfilename_si_file_lain",readonly:=true)
>> wbkr.sheets("nama sheet referensi yang dirujuk
>> formula").range("a1:ai32000").copy
>> shttmp.range("a1").pastespecial xlpastevalues
>> wbkr.close false
>> wbka.activate
>> shta.activate
>>
>> set rng=shta.range("p6:p500000")
>> rng.formula="formula yang bunyinya sudah merujuk ke sheet bernama temp"
>> shta.calculate
>> rng.value=rng.value
>>
>> application.displayalerts=false
>> shttmp.delete
>> application.displayalerts=true
>>
>> Wassalam,
>> Kid.
>>
>>
>> 2012/11/26 lkm jktind <lkmjktind@gmail.com>
>>
>>> Pak Kid.
>>>
>>> dengan data sebanyak 506.286 row.
>>> Tes_14 waktunya 9 detik.
>>> Tes_12 waktunya sudah 30 menit belum selesai.
>>>
>>> Sub Tes_14()
>>> Range("A2").Select
>>> Set Rng = Range("A2", Range("A1000000").End(xlUp))
>>> Rng.Offset(0, 20).Formula = "=B2*C2"
>>> Rng.Offset(0, 21).Formula = "=D2*E2"
>>> Rng.Offset(0, 22).Formula = "=B2*D2"
>>> Rng.Offset(0, 23).Formula = "=C2*E2"
>>> Rng.Offset(0, 20).Value = Rng.Offset(0, 20).Value
>>> Rng.Offset(0, 21).Value = Rng.Offset(0, 21).Value
>>> Rng.Offset(0, 22).Value = Rng.Offset(0, 22).Value
>>> Rng.Offset(0, 23).Value = Rng.Offset(0, 23).Value
>>> End Sub
>>>
>>> Sub tes_12()
>>>
>>> For r = 2 To s
>>> Cells(r, 21).Value = Cells(r, 2) * Cells(r, 3)
>>> Cells(r, 22).Value = Cells(r, 4) * Cells(r, 5)
>>> Cells(r, 23).Value = Cells(r, 2) * Cells(r, 4)
>>> Cells(r, 24).Value = Cells(r, 3) * Cells(r, 5)
>>> Next
>>>
>>> Dari hasil diatas . bila di kolom P berisi 3 macam formula .
>>> maka harus di buat 3 macam range : misal
>>> rng_A ---- > untuk formula A
>>> rng_B -----> untuk formula B
>>>
>>> rng_C -----> untuk formula C
>>> Atau
>>> rng_D ---> kemudian formula A, B ,C bergantian di input
>>>
>>> untuk resize : akan saya pelajari lebih lanjut.
>>>
>>> mengenai Temp file . ini akan membebani memory kah ?
>>> Bila file : 'M:\data_saham\LK_WEB_100.xlsm = 55 mb, maka memory yg akan
>>> terpakai juga 55 MB
>>>
>>> Mohon pak Kid memberikan contoh : cara penulisannya di macro dengan file
>>> :
>>> 'M:\data_saham\LK_WEB_100.xlsm untuk di jadikan file temp . dan cara
>>> penghapusnya .
>>>
>>>
>>> Terima kasih .
>>>
>>> Salam
>>>
>>> Lukman
>>>
>>>
>>
>
>

Mon Nov 26, 2012 7:00 am (PST) . Posted by:

"Emi" emilestariklcc

Terima kasih Pak Kid,

Saya mau tanya.

1) Mengapa Events harus di turn off dan turn on semula setelah selesai?
2) Apakah fungsi Parent.Calculate dan bagaimana ia bekerja?

Terima kasih.

_Emi Lestari

With Application                                        'pada aplikasi
        .ScreenUpdating = False                                 'turnoff refresh tampilan
       .EnableEvents = False                                   'turnoff event
        
        'hitung record berdasar data numerik di kolom D sheet Input
        lRec = .WorksheetFunction.Count(Sheet1.Range("d1").EntireColumn)
        If lRec > 0 Then                                        'ada record
            With Sheet2.Range("a4")                                 'pada header target
                .CurrentRegion.Offset(4).EntireRow.Delete                           'hapus record data lama
                Sheet3.Range("a5").EntireRow.Copy .Offset(1).Resize(lRec)           'copy formula baru
               .Parent.Calculate                                                   'kalkulasi sheet
                .CurrentRegion.Offset(4).Value = .CurrentRegion.Offset(4).Value     'di-values-ken
            End With                                                'selesai pada header target
        End If                                                  'akhir blok cek ada record
        
        .EnableEvents = True                                    'turnon event
        .ScreenUpdating = True                                  'turnon refresh tampilan
    End With                                                'selesai pada aplikasi

________________________________
From: Mr. Kid <mr.nmkid@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Sunday, November 25, 2012 4:19 PM
Subject: Re: [belajar-excel] Menulis formula di makro


 
Dimohon file lampiran pada posting berikutnya tidak melebihi batas peraturan milis.

mbak Emi,

File terlampir memanfaatkan sebuah sheet berisi template formula alias formula yang bisa di-copy ke sheet target.
Prosesnya :
1. menghitung jumlah record input (berdasar kolom D)
2. membersihkan hasil lama yang di target
3. copy formula dari template formula ke sheet target sebanyak jumlah record di input
4. di-values-ken

Wassalam,
Kid.

2012/11/23 Emi <emilestariklcc@yahoo.com>



>Gurudan teman BeExcel,
>Data di sheet ini adalah hasil input manual di sheet "InputArea"
>Saya mau mempelajari bagaimana  menulis makro sebagai ganti kepada formula .
>Artinya semua formula di sheet ini ditulis di VBE dan bukan di sheet ini.
>Terima kasih
>-Emi Lestari



>

Mon Nov 26, 2012 7:47 am (PST) . Posted by:

"ngademin Thohari" ngademinth

mr. kid
formula di cobi rubah ke makro
IF(N(G3),N(G3),IFERROR(IFERROR(LOOKUP(9^9,MID(SUBSTITUTE(C2," ",REPT(" ",99)),(ROW($1:$5)-1)*99+1,99)*1),1*MID(SUBSTITUTE(D2," ",REPT(" ",99)),100,99)),0))

formula ini saya coba untuk mengutak ngatik di userform disamping juga untuk pembelajaran, mohon pencerahannya?

terima kasih

amin

________________________________
Dari: Mr. Kid <mr.nmkid@gmail.com>
Kepada: belajar-excel@yahoogroups.com
Dikirim: Minggu, 25 November 2012 16:07
Judul: Re: [belajar-excel] memakai Material control userform


 
Pak Amin,

Kalau saya,
1. Buat sebuah sheet baru anggap saja sebagai coretan_input. Isinya hanya header dan sebuah baris data termasuk formulanya. Semua cell yang nilainya tergantung control textbox dibiarkan kosong
2. Semua textbox yang diinput user, setiap ada pengubahan isi (event change) melakukan penulisan ke cell terkait di sheet coretan_input tadi.
3. Semua textbox yang merupakan hasil formula, mengambil nilai cell dari sheet coretan_input yang berisi formula yang terkait
4. ketika tombol Simpan, lakukan copas value dari sheet coretan input ke baris tujuan di sheet data (milik anda namanya form input)

itu kalau saya loh ya, soalnya males repot. Biarkan Excel membantu semaksimalnya saja. Toh satu atau banya sheet coretan juga gak ada efeknya, karena cuma dipakai secara lokal.

Wassalam,
Kid.

2012/11/25 ngademin Thohari <ngademinth@yahoo.co.id>


>.Be-exceller
>
>
>terima kasih kepada alm. mba siti vi, yang telah memberikan pembelajaran sehingga bermanfaat,
>
>
>memodifikasi dari milis mba siti vi saya ingin membuat input material contol dengan menggunakan user form, gabungan dari pembelajaran mr. kid dan rekan2, master2 yang lain,
>
>
>saya lampirkan data2nya, dimana data tersebut adalah excel yang akan saya ganti memakai userform
>
>
>terima kasih
>
>
>amin
>
>
>
>

Mon Nov 26, 2012 7:52 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Maaf Pak,

saya ndak mudeng.
Formula itu mau diapakan ?
Hubungannya dengan userform itu seperti apa ?
textbox dipasangi formula atau apa ?
user input kemana ?
kalau user input di textbox, lalu maksudnya cell c2 ingin diganti jadi
textbox gitu ya ?
sak jan jan nya mau diapakan seh ?

bisa dijelaskan lebih gamblang kah ?
ndak usah irit kalimat Pak, santai aja... kalimatnya banyak juga oke kok.

Wassalam,
Kid.

2012/11/26 ngademin Thohari <ngademinth@yahoo.co.id>

> **
>
>
> mr. kid
> formula di cobi rubah ke makro
> IF(N(G3),N(G3),IFERROR(IFERROR(LOOKUP(9^9,MID(SUBSTITUTE(C2," ",REPT("
> ",99)),(ROW($1:$5)-1)*99+1,99)*1),1*MID(SUBSTITUTE(D2," ",REPT("
> ",99)),100,99)),0))
>
> formula ini saya coba untuk mengutak ngatik di userform disamping juga
> untuk pembelajaran, mohon pencerahannya?
>
> terima kasih
>
>
> amin
> ------------------------------
> *Dari:* Mr. Kid <mr.nmkid@gmail.com>
> *Kepada:* belajar-excel@yahoogroups.com
> *Dikirim:* Minggu, 25 November 2012 16:07
> *Judul:* Re: [belajar-excel] memakai Material control userform
>
>
> Pak Amin,
>
> Kalau saya,
> 1. Buat sebuah sheet baru anggap saja sebagai coretan_input. Isinya hanya
> header dan sebuah baris data termasuk formulanya. Semua cell yang nilainya
> tergantung control textbox dibiarkan kosong
> 2. Semua textbox yang diinput user, setiap ada pengubahan isi (event
> change) melakukan penulisan ke cell terkait di sheet coretan_input tadi.
> 3. Semua textbox yang merupakan hasil formula, mengambil nilai cell dari
> sheet coretan_input yang berisi formula yang terkait
> 4. ketika tombol Simpan, lakukan copas value dari sheet coretan input ke
> baris tujuan di sheet data (milik anda namanya form input)
>
> itu kalau saya loh ya, soalnya males repot. Biarkan Excel membantu
> semaksimalnya saja. Toh satu atau banya sheet coretan juga gak ada efeknya,
> karena cuma dipakai secara lokal.
>
> Wassalam,
> Kid.
>
>
> 2012/11/25 ngademin Thohari <ngademinth@yahoo.co.id>
>
> **
>
> .Be-exceller
>
> terima kasih kepada alm. mba siti vi, yang telah memberikan pembelajaran
> sehingga bermanfaat,
>
> memodifikasi dari milis mba siti vi saya ingin membuat input material
> contol dengan menggunakan user form, gabungan dari pembelajaran mr. kid dan
> rekan2, master2 yang lain,
>
> saya lampirkan data2nya, dimana data tersebut adalah excel yang akan saya
> ganti memakai userform
>
> terima kasih
>
> amin
>
>
>
>
>
>
>
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
---------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar