Sambil menunggu file lampiran beserta contoh data yang bisa di-generate
saat buka file atau saat mulai proses.

Pak Lukman,

Prosedur Test_01 lebih lambat dari Test_02 pada kasus ini adalah karena
penggunaan methods select yang terlalu intensif.
Coba amati bagian loop dengan For Next. Test_01 melakukan loop berdasar
nomor urut cell yang diproses, sedangkan formula dipasang dengan
menggunakan offset 1 baris dari cell terakhir yang dipasangi formula. Oleh
sebab itu dibutuhkan proses Select baris berikutnya setelah memasang
formula. Test_02 melakukan loop berdasar nomor baris excel cell yang
diproses.

Bagaimana kalau dicoba agar test_01 juga menggunakan cara test_02 dalam
merujuk cell yang dipasangi formula.
Kira-kira caranya begini :
Bagian :
    For i = 1 To Rng.Rows.Count
        ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
        ActiveCell.Offset(1, 0).Select
    Next i
diganti menjadi :
    With activecell
        For i = 1 To Rng.Rows.Count
           .Offset(i-1, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
        Next i
    end with
Coba di-run berulang-ulang.
Setidaknya ada peningkatan walau sedikit

Kemudian, coba juga dengan pemasangan langsung ke banyak cell sekaligus :
Bagian :
    For i = 1 To Rng.Rows.Count
        ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
        ActiveCell.Offset(1, 0).Select
    Next i
atau bagian : (jika sudah bukan aslinya lagi)
    With activecell
        For i = 1 To Rng.Rows.Count
           .Offset(i-1, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
        Next i
    end with
diubah menjadi : (jadi 1 baris saja)
         Rng.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
kemudian coba di-run berulang kali.

Untuk memeriksa waktu proses, bisa menggunakan fungsi Timer dalam susunan
sebagai berikut :
    dim dblTime as double

    dbltime=timer

    'prosesnya disini

    dbltime=timer-dbltime
    msgbox "Done in " & dbltime & " second.",vbinformation,"myProcess"

Wassalam,
Kid.

On Sat, Nov 24, 2012 at 12:11 PM, lkm jktind <[email protected]> wrote:

> Saya masih belajar.
> Tanya : cara test_01   waktu nya : 11:53:56  selesai  11:54:01
>            cara test_02   waktunya :   11:54:17  selesai  11:54:17
> apa yg penyebabnya . jadi lambat dari cara tes_01 ?
>
> Sub Tes_01()
>     Dim Rng As Range
>     Dim i As Long
>     'Application.ScreenUpdating = False
>     'Application.EnableEvents = False
>     Sheets("Pertanyaan 2").Select
>     Range("A2").Select
>     Set Rng = Range("A2", Range("A65000").End(xlUp))
>     Cells(2, 5) = Time
>     For i = 1 To Rng.Rows.Count
>         ActiveCell.Offset(0, 2).FormulaR1C1 = "=TEXT(RC[-2],""dd/mm/yy"")"
>         ActiveCell.Offset(1, 0).Select
>     Next i
>     'Application.ScreenUpdating = True
>     'Application.EnableEvents = True
>     Cells(2, 6) = Time
> End Sub
>
> Option Explicit
> Sub tes_02()
>     Dim r As Long
>     Dim s As Long
>     Worksheets(2).Select
>     Cells(2, 1).Select
>     s = Cells(Rows.Count, 1).End(xlUp).Row
>     Range(Cells(2, 7), Cells(s, 10)).ClearContents
>     Cells(2, 9) = Time
>     For r = 2 To s
>         Cells(r, 7) = Left(Cells(r, 1), 10)
>         Cells(r, 8) = Mid(Cells(r, 1), 11, 10)
>     Next
>     Cells(2, 10) = Time
> End Sub
>
>
> salam
>
> Lukman
>
>
> --- Mods ---
> File lampiran dicekal karena melebihi 250KB.
> Contoh data tidak perlu sampai ribuan. Jika membutuhkan contoh data yang
> banyak untuk uji kecepatan proses, coba create contoh data dengan VBA.
> Dengan demikian filesize bisa dijaga tetap sesuai peraturan milis.
> ------------
>
>
>
>

Kirim email ke