Pak Kid.
Maaf sebelum nya yg hendak saya kabarkan. itu ternyata ada kesalahan dalam
file nya.
di range A1:E506286 : ini data .
di range F2:I506286 : ini ada formula perkalian.
dan dipaling kanan ada 4 colum lagi yg untuk memriksa hasil nya .
dengan kondisi seperti itu , maka hasil nya seperti yg telah saya sampaikan.
Kemudian dites lagi dengan data hanya di range A1:F506286.
dengan komputer A : dengan spek : intel 3450 I5 . dan memory 16 gb.
hasil nya sebagai berikut :
Tes_12 : 43.87240
Tes_14 : 3.23438
Tes_14a : 3.19010
Tes_14b: 3.16667
itu hasil rata dari tes sebanyak 3 kali .
dengan komputer B : dengan spek : intel core to duo T7300 dengan memory 4
gb.
data di flash disk Data di harddisk
Tes_12 : 93.39453 92.50781
Tes_14 : 8.67578 8.36906
Tes_14a : 7.84766 12.33984
Tes_14b : 8.62891 11.03125
Dengan komputer A :
s = 506286
Tes_17 : 13.69531
For r = 2 To s
Cells(r, 6).Value = Cells(r, 2) + Cells(r, 3) + Cells(r, 4) +
Cells(r, 5)
Tes_18 : 16.39063
For r = 2 To s
Cells(r, 7).Value =
Application.WorksheetFunction.Sum(Range("B2:E2"))
Tes_19 : 20.47656
For r = 2 To s
Cells(r, 8).Value = Evaluate("=SUM(B2:E2)")
Tes_20 : 80.28125
For r = 2 To 1000
Cells(r, 9).Formula = "=SUM(B2:E2)"
Terakhir mau membandingkan : vlookup+ macth , hllopkup + macth , index ,
sumproduct. :
: sumif , sumifs , sumproduct.
kedua function itu yg banyak di gunakan.
Selamat malam .
Salam dari
Lukman
2012/11/26 Mr. Kid <[email protected]>
> **
>
>
> Makasih Pak Lukman.
> Maaf kalau merepotkan.
>
> Wassalam,
> Kid.
> On Nov 26, 2012 11:22 PM, "lkm jktind" <[email protected]> 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 <[email protected]>
>>
>>> **
>>>
>>>
>>> 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 <[email protected]>
>>>
>>>> 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
>>>>
>>>>
>>>
>>
>