Sabtu, 24 Agustus 2013

[belajar-excel] Digest Number 2491

15 New Messages

Digest #2491
1e
Re: Tes Looping For ... Next dan For each ... Next by "hendrik karnadi" hendrikkarnadi
1f
Re: Tes Looping For ... Next dan For each ... Next by "hendrik karnadi" hendrikkarnadi
1g
Re: Tes Looping For ... Next dan For each ... Next by "Mr. Kid" nmkid.family@ymail.com
1h
Re: Tes Looping For ... Next dan For each ... Next by "hendrik karnadi" hendrikkarnadi
1i
Re: Tes Looping For ... Next dan For each ... Next by "Mr. Kid" nmkid.family@ymail.com
3a
Re: Masalah pilih data dg List Box by "Mr. Kid" nmkid.family@ymail.com
4a
Re: Memindahkan data dr horizontal ke vertikal by "Mr. Kid" nmkid.family@ymail.com

Messages

Sat Aug 24, 2013 4:48 am (PDT) . Posted by:

"summonery" summonery

Hal tersebut (penyebab gagalnya transpose) dikarenakan adanya limitasi
dari function TRANPOSE yang ditetapkan oleh Microsoft,Mulai Microsoft
Excel 2002, limitasi function TRANSPOSE telah dinaikkan dari 5461 elemen
array meningkat menjadi 65536.Sampai Excel 2013 pun, limitasi function
TRANSPOSE masih belum berubah, tetap pada limitasi 65536 elemen.
(Terlewat atau disengaja agar tetap compatible dengan versi Excel
sebelumnya? atau alasan lain? hanya MSFT yang tau sebenarnya)
O iya, saya juga ingin nyumbang script juga, basisnya masih dengan
susunan script dari Miss Jan (diuji pada 100.000 rows),
Sub Tes6() Dim TStart As Single Dim MyArray(1 To 100000, 1 To 1)
As Long Dim i As Long TStart = Timer For i = 1 To 100000
MyArray(i, 1) = i Next Cells(1, 9).Resize(100000) = MyArray
Range("F5").Value = Format(Timer - TStart, "#,##0.0000")End Sub

>semoga bermanfaat

--- In belajar-excel@yahoogroups.com, Jan Raisin wrote:
>
> boleh jawab kan pak Hendrik..
>
> sepengetahuan Jan, For Each - Next bekerja lebih cepat dibandingkan
dengan
> For To - Next, karena pada For Each tidak ada proses menghitung lebih
dahulu
> ilustrasinya adalah begini:
>
> Di atas meja makan ada combro (kenapa combro? karena Jan senang makan
> combro xixixixi ^_^)
>
> perintah 1: Untuk setiap combro yang ada, makan sampai habis >> for
each
> akan lebih cepat prosesnya jika dibandingkan dengan
>
> perintah 2: Untuk combro ke 1 sampai ke sekian makan sampai habis >>
for to
> karena pada perintah ke-2 ada proses menghitung dahulu sebelum
Be-Exceller
> memakan combro yang ada di atas meja
>
> Tetapi hal ini akan akan berbeda jika ada pekerjaan yang harus
dijalankan
> lagi di dalam blok for each
> pekerjaannya mana? bisa dilihat dari setiap titik yang ada dalam
script
> 1 buah titik mewakili 1 buah pekerjaan atau proses
>
> misal:
> range("a1").select
> selection.value = 1
>
> akan diproses lebih lama dibandingkan script
> range("a1").value = 1
>
> walau pun perbedaannya di komputer sekarang hampir tidak terasa
>
> coba lihat di prosedur Tes3 dan Tes4 saat akan memasukan nilai ada 1
buah
> pekerjaan yang harus dilakukan dahulu yaitu mencari nilai barisnya
terlebih
> dahulu
> sedangkan di prosedur Tes2 tidak ada pekerjaan tersebut
>
> oia.. Jan mau nyumbang script.. tapi minta tolong semua batasannya
> diturunin dari 100k baris menjadi 10k baris
> karena pada saat proses transpose untuk 100k selalu gagal.. mungkin
nanti
> mr Kid atau pak Anton bisa memberikan penjelasan penyebab gagalnya
> transpose tersebut.
>
> prosesnya memanfaatkan array, karena proses baca tulis ke range lebih
> lambat dibandingkan proses baca tulis melalui array
>
> Sub Tes5()
> Dim TStart As Single
> Dim myArray(0 To 9999) As Long
> Dim i As Long
> Dim rng As Range
>
> TStart = Timer
> For i = 1 To 10000
> myArray(i - 1) = i
> Next i
> Set rng = Range("o1:o10000")
> rng.Value = Application.WorksheetFunction.Transpose(myArray)
> Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
> End Sub
>
> silakan coba dibandingkan hasilnya, di komputer Jan script tersebut
> berjalan 32 x lebih cepat dibandingkan Tes2
>
> salam,
>
>
> -Miss Jan Raisin-
>
>
> Pada 24 Agustus 2013 11.25, hendrik karnadi hendrikkarnadi@...menulis:
>
> > **
> >
> >
> > Dear Be Excellers,
> > Terlampir adalah hasil uji coba (tes) Looping For ... Next dan For
each
> > ... Next pake timer.
> >
> > Pertanyaan:
> > Mengapa dengan menggunakan For ... Next (Tes2, tanpa formula)
hasilnya
> > lebih cepat dibandingkan dengan For each ... Next (Tes3 dan Tes 4).
> >
> > Salam,
> > HK
> >
> >
> >
>

Sat Aug 24, 2013 5:00 am (PDT) . Posted by:

"lkm jktind" lkmjkt

Terima kasih pak.

Yg saya gunakan dengan spek : apakah kalah di prosessor nya ?

Mungkin saat proses walaupun core nya banyak nga ada guna nya ( nga
terpakai)

Gambar dibawah ini setelah proses selesai.

Gambar di bawah ini setelah proses selesai.

Gambar dibawah ini : diambil proses baru berlangsung :

Gambar dibawah ini diambil proses baru berlangsung :

Kesimpulan nya : apakah untuk proses data excel lebih membutuhkan lebih
penting Ghz yg tinggi . dari pada jumlah core yg banyak tapi Ghz nya
rendah ?

sedangkan memory tidak terlalu membutuh memory yg besar (banyak) ?

2013/8/24 De Premor <de@premor.net>

> Ini Spec Desktop yang saya gunakan buat ngetes tadi, cuman pakai i3 @ 3.3
> Ghz, OS 64 Bit dengan RAM 8 Gb
>
>
>
> On 24-08-2013 17:04, lkm jktind wrote:
>
>
>
> Pak De Premor
> Tanya : Komputer yg bapak gunakan itu dengan spek seprti apa ? dan
> berapa memory nya ?
>
>
> dengan komputer ku , berbeda jauh hasilnya ?
>
>
>
> Awal Optimasi 1 Optimasi 2 589.531,00 detik 35.313,00 detik
> 35.547,00 detik 24.063,00 detik 22.227,00 detik 22.344,00 detik
> 25.898,00 detik 23.828,00 detik 24.336,00 detik 26.133,00 detik
> 23.516,00 detik 23.750,00 detik
>
>
>
>
>
>
>
>
>
> 2013/8/24 De Premor <de@premor.net>
>
>> Idem sama mis Jan
>>
>>
>>
>> Optimasi 1 : Menambahkan routine untuk mematikan AutoCalculation
>> Optimasi 2: Mengganti routine di Tes3 => *Range("C" & r.Row) = r.Row*menjadi
>> *r = r.Row
>>
>> *Kenapa di Optimasi 2 saya ganti, ya karena disitulah kelebihan For
>> Each...Next, si "*r*" itu sudah ketahuan dengan jelas tempatnya dan
>> segala sesuatunya, jadi tidak perlu ditunjukin lagi, jadi bisa menghemat
>> waktu si excel buat mengecek r.Row itu isinya berapa.
>>
>> CMIIW
>>
>>
>>
>> On 24-08-2013 14 <24-08-2013%2014>:10, Jan Raisin wrote:
>>
>>
>> boleh jawab kan pak Hendrik..
>>
>> sepengetahuan Jan, For Each - Next bekerja lebih cepat dibandingkan
>> dengan For To - Next, karena pada For Each tidak ada proses menghitung
>> lebih dahulu
>> ilustrasinya adalah begini:
>>
>> Di atas meja makan ada combro (kenapa combro? karena Jan senang makan
>> combro xixixixi ^_^)
>>
>> perintah 1: Untuk setiap combro yang ada, makan sampai habis >> for each
>> akan lebih cepat prosesnya jika dibandingkan dengan
>>
>> perintah 2: Untuk combro ke 1 sampai ke sekian makan sampai habis >>
>> for to
>> karena pada perintah ke-2 ada proses menghitung dahulu sebelum
>> Be-Exceller memakan combro yang ada di atas meja
>>
>> Tetapi hal ini akan akan berbeda jika ada pekerjaan yang harus
>> dijalankan lagi di dalam blok for each
>> pekerjaannya mana? bisa dilihat dari setiap titik yang ada dalam script
>> 1 buah titik mewakili 1 buah pekerjaan atau proses
>>
>> misal:
>> range("a1").select
>> selection.value = 1
>>
>> akan diproses lebih lama dibandingkan script
>> range("a1").value = 1
>>
>> walau pun perbedaannya di komputer sekarang hampir tidak terasa
>>
>> coba lihat di prosedur Tes3 dan Tes4 saat akan memasukan nilai ada 1
>> buah pekerjaan yang harus dilakukan dahulu yaitu mencari nilai barisnya
>> terlebih dahulu
>> sedangkan di prosedur Tes2 tidak ada pekerjaan tersebut
>>
>> oia.. Jan mau nyumbang script.. tapi minta tolong semua batasannya
>> diturunin dari 100k baris menjadi 10k baris
>> karena pada saat proses transpose untuk 100k selalu gagal.. mungkin nanti
>> mr Kid atau pak Anton bisa memberikan penjelasan penyebab gagalnya
>> transpose tersebut.
>>
>> prosesnya memanfaatkan array, karena proses baca tulis ke range lebih
>> lambat dibandingkan proses baca tulis melalui array
>>
>> Sub Tes5()
>> Dim TStart As Single
>> Dim myArray(0 To 9999) As Long
>> Dim i As Long
>> Dim rng As Range
>>
>> TStart = Timer
>> For i = 1 To 10000
>> myArray(i - 1) = i
>> Next i
>> Set rng = Range("o1:o10000")
>> rng.Value = Application.WorksheetFunction.Transpose(myArray)
>> Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
>> End Sub
>>
>> silakan coba dibandingkan hasilnya, di komputer Jan script tersebut
>> berjalan 32 x lebih cepat dibandingkan Tes2
>>
>> salam,
>>
>>
>> -Miss Jan Raisin-
>>
>>
>> Pada 24 Agustus 2013 11.25, hendrik karnadi <hendrikkarnadi@yahoo.com>menulis:
>>
>>>
>>> Dear Be Excellers,
>>> Terlampir adalah hasil uji coba (tes) Looping For ... Next dan For each
>>> ... Next pake timer.
>>>
>>> Pertanyaan:
>>> Mengapa dengan menggunakan For ... Next (Tes2, tanpa formula) hasilnya
>>> lebih cepat dibandingkan dengan For each ... Next (Tes3 dan Tes 4).
>>>
>>> Salam,
>>> HK
>>>
>>>
>>
>
>

Sat Aug 24, 2013 7:21 am (PDT) . Posted by:

"lkm jktind" lkmjkt

Maaf gambarnya berantakan.

Apakah untuk proses data excel . lebih penting/lebih cepat Ghz yg tinggi .
dari pada jumlah core yg banyak tapi Ghz nya rendah ?

Lalu apakah ada guna nya memory yg banyak (besar ) untuk file data excel
?

NB:

Sat Aug 24, 2013 8:31 am (PDT) . Posted by:

"De Premor" de.premor

Setahu saya, maksud dari Mhz/Ghz dalam processor adalah kemampuan yang
dimiliki oleh processor untuk memproses data perdetiknya, misal
processor dengan clock 3,1 Ghz berarti si processor masing2 corenya
mampu memproses 3,1 milyar komputasi perdetiknya, jadi semakin tinggi
clock nya maka komputer akan semakin cepat, itulah mengapa para gamer
berlomba2 untuk mengoverclockprocessor2 mereka guna mendapatkan
kecepatan gaming yang woow

Sedangkan Core adalah untuk membagi tugaskalkulasi, processor ber core
banyak akan terasa bedanya dengan yang sedikit saat menjalankan program2
berat/ memerlukan komputasi tinggi (video editing, gaming, dll)

Kemudian RAM, seperti yang kita ketahui RAM ntu bisa dikatakan sebagai
temporary hardisk, maksudnya ketika kita membuka file exceldari hardisk,
maka dia akan disimpan dimemory si RAM biar akses ke si file lebih
cepat, jadi kalau hanya untuk komputasi kecil2'an seperti file excel
tadi sebenernya nga diperlukan RAM segedhe gaban, beda kisahnya kalau
filenya bermega2 dan buanyak file yang musti dibuka bersamaan, nah baru
deh terasa, si excel bakalan teriak2 Insuficient memory, jadi gunanya
ram gedhe biar kita bisa membuka buanyak file/program bersamaan.

Tes:
1. Buka Task Manager,kemudian pilih tab Performance, biarin
2. Buka File / Program (apa aja boleh, misal buka Firefox, trus buka
halaman banyak2) trus diamkan, perhatikan di bagian CPU Usage dan Memory
Usage, CPU Usage akan melonjak sebentar trus turun lagi, sedangkan si
Memory Usage akan bertambah dan nga turun2 sebelum program di close.
3. Coba buka Program Editing Foto, Photoshop misalnya, trus coba edit2
apa gitu, perhatikan kelakuan grafik Memory dan CPU nya

Kira2 begitu :D

Pada 24/08/2013 19:15, lkm jktind menulis:
> Maaf gambarnya berantakan.
>
> Apakah untuk proses data excel . lebih penting/lebih cepat Ghz yg
> tinggi . dari pada jumlah core yg banyak tapi Ghz nya rendah ?
>
> Lalu apakah ada guna nya memory yg banyak (besar ) untuk file data
> excel ?
>
> NB:
>
>
>

Sat Aug 24, 2013 9:53 am (PDT) . Posted by:

"hendrik karnadi" hendrikkarnadi

Terima kasih Miss Jan atas variasi codenya.

Hasil tes terakhir dengan looping 60000 adalah sebagai berikut:
16.81  detik<--TES1 'For ... Next dengan formula
1.24  detik<--TES2 'For ... Next tanpa formula
1.37  detik<--TES3 'For each ... Next tanpa formula (For each r in Rng)
1.34  detik<--TES4 'For each ... Next dengan formula (For each Rng in Rng)
0.05  detik<--TES5 (MJR) 'Tranpose Array

Code Miss Jan saya modifikasi sbb:
Sub Tes5()
    Dim TStart As Single
    Dim myArray(0 To 59999) As Long 'sebelumnya 9999
    Dim i As Long
    Dim rng As Range
    
    TStart = Timer
    For i = 1 To 60000 'sebelumnya 10000
        myArray(i - 1) = i
    Next i
    Set rng = Range("o1:o60000") 'sebelumnya 10000
    rng.Value = Application.WorksheetFunction.Transpose(myArray)
    Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
End Sub

Jadi code Miss Jan is the best.

Kesimpulannya:
- Tes2 lebih cepat dari Tes3 dan Tes4 (saya sependapat dengan Miss Jan) karena ada proses pencarian r atau Rng pada       code: Range("C" & r.Row) = r.Rowatau Range("D" & Rng.Row) = Rng.Row
- Proses Array jauh lebih cepat, namun menyisakan satu pertanyaan .... (mengapa 100k atau bahkan 70k selalu gagal         dengan pesan kesalahan "Type mismatch" pada code:
rng.Value = Application.WorksheetFunction.Transpose(myArray)

Salam,
HK

________________________________
From: Jan Raisin <miss.jan.raisin@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Saturday, 24 August 2013, 14:10
Subject: Re: [belajar-excel] Tes Looping For ... Next dan For each ... Next


 
boleh jawab kan pak Hendrik..

sepengetahuan Jan, For Each - Next bekerja lebih cepat dibandingkan dengan For To - Next, karena pada For Each tidak ada proses menghitung lebih dahulu
ilustrasinya adalah begini:

Di atas meja makan ada combro (kenapa combro? karena Jan senang makan combro xixixixi ^_^)

perintah 1: Untuk setiap combro yang ada, makan sampai habis >> for each
akan lebih cepat prosesnya jika dibandingkan dengan

perintah 2: Untuk combro ke 1 sampai ke sekian makan sampai habis >> for to
karena pada perintah ke-2 ada proses menghitung dahulu sebelum Be-Exceller memakan combro yang ada di atas meja

Tetapi hal ini akan akan berbeda jika ada pekerjaan yang harus dijalankan lagi di dalam blok for each
pekerjaannya mana? bisa dilihat dari setiap titik yang ada dalam script
1 buah titik mewakili 1 buah pekerjaan atau proses

misal:
range("a1").select
selection.value = 1

akan diproses lebih lama dibandingkan script
range("a1").value = 1

walau pun perbedaannya di komputer sekarang hampir tidak terasa

coba lihat di prosedur Tes3 dan Tes4 saat akan memasukan nilai ada 1 buah pekerjaan yang harus dilakukan dahulu yaitu mencari nilai barisnya terlebih dahulu
sedangkan di prosedur Tes2 tidak ada pekerjaan tersebut

oia.. Jan mau nyumbang script.. tapi minta tolong semua batasannya diturunin dari 100k baris menjadi 10k baris
karena pada saat proses transpose untuk 100k selalu gagal.. mungkin nanti mr Kid atau pak Anton bisa memberikan penjelasan penyebab gagalnya transpose tersebut.

prosesnya memanfaatkan array, karena proses baca tulis ke range lebih lambat dibandingkan proses baca tulis melalui array

Sub Tes5()
    Dim TStart As Single
    Dim myArray(0 To 9999) As Long
    Dim i As Long
    Dim rng As Range
    
    TStart = Timer
    For i = 1 To 10000
        myArray(i - 1) = i
    Next i
    Set rng = Range("o1:o10000")
    rng.Value = Application.WorksheetFunction.Transpose(myArray)
    Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
End Sub

silakan coba dibandingkan hasilnya, di komputer Jan script tersebut berjalan 32 x lebih cepat dibandingkan Tes2

salam,

-Miss Jan Raisin-

Pada 24 Agustus 2013 11.25, hendrik karnadi <hendrikkarnadi@yahoo.com> menulis:


>Dear Be Excellers,
>Terlampir adalah hasil uji coba (tes) Looping For ...  Next dan For each ...  Next pake timer.
>
>
>Pertanyaan:
>Mengapa dengan menggunakan For ...  Next (Tes2, tanpa formula) hasilnya lebih cepat dibandingkan dengan For each ... Next (Tes3 dan Tes 4).
>
>
>Salam,
>HK
>
>

Sat Aug 24, 2013 10:23 am (PDT) . Posted by:

"hendrik karnadi" hendrikkarnadi

Terima kasih Miss Jan & Pak De,

Dengan looping 60000 dan mengganti
Range("C" & r.Row) = r.Row menjadi r = r.Row
serta 
Range("D" & rng.Row) = rng.Row menjadi rng = rng.Row 
maka hasilnya menjadi:
16.11  detik<--TES1
1.25  detik<--TES2
0.95  detik<--TES3 (MJR/pak De)
0.94  detik<--TES4 (MJR/pak De)
0.06  detik<--TES5 (MJR)

Dengan perintah yang sama maka For each memang lebih cepat dari For (saja).

Salam,
HK

________________________________
From: De Premor <de@premor.net>
To: belajar-excel@yahoogroups.com
Sent: Saturday, 24 August 2013, 15:09
Subject: Re: [belajar-excel] Tes Looping For ... Next dan For each ... Next


Idem sama mis Jan

Optimasi 1 : Menambahkan routine untuk mematikan AutoCalculation
Optimasi 2: Mengganti routine di Tes3  => Range("C" & r.Row) = r.Row menjadi r = r.Row

Kenapa di Optimasi 2 saya ganti, ya karena disitulah kelebihan For Each...Next, si "r" itu sudah ketahuan dengan jelas tempatnya dan segala sesuatunya, jadi tidak perlu ditunjukin lagi, jadi bisa menghemat waktu si excel buat mengecek r.Row itu isinya berapa.

CMIIW

On 24-08-2013 14:10, Jan Raisin wrote:

 
>boleh jawab kan pak Hendrik..
>
>
>sepengetahuan Jan, For Each - Next bekerja lebih cepat dibandingkan dengan For To - Next, karena pada For Each tidak ada proses menghitung lebih dahulu
>ilustrasinya adalah begini:
>
>
>Di atas meja makan ada combro (kenapa combro? karena Jan senang makan combro xixixixi ^_^)
>
>
>perintah 1: Untuk setiap combro yang ada, makan sampai habis >> for each
>akan lebih cepat prosesnya jika dibandingkan dengan
>
>
>perintah 2: Untuk combro ke 1 sampai ke sekian makan sampai habis >> for to
>karena pada perintah ke-2 ada proses menghitung dahulu sebelum Be-Exceller memakan combro yang ada di atas meja
>
>
>Tetapi hal ini akan akan berbeda jika ada pekerjaan yang harus dijalankan lagi di dalam blok for each
>pekerjaannya mana? bisa dilihat dari setiap titik yang ada dalam script
>1 buah titik mewakili 1 buah pekerjaan atau proses
>
>
>misal:
>range("a1").select
>selection.value = 1
>
>
>akan diproses lebih lama dibandingkan script
>range("a1").value = 1
>
>
>walau pun perbedaannya di komputer sekarang hampir tidak terasa
>
>
>coba lihat di prosedur Tes3 dan Tes4 saat akan memasukan nilai ada 1 buah pekerjaan yang harus dilakukan dahulu yaitu mencari nilai barisnya terlebih dahulu
>sedangkan di prosedur Tes2 tidak ada pekerjaan tersebut
>
>
>oia.. Jan mau nyumbang script.. tapi minta tolong semua batasannya diturunin dari 100k baris menjadi 10k baris
>karena pada saat proses transpose untuk 100k selalu gagal.. mungkin nanti mr Kid atau pak Anton bisa memberikan penjelasan penyebab gagalnya transpose tersebut.
>
>
>prosesnya memanfaatkan array, karena proses baca tulis ke range lebih lambat dibandingkan proses baca tulis melalui array
>
>
>Sub Tes5()
>    Dim TStart As Single
>    Dim myArray(0 To 9999) As Long
>    Dim i As Long
>    Dim rng As Range
>    
>    TStart = Timer
>    For i = 1 To 10000
>        myArray(i - 1) = i
>    Next i
>    Set rng = Range("o1:o10000")
>    rng.Value = Application.WorksheetFunction.Transpose(myArray)
>    Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
>End Sub
>
>
>silakan coba dibandingkan hasilnya, di komputer Jan script tersebut berjalan 32 x lebih cepat dibandingkan Tes2
>
>
>salam,
>
>
>
>
>-Miss Jan Raisin-
>
>
>Pada 24 Agustus 2013 11.25, hendrik karnadi <hendrikkarnadi@yahoo.com> menulis:
>

>>Dear Be Excellers,
>>Terlampir adalah hasil uji coba (tes) Looping For ...  Next dan For each ...  Next pake timer.
>>
>>
>>Pertanyaan:
>>Mengapa dengan menggunakan For ...  Next (Tes2, tanpa formula) hasilnya lebih cepat dibandingkan dengan For each ... Next (Tes3 dan Tes 4).
>>
>>
>>Salam,
>>HK
>>
>>

Sat Aug 24, 2013 10:44 am (PDT) . Posted by:

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

Coba :
Public sub Ikutan()
dim rng as range
dim lArr(1 to 60000,1) as long, lLoop as long
dim dblTime as double
dbltime=timer
set rng=range("z1:z60000")
for lLoop=1 to 60000
larr(lLoop,1)=lLoop
next lLoop
rng.value=lArr
dblTime=timer-dbltime
msgbox "Waktu proses : " & dbltime & " detik"
end sub

Katanya fungsi transpose Excel terbatasi array-nya sebanyak 2^16, ada yang
bilang 2^24. Mungkin yang 2^16 di Office 32 bit dan 2^24 di Office 64 bit
(tapi gak yakin juga kalau begitu). Yang jelas, tidak ada dokumentasi resmi
tentang hal ini.

Sebuah cell pada dasarnya dibentuk sebagai array 2 dimensi (1 to 1,1 to 1)

Walaupun topik ini menggunakan baris kode seperti membuat nomor urut,
sebaiknya setiap pembuatan nomor urut tidak terpaku pada proses loop
seperti ini saja. Untuk proses komputasi yang tidak sekedar membuat nomor
urut, maka topik ini bisa menjadi sebuah wacana untuk menyusun solusi
masalah yang dihadapi pada dunia nyata.

Wassalam,
Kid.

2013/8/24 hendrik karnadi <hendrikkarnadi@yahoo.com>

> **
>
>
> Terima kasih Miss Jan atas variasi codenya.
>
> Hasil tes terakhir dengan looping 60000 adalah sebagai berikut:
> 16.81 detik <--TES1 'For ... Next dengan formula
> 1.24 detik <--TES2 'For ... Next tanpa formula
> 1.37 detik <--TES3 'For each ... Next tanpa formula (For each r in Rng)
> 1.34 detik <--TES4 'For each ... Next dengan formula (For each Rng in
> Rng)
> 0.05 detik <--TES5 (MJR) 'Tranpose Array
>
> Code Miss Jan saya modifikasi sbb:
> Sub Tes5()
> Dim TStart As Single
> Dim myArray(0 To 59999) As Long 'sebelumnya 9999
> Dim i As Long
> Dim rng As Range
>
> TStart = Timer
> For i = 1 To 60000 'sebelumnya 10000
> myArray(i - 1) = i
> Next i
> Set rng = Range("o1:o60000") 'sebelumnya 10000
> rng.Value = Application.WorksheetFunction.Transpose(myArray)
> Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
> End Sub
>
> Jadi code Miss Jan is the best.
>
> Kesimpulannya:
> - Tes2 lebih cepat dari Tes3 dan Tes4 (saya sependapat dengan Miss Jan)
> karena ada proses pencarian r atau Rng pada code: Range("C" &
> r.Row) = r.Row atau Range("D" & Rng.Row) = Rng.Row
> - Proses Array jauh lebih cepat, namun menyisakan satu pertanyaan ....
> (mengapa 100k atau bahkan 70k selalu gagal dengan pesan kesalahan "Type
> mismatch" pada code:
> rng.Value = Application.WorksheetFunction.Transpose(myArray)
>
> Salam,
> HK
>
>
> ------------------------------
> *From:* Jan Raisin <miss.jan.raisin@gmail.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Saturday, 24 August 2013, 14:10
> *Subject:* Re: [belajar-excel] Tes Looping For ... Next dan For each ...
> Next
>
>
> boleh jawab kan pak Hendrik..
>
> sepengetahuan Jan, For Each - Next bekerja lebih cepat dibandingkan dengan
> For To - Next, karena pada For Each tidak ada proses menghitung lebih dahulu
> ilustrasinya adalah begini:
>
> Di atas meja makan ada combro (kenapa combro? karena Jan senang makan
> combro xixixixi ^_^)
>
> perintah 1: Untuk setiap combro yang ada, makan sampai habis >> for each
> akan lebih cepat prosesnya jika dibandingkan dengan
>
> perintah 2: Untuk combro ke 1 sampai ke sekian makan sampai habis >> for to
> karena pada perintah ke-2 ada proses menghitung dahulu sebelum Be-Exceller
> memakan combro yang ada di atas meja
>
> Tetapi hal ini akan akan berbeda jika ada pekerjaan yang harus dijalankan
> lagi di dalam blok for each
> pekerjaannya mana? bisa dilihat dari setiap titik yang ada dalam script
> 1 buah titik mewakili 1 buah pekerjaan atau proses
>
> misal:
> range("a1").select
> selection.value = 1
>
> akan diproses lebih lama dibandingkan script
> range("a1").value = 1
>
> walau pun perbedaannya di komputer sekarang hampir tidak terasa
>
> coba lihat di prosedur Tes3 dan Tes4 saat akan memasukan nilai ada 1 buah
> pekerjaan yang harus dilakukan dahulu yaitu mencari nilai barisnya terlebih
> dahulu
> sedangkan di prosedur Tes2 tidak ada pekerjaan tersebut
>
> oia.. Jan mau nyumbang script.. tapi minta tolong semua batasannya
> diturunin dari 100k baris menjadi 10k baris
> karena pada saat proses transpose untuk 100k selalu gagal.. mungkin nanti
> mr Kid atau pak Anton bisa memberikan penjelasan penyebab gagalnya
> transpose tersebut.
>
> prosesnya memanfaatkan array, karena proses baca tulis ke range lebih
> lambat dibandingkan proses baca tulis melalui array
>
> Sub Tes5()
> Dim TStart As Single
> Dim myArray(0 To 9999) As Long
> Dim i As Long
> Dim rng As Range
>
> TStart = Timer
> For i = 1 To 10000
> myArray(i - 1) = i
> Next i
> Set rng = Range("o1:o10000")
> rng.Value = Application.WorksheetFunction.Transpose(myArray)
> Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
> End Sub
>
> silakan coba dibandingkan hasilnya, di komputer Jan script tersebut
> berjalan 32 x lebih cepat dibandingkan Tes2
>
> salam,
>
>
> -Miss Jan Raisin-
>
>
> Pada 24 Agustus 2013 11.25, hendrik karnadi <hendrikkarnadi@yahoo.com>menulis:
>
> **
>
> Dear Be Excellers,
> Terlampir adalah hasil uji coba (tes) Looping For ... Next dan For each
> ... Next pake timer.
>
> Pertanyaan:
> Mengapa dengan menggunakan For ... Next (Tes2, tanpa formula) hasilnya
> lebih cepat dibandingkan dengan For each ... Next (Tes3 dan Tes 4).
>
> Salam,
> HK
>
>
>
>
>

Sat Aug 24, 2013 11:02 am (PDT) . Posted by:

"hendrik karnadi" hendrikkarnadi

Terima kasih Mr Kid.
Untuk Looping 100000 waktunya hanya 0,063 detik, tapi angkanya 0 semua, bukan 1 s/d 100000.

Salam,
HK

________________________________
From: Mr. Kid <mr.nmkid@gmail.com>
To: BeExcel <belajar-excel@yahoogroups.com>
Sent: Sunday, 25 August 2013, 0:44
Subject: Re: [belajar-excel] Tes Looping For ... Next dan For each ... Next


 
Coba :
Public sub Ikutan()

    dim rng as range

    dim lArr(1 to 60000,1) as long, lLoop as long

    dim dblTime as double

    dbltime=timer

    set rng=range("z1:z60000")

    for lLoop=1 to 60000

         larr(lLoop,1)=lLoop

    next lLoop

    rng.value=lArr

    dblTime=timer-dbltime

    msgbox "Waktu proses : " & dbltime & " detik"
end sub

Katanya fungsi transpose Excel terbatasi array-nya sebanyak 2^16, ada yang bilang 2^24. Mungkin yang 2^16 di Office 32 bit dan 2^24 di Office 64 bit (tapi gak yakin juga kalau begitu). Yang jelas, tidak ada dokumentasi resmi tentang hal ini.

Sebuah cell pada dasarnya dibentuk sebagai array 2 dimensi (1 to 1,1 to 1)

Walaupun topik ini menggunakan baris kode seperti membuat nomor urut, sebaiknya setiap pembuatan nomor urut tidak terpaku pada proses loop seperti ini saja. Untuk proses komputasi yang tidak sekedar membuat nomor urut, maka topik ini bisa menjadi sebuah wacana untuk menyusun solusi masalah yang dihadapi pada dunia nyata.

Wassalam,

Kid.

2013/8/24 hendrik karnadi <hendrikkarnadi@yahoo.com>


>Terima kasih Miss Jan atas variasi codenya.
>
>
>Hasil tes terakhir dengan looping 60000 adalah sebagai berikut:
>16.81  detik<--TES1 'For ... Next dengan formula
>1.24  detik<--TES2 'For ... Next tanpa formula
>1.37  detik<--TES3 'For each ... Next tanpa formula (For each r in Rng)
>1.34  detik<--TES4 'For each ... Next dengan formula (For each Rng in Rng)
>0.05  detik<--TES5 (MJR) 'Tranpose Array
>
>
>Code Miss Jan saya modifikasi sbb:
>Sub Tes5()
>    Dim TStart As Single
>    Dim myArray(0 To 59999) As Long 'sebelumnya 9999
>    Dim i As Long
>    Dim rng As Range
>    
>    TStart = Timer
>    For i = 1 To 60000 'sebelumnya 10000
>        myArray(i - 1) = i
>    Next i
>    Set rng = Range("o1:o60000") 'sebelumnya 10000
>    rng.Value = Application.WorksheetFunction.Transpose(myArray)
>    Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
>End Sub
>
>
>Jadi code Miss Jan is the best.
>
>
>Kesimpulannya:
>- Tes2 lebih cepat dari Tes3 dan Tes4 (saya sependapat dengan Miss Jan) karena ada proses pencarian r atau Rng pada       code: Range("C" & r.Row) = r.Rowatau Range("D" & Rng.Row) = Rng.Row
>- Proses Array jauh lebih cepat, namun menyisakan satu pertanyaan .... (mengapa 100k atau bahkan 70k selalu gagal         dengan pesan kesalahan "Type mismatch" pada code:
>rng.Value = Application.WorksheetFunction.Transpose(myArray)
>
>
>Salam,
>HK
>
>
>
>
>
>________________________________
> From: Jan Raisin <miss.jan.raisin@gmail.com>
>To: belajar-excel@yahoogroups.com
>Sent: Saturday, 24 August 2013, 14:10
>Subject: Re: [belajar-excel] Tes Looping For ... Next dan For each ... Next
>
>
>

>boleh jawab kan pak Hendrik..
>
>
>sepengetahuan Jan, For Each - Next bekerja lebih cepat dibandingkan dengan For To - Next, karena pada For Each tidak ada proses menghitung lebih dahulu
>ilustrasinya adalah begini:
>
>
>Di atas meja makan ada combro (kenapa combro? karena Jan senang makan combro xixixixi ^_^)
>
>
>perintah 1: Untuk setiap combro yang ada, makan sampai habis >> for each
>akan lebih cepat prosesnya jika dibandingkan dengan
>
>
>perintah 2: Untuk combro ke 1 sampai ke sekian makan sampai habis >> for to
>karena pada perintah ke-2 ada proses menghitung dahulu sebelum Be-Exceller memakan combro yang ada di atas meja
>
>
>Tetapi hal ini akan akan berbeda jika ada pekerjaan yang harus dijalankan lagi di dalam blok for each
>pekerjaannya mana? bisa dilihat dari setiap titik yang ada dalam script
>1 buah titik mewakili 1 buah pekerjaan atau proses
>
>
>misal:
>range("a1").select
>selection.value = 1
>
>
>akan diproses lebih lama dibandingkan script
>range("a1").value = 1
>
>
>walau pun perbedaannya di komputer sekarang hampir tidak terasa
>
>
>coba lihat di prosedur Tes3 dan Tes4 saat akan memasukan nilai ada 1 buah pekerjaan yang harus dilakukan dahulu yaitu mencari nilai barisnya terlebih dahulu
>sedangkan di prosedur Tes2 tidak ada pekerjaan tersebut
>
>
>oia.. Jan mau nyumbang script.. tapi minta tolong semua batasannya diturunin dari 100k baris menjadi 10k baris
>karena pada saat proses transpose untuk 100k selalu gagal.. mungkin nanti mr Kid atau pak Anton bisa memberikan penjelasan penyebab gagalnya transpose tersebut.
>
>
>prosesnya memanfaatkan array, karena proses baca tulis ke range lebih lambat dibandingkan proses baca tulis melalui array
>
>
>Sub Tes5()
>    Dim TStart As Single
>    Dim myArray(0 To 9999) As Long
>    Dim i As Long
>    Dim rng As Range
>    
>    TStart = Timer
>    For i = 1 To 10000
>        myArray(i - 1) = i
>    Next i
>    Set rng = Range("o1:o10000")
>    rng.Value = Application.WorksheetFunction.Transpose(myArray)
>    Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
>End Sub
>
>
>silakan coba dibandingkan hasilnya, di komputer Jan script tersebut berjalan 32 x lebih cepat dibandingkan Tes2
>
>
>salam,
>
>
>
>
>-Miss Jan Raisin-
>
>
>Pada 24 Agustus 2013 11.25, hendrik karnadi <hendrikkarnadi@yahoo.com> menulis:
>
>
>> 
>>Dear Be Excellers,
>>Terlampir adalah hasil uji coba (tes) Looping For ...  Next dan For each ...  Next pake timer.
>>
>>
>>Pertanyaan:
>>Mengapa dengan menggunakan For ...  Next (Tes2, tanpa formula) hasilnya lebih cepat dibandingkan dengan For each ... Next (Tes3 dan Tes 4).
>>
>>
>>Salam,
>>HK
>>
>>
>
>

Sat Aug 24, 2013 11:08 am (PDT) . Posted by:

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

sorry bagian :
dim lArr(1 to 60000,1) as long, lLoop as long

menjadi :
dim lArr(1 to 60000,*1 to* 1) as long, lLoop as long

2013/8/25 Mr. Kid <mr.nmkid@gmail.com>

> Coba :
> Public sub Ikutan()
> dim rng as range
> dim lArr(1 to 60000,1) as long, lLoop as long
> dim dblTime as double
> dbltime=timer
> set rng=range("z1:z60000")
> for lLoop=1 to 60000
> larr(lLoop,1)=lLoop
> next lLoop
> rng.value=lArr
> dblTime=timer-dbltime
> msgbox "Waktu proses : " & dbltime & " detik"
> end sub
>
> Katanya fungsi transpose Excel terbatasi array-nya sebanyak 2^16, ada yang
> bilang 2^24. Mungkin yang 2^16 di Office 32 bit dan 2^24 di Office 64 bit
> (tapi gak yakin juga kalau begitu). Yang jelas, tidak ada dokumentasi resmi
> tentang hal ini.
>
> Sebuah cell pada dasarnya dibentuk sebagai array 2 dimensi (1 to 1,1 to 1)
>
> Walaupun topik ini menggunakan baris kode seperti membuat nomor urut,
> sebaiknya setiap pembuatan nomor urut tidak terpaku pada proses loop
> seperti ini saja. Untuk proses komputasi yang tidak sekedar membuat nomor
> urut, maka topik ini bisa menjadi sebuah wacana untuk menyusun solusi
> masalah yang dihadapi pada dunia nyata.
>
> Wassalam,
> Kid.
>
> 2013/8/24 hendrik karnadi <hendrikkarnadi@yahoo.com>
>
>> **
>>
>>
>> Terima kasih Miss Jan atas variasi codenya.
>>
>> Hasil tes terakhir dengan looping 60000 adalah sebagai berikut:
>> 16.81 detik <--TES1 'For ... Next dengan formula
>> 1.24 detik <--TES2 'For ... Next tanpa formula
>> 1.37 detik <--TES3 'For each ... Next tanpa formula (For each r in Rng)
>> 1.34 detik <--TES4 'For each ... Next dengan formula (For each Rng in
>> Rng)
>> 0.05 detik <--TES5 (MJR) 'Tranpose Array
>>
>> Code Miss Jan saya modifikasi sbb:
>> Sub Tes5()
>> Dim TStart As Single
>> Dim myArray(0 To 59999) As Long 'sebelumnya 9999
>> Dim i As Long
>> Dim rng As Range
>>
>> TStart = Timer
>> For i = 1 To 60000 'sebelumnya 10000
>> myArray(i - 1) = i
>> Next i
>> Set rng = Range("o1:o60000") 'sebelumnya 10000
>> rng.Value = Application.WorksheetFunction.Transpose(myArray)
>> Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
>> End Sub
>>
>> Jadi code Miss Jan is the best.
>>
>> Kesimpulannya:
>> - Tes2 lebih cepat dari Tes3 dan Tes4 (saya sependapat dengan Miss Jan)
>> karena ada proses pencarian r atau Rng pada code: Range("C" &
>> r.Row) = r.Row atau Range("D" & Rng.Row) = Rng.Row
>> - Proses Array jauh lebih cepat, namun menyisakan satu pertanyaan ....
>> (mengapa 100k atau bahkan 70k selalu gagal dengan pesan kesalahan "Type
>> mismatch" pada code:
>> rng.Value = Application.WorksheetFunction.Transpose(myArray)
>>
>> Salam,
>> HK
>>
>>
>> ------------------------------
>> *From:* Jan Raisin <miss.jan.raisin@gmail.com>
>> *To:* belajar-excel@yahoogroups.com
>> *Sent:* Saturday, 24 August 2013, 14:10
>> *Subject:* Re: [belajar-excel] Tes Looping For ... Next dan For each ...
>> Next
>>
>>
>> boleh jawab kan pak Hendrik..
>>
>> sepengetahuan Jan, For Each - Next bekerja lebih cepat dibandingkan
>> dengan For To - Next, karena pada For Each tidak ada proses menghitung
>> lebih dahulu
>> ilustrasinya adalah begini:
>>
>> Di atas meja makan ada combro (kenapa combro? karena Jan senang makan
>> combro xixixixi ^_^)
>>
>> perintah 1: Untuk setiap combro yang ada, makan sampai habis >> for each
>> akan lebih cepat prosesnya jika dibandingkan dengan
>>
>> perintah 2: Untuk combro ke 1 sampai ke sekian makan sampai habis >> for
>> to
>> karena pada perintah ke-2 ada proses menghitung dahulu sebelum
>> Be-Exceller memakan combro yang ada di atas meja
>>
>> Tetapi hal ini akan akan berbeda jika ada pekerjaan yang harus dijalankan
>> lagi di dalam blok for each
>> pekerjaannya mana? bisa dilihat dari setiap titik yang ada dalam script
>> 1 buah titik mewakili 1 buah pekerjaan atau proses
>>
>> misal:
>> range("a1").select
>> selection.value = 1
>>
>> akan diproses lebih lama dibandingkan script
>> range("a1").value = 1
>>
>> walau pun perbedaannya di komputer sekarang hampir tidak terasa
>>
>> coba lihat di prosedur Tes3 dan Tes4 saat akan memasukan nilai ada 1 buah
>> pekerjaan yang harus dilakukan dahulu yaitu mencari nilai barisnya terlebih
>> dahulu
>> sedangkan di prosedur Tes2 tidak ada pekerjaan tersebut
>>
>> oia.. Jan mau nyumbang script.. tapi minta tolong semua batasannya
>> diturunin dari 100k baris menjadi 10k baris
>> karena pada saat proses transpose untuk 100k selalu gagal.. mungkin nanti
>> mr Kid atau pak Anton bisa memberikan penjelasan penyebab gagalnya
>> transpose tersebut.
>>
>> prosesnya memanfaatkan array, karena proses baca tulis ke range lebih
>> lambat dibandingkan proses baca tulis melalui array
>>
>> Sub Tes5()
>> Dim TStart As Single
>> Dim myArray(0 To 9999) As Long
>> Dim i As Long
>> Dim rng As Range
>>
>> TStart = Timer
>> For i = 1 To 10000
>> myArray(i - 1) = i
>> Next i
>> Set rng = Range("o1:o10000")
>> rng.Value = Application.WorksheetFunction.Transpose(myArray)
>> Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
>> End Sub
>>
>> silakan coba dibandingkan hasilnya, di komputer Jan script tersebut
>> berjalan 32 x lebih cepat dibandingkan Tes2
>>
>> salam,
>>
>>
>> -Miss Jan Raisin-
>>
>>
>> Pada 24 Agustus 2013 11.25, hendrik karnadi <hendrikkarnadi@yahoo.com>menulis:
>>
>> **
>>
>> Dear Be Excellers,
>> Terlampir adalah hasil uji coba (tes) Looping For ... Next dan For each
>> ... Next pake timer.
>>
>> Pertanyaan:
>> Mengapa dengan menggunakan For ... Next (Tes2, tanpa formula) hasilnya
>> lebih cepat dibandingkan dengan For each ... Next (Tes3 dan Tes 4).
>>
>> Salam,
>> HK
>>
>>
>>
>>
>>
>
>

Sat Aug 24, 2013 6:49 pm (PDT) . Posted by:

"De Premor" de.premor

Proses Pembacaan dan Penulisan dari VBA ke Lembar Kerja dan sebaliknya
sangat berpengaruh pada kecepatan proses,

Setelah dilakukan pemangkasan kode untuk melihat kinerja si looping
saja, ternyata hasilnya sangat berbeda, karena si for next hanya
melakukan itungan biasa sedangkan for each next membaca masing masing
sel didalam range yang sudah ditentukan sebelumnya (100 Juta Cell)

Sub xTes2()
Dim trow, total, r
trow = Timer
For r = 1 To 100000000
Next
total = Timer - trow
Range("E2") = total
End Sub

Sub xTes3()
Dim trow, total, r As Range, Rng As Range
Set Rng = Range("A1:CV1000000&quot;)
trow = Timer
For Each r In Rng
Next
total = Timer - trow
Range("E3") = total
End Sub

On 25-08-2013 1:02, hendrik karnadi wrote:
> Terima kasih Mr Kid.
> Untuk Looping 100000 waktunya hanya 0,063 detik, tapi angkanya 0
> semua, bukan 1 s/d 100000.
>
> Salam,
> HK
>
> ----------------------------------------------------------
> *From:* Mr. Kid <mr.nmkid@gmail.com>
> *To:* BeExcel <belajar-excel@yahoogroups.com>
> *Sent:* Sunday, 25 August 2013, 0:44
> *Subject:* Re: [belajar-excel] Tes Looping For ... Next dan For each
> ... Next
>
> Coba :
> Public sub Ikutan()
> dim rng as range
> dim lArr(1 to 60000,1) as long, lLoop as long
> dim dblTime as double
> dbltime=timer
> set rng=range("z1:z60000")
> for lLoop=1 to 60000
> larr(lLoop,1)=lLoop
> next lLoop
> rng.value=lArr
> dblTime=timer-dbltime
> msgbox "Waktu proses : " & dbltime & " detik"
> end sub
>
> Katanya fungsi transpose Excel terbatasi array-nya sebanyak 2^16, ada
> yang bilang 2^24. Mungkin yang 2^16 di Office 32 bit dan 2^24 di
> Office 64 bit (tapi gak yakin juga kalau begitu). Yang jelas, tidak
> ada dokumentasi resmi tentang hal ini.
>
> Sebuah cell pada dasarnya dibentuk sebagai array 2 dimensi (1 to 1,1 to 1)
>
> Walaupun topik ini menggunakan baris kode seperti membuat nomor urut,
> sebaiknya setiap pembuatan nomor urut tidak terpaku pada proses loop
> seperti ini saja. Untuk proses komputasi yang tidak sekedar membuat
> nomor urut, maka topik ini bisa menjadi sebuah wacana untuk menyusun
> solusi masalah yang dihadapi pada dunia nyata.
>
> Wassalam,
> Kid.
>
> 2013/8/24 hendrik karnadi <hendrikkarnadi@yahoo.com
> <mailto:hendrikkarnadi@yahoo.com>>
>
> Terima kasih Miss Jan atas variasi codenya.
>
> Hasil tes terakhir dengan looping 60000 adalah sebagai berikut:
> 16.81 detik<--TES1 'For ... Next dengan formula
> 1.24 detik<--TES2 'For ... Next tanpa formula
> 1.37 detik<--TES3 'For each ... Next tanpa formula (For each r in
> Rng)
> 1.34 detik<--TES4 'For each ... Next dengan formula (For each Rng
> in Rng)
> 0.05 detik<--TES5 (MJR) 'Tranpose Array
>
> Code Miss Jan saya modifikasi sbb:
> Sub Tes5()
> Dim TStart As Single
> Dim myArray(0 To 59999) As Long 'sebelumnya 9999
> Dim i As Long
> Dim rng As Range
> TStart = Timer
> For i = 1 To 60000 'sebelumnya 10000
> myArray(i - 1) = i
> Next i
> Set rng = Range("o1:o60000") 'sebelumnya 10000
> rng.Value = Application.WorksheetFunction.Transpose(myArray)
> Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
> End Sub
>
> Jadi code Miss Jan is the best.
>
> Kesimpulannya:
> - Tes2 lebih cepat dari Tes3 dan Tes4 (saya sependapat dengan Miss
> Jan) karena ada proses pencarian r atau Rng pada code:
> Range("C" & r.Row) = r.Rowatau Range("D" & Rng.Row) = Rng.Row
> - Proses Array jauh lebih cepat, namun menyisakan satu pertanyaan
> .... (mengapa 100k atau bahkan 70k selalu gagal dengan
> pesan kesalahan "Type mismatch" pada code:
> rng.Value = Application.WorksheetFunction.Transpose(myArray)
>
> Salam,
> HK
>
>
> ----------------------------------------------------------
> *From:* Jan Raisin <miss.jan.raisin@gmail.com
> <mailto:miss.jan.raisin@gmail.com>>
> *To:* belajar-excel@yahoogroups.com
> <mailto:belajar-excel@yahoogroups.com>
> *Sent:* Saturday, 24 August 2013, 14:10
> *Subject:* Re: [belajar-excel] Tes Looping For ... Next dan For
> each ... Next
>
> boleh jawab kan pak Hendrik..
>
> sepengetahuan Jan, For Each - Next bekerja lebih cepat
> dibandingkan dengan For To - Next, karena pada For Each tidak ada
> proses menghitung lebih dahulu
> ilustrasinya adalah begini:
>
> Di atas meja makan ada combro (kenapa combro? karena Jan senang
> makan combro xixixixi ^_^)
>
> perintah 1: Untuk setiap combro yang ada, makan sampai habis >>
> for each
> akan lebih cepat prosesnya jika dibandingkan dengan
>
> perintah 2: Untuk combro ke 1 sampai ke sekian makan sampai habis
> >> for to
> karena pada perintah ke-2 ada proses menghitung dahulu sebelum
> Be-Exceller memakan combro yang ada di atas meja
>
> Tetapi hal ini akan akan berbeda jika ada pekerjaan yang harus
> dijalankan lagi di dalam blok for each
> pekerjaannya mana? bisa dilihat dari setiap titik yang ada dalam
> script
> 1 buah titik mewakili 1 buah pekerjaan atau proses
>
> misal:
> range("a1").select
> selection.value = 1
>
> akan diproses lebih lama dibandingkan script
> range("a1").value = 1
>
> walau pun perbedaannya di komputer sekarang hampir tidak terasa
>
> coba lihat di prosedur Tes3 dan Tes4 saat akan memasukan nilai ada
> 1 buah pekerjaan yang harus dilakukan dahulu yaitu mencari nilai
> barisnya terlebih dahulu
> sedangkan di prosedur Tes2 tidak ada pekerjaan tersebut
>
> oia.. Jan mau nyumbang script.. tapi minta tolong semua batasannya
> diturunin dari 100k baris menjadi 10k baris
> karena pada saat proses transpose untuk 100k selalu gagal..
> mungkin nanti mr Kid atau pak Anton bisa memberikan penjelasan
> penyebab gagalnya transpose tersebut.
>
> prosesnya memanfaatkan array, karena proses baca tulis ke range
> lebih lambat dibandingkan proses baca tulis melalui array
>
> Sub Tes5()
> Dim TStart As Single
> Dim myArray(0 To 9999) As Long
> Dim i As Long
> Dim rng As Range
> TStart = Timer
> For i = 1 To 10000
> myArray(i - 1) = i
> Next i
> Set rng = Range("o1:o10000")
> rng.Value = Application.WorksheetFunction.Transpose(myArray)
> Range("E5").Value = Format(Timer - TStart, "#,##0.0000")
> End Sub
>
> silakan coba dibandingkan hasilnya, di komputer Jan script
> tersebut berjalan 32 x lebih cepat dibandingkan Tes2
>
> salam,
>
>
> -Miss Jan Raisin-
>
>
> Pada 24 Agustus 2013 11.25, hendrik karnadi
> <hendrikkarnadi@yahoo.com <mailto:hendrikkarnadi@yahoo.com>> menulis:
>
> Dear Be Excellers,
> Terlampir adalah hasil uji coba (tes) Looping For ... Next
> dan For each ... Next pake timer.
>
> Pertanyaan:
> Mengapa dengan menggunakan For ... Next (Tes2, tanpa formula)
> hasilnya lebih cepat dibandingkan dengan For each ... Next
> (Tes3 dan Tes 4).
>
> Salam,
> HK
>
>
>
>
>
>
>

Sat Aug 24, 2013 4:48 am (PDT) . Posted by:

"Nora Ismanti" noraismanti

Yang terhormat para anggota milis dan Master Excel.

Mohon Nora dibantu lagi. Saya ingin mengisi kolom I (SISA) pada sheet PEMBELIAN secara otomatis. Kolom I ini isinya adalah sisa/stok barang terakhir yang diperoleh dengan cara mengurangi kolom C pada sheet PEMBELIAN dengan kolom C pada sheet PENJUALAN. Mohon lihat pada lampiran.

Terima kasih

Nora

Sat Aug 24, 2013 10:35 am (PDT) . Posted by:

"hendrik karnadi" hendrikkarnadi

Hi Nora,

Coba copas formula ini pada sel I2,
=SUMIF(B:B,B2,C:C)-SUMIF(PENJUALAN!B:B,B2,PENJUALAN!C:C)

kemudian copy ke bawah.

Salam,
HK

________________________________
From: Nora Ismanti <noraismanti@yahoo.com>
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Sent: Saturday, 24 August 2013, 18:41
Subject: [belajar-excel] Bagaimana mengisi kolom I (SISA) pada sheet PEMBELIAN


 
Yang terhormat para anggota milis dan Master Excel.

Mohon Nora dibantu lagi. Saya ingin mengisi kolom I (SISA) pada sheet PEMBELIAN secara otomatis. Kolom I ini isinya adalah sisa/stok barang terakhir yang diperoleh dengan cara mengurangi kolom C pada sheet PEMBELIAN dengan kolom C pada sheet PENJUALAN. Mohon lihat pada lampiran.

Terima kasih

Nora

Sat Aug 24, 2013 11:14 am (PDT) . Posted by:

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

Wa'alaikumussalam Wr. Wb.

Untuk validation list terfilter, coba lihat di file yang ada
disini<https://app.box.com/s/slgzbd6ro34yi2jk3uh2>.
Pastikan susunan data referensinya menjadi 2 tabel terpisah, antara daftar
untuk cell B27, dan tabel untuk item terfilter berdasar inputan user.
Untuk harga, gunakan fungsi VLookUp jika berdasar sebuah kriteria, atau
array formula Index Match untuk multi kriteria, dan bisa juga dengan
SumProduct atau array formula Sum. Pada Excel 2007 ke atas, bisa
menggunakan SumIFs.

Wassalamu'alaikum Wr. Wb.
Kid.

2013/8/22 Mulki <mulki@aop.component.astra.co.id>

> **
>
>
> **
> Assalamu'alaikum Wr. Wb,
>
> Selamat sore ..
>
> Sudah lama tidak mengikuti perkembangan milis B-Xl, semoga rekan2 selalu
> dlm keadaan sehat dan bersemangat :)
>
> Mohon pencerahan rekan2 atas masalah saya ttg list box dan menampilkan
> data yg terhubung dg pilihannya.
>
> Terimakasih atas pencerahan rekan2.
>
> Wassalam,
> Mulki akbar
>
>
>

Sat Aug 24, 2013 11:18 am (PDT) . Posted by:

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

Coba manfaatkan fitur Pivot Table. Dasar-dasar pada pivot table xl2007 ke
atas dan bisa digunakan untuk mempelajari pivot table xl2003 dengan
menyamakan hal-hal yang tampak sama, bisa dilihat
disini<http://excel-mr-kid.blogspot.com/2013/04/pivot-table-1-kenalan.html>
.

Wassalam,
Kid.

2013/8/22 <kyla_delv@yahoo.com>

> **
>
>
> Dear All,
> Bisa tolong dibantu kah, saya ingin memindahkan data di sheet master ke
> sheet 2, dari data yg ada di sheet master hanya kolom piket dan kolom
> nominal saja yg berubah, untuk kolom piket di pisah menjadi 3 kolom, dan
> nominal menyesuaikan dengan tanggal piket dan gol mohon bantuan dari rekan2
> semua
> Terima kasih sebelumnya
> Salam
> Ray
> Powered by Telkomsel BlackBerry�
>
>

Sat Aug 24, 2013 5:29 pm (PDT) . Posted by:

hartini_80


------Original Message------
To: belajar-excel@yahoogroups.com
Subject: Menentukan lama perjalanan
Sent: Aug 24, 2013 13:36

Dear all,
Saya ingin mengetahui lama perjalanan karyawan, mengacu pada 4 kolom, jika kary melakukan perjalanan 2x maka kolom acuan adalah D, sedangkan jika melakukan 1x perjalanan kolom acuan adalah B, selama ini saya hanya menggunakan pengurangan biasa, jadi jika kary hanya melakukan 1x perjalanan maka harus di hitung manual, adakah dari rekan2 semua yg bisa membantu.
Mohon pencerahannya
Salam
Tiny


Powered by Telkomsel BlackBerry�
GROUP FOOTER MESSAGE
=====================================================================
Untuk memudahkan tim penyusun materi Belajar Excel yang lebih sesuai kebutuhan member, silakan ungkapkan permasalahan yang kerap ditemui dalam menggunakan Excel sehari-hari atau hal-hal yang ingin dipelajari dalam jangka dekat ini. Mohon diprioritaskan dari yang sering ditemui sampai yang ingin dipelajari.
Isi sesuai kelompoknya (fitur-fitur, formula-formula tertentu yang masih membingungkan, otomasi atau pemrograman dalam Excel [Macro - VBA], hal lainnya yang membuat Anda kesulitan dalam mempelajari Excel).
Boleh mengisi berulang kali untuk menambah uneg-uneg yang ingin diungkapkan.
Link untuk menuangkan seluruh uneg-uneg tersebut ada di :
http://tech.groups.yahoo.com/group/belajar-excel/database?method=addRecord&tbl=3
=====================================================================
Langkah kecil Anda dalam mengisi database bisa menjadi langkah pertama yang bermanfaat besar untuk kita semua.
=====================================================================

---------------------------------------------------------------------
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