Dear Debora,

Coba kita bahas satu persatu script dari mbak Debora, berdasarkan bentuk
script yang mbak Debora sertakan Jan anggap ini adalah hasil dari rekam
macro

Sub Macro3() ' >>> nama prosedurnya Macro3
' baris berikut sampai beberapa baris di bawah adalah keterangan yang
dibuat oleh Excel saat melakukan perekaman macro
' Macro3 Macro
'

'
    Sheets("KALKULATOR").Select   ' pindah ke sheet kalkulator
    Range("N11").Select   ' memilih cell N11 (mode relatif Off)
    ActiveCell.Offset(1, 0).Range("A1").Select   ' dari cell N11 turun 1
baris ke bawah (mode relatif Off)
    Range(Selection, Selection.End(xlToRight)).Select   ' dari cell N12
melakukan blok ke arah kanan sampai data terakhir, posisi data terakhir
tidak diketahui tetapi masih di baris 12
    Selection.Copy   ' dilakukan proses copy terhadap data yang sudah
dipilih
    Sheets("GLOBAL REPORT").Select   ' pindah ke sheet global report
    ActiveCell.Select   ' pada sebuah cell yang aktif, posisi cell tidak
diketahui (mode relatif ON)
   ' seharusnya setelah pindah ke sheet global report, mode relatif
dimatikan dahulu, lalu pergi ke header suatu data, setelah itu baru mode
relatif diaktifkan kembali, setelah itu turun ke data terakhir dan baris
baru.
   ' kenapa harus begitu? agar jika letak cell aktif dipindahkan tidak
terjadi kesalahan penempatan data
    ActiveCell.Offset(1, 0).Range("A1").Select   ' dari cell tersebut turun
1 baris ke bawah (mode relatif ON)
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats,
Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False   ' pada cell yang
aktif dilakukan paste nilai dan number format



    ' kenapa bisa muncul data 2x ? karena proses rekamnya juga 2x, mulai
dari baris ini adalah yang membuat data menjadi dobel,
    ' solusi: hapus script di bawah ini sampai baris di atas End Sub
    Sheets("KALKULATOR").Select   ' kembali lagi ke sheet kalkulator
    ActiveCell.Select   ' pada cell yang aktif (mode relatif ON), letak
cell tidak diketahui, tetapi kalo dilihat dari alur sebelumnya maka
seharusnya saat ini berada di cell N12
    ActiveCell.Select   ' memilih lagi cell yang aktif tadi dengan mouse (mode
relatif ON)
    Range(Selection, Selection.End(xlToRight)).Select ' melakukan blok
range ke arah kanan sampai data terakhir (mode relatif ON)
    Application.CutCopyMode = False   ' menonaktifkan mode copy paste
    Selection.Copy   ' melakukan proses copy terhadap range data yang tadi
sudah diblok
    Sheets("GLOBAL REPORT").Select   ' pindah ke sheet global report
    ActiveCell.Select   ' pada cell yang aktif, posisi tidak diketahui (mode
relatif ON)
    ActiveCell.Offset(1, 0).Range("A1").Select   ' dari cell yang aktif dan
tidak diketahui posisinya, turun 1 baris ke bawah (mode relatif ON)
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats,
Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False   ' pada cell aktif
melakukan proses paste nilai dan format number
End Sub   ' akhir dari prosedur

by the way, any way, bus way.. jika mbak Debora sudah biasa melakukan
proses penulisan langsung ke VB Editor (VBE), maka ada baiknya
mempergunakan proses penulisan langsung karena ada beberapa hal yang bisa
dihindari, misalnya proses Select yang tidak dibutuhkan atau pada saat
melakukan copas data maka scriptnya bisa dibuat lebih singkat. Selain itu
dengan menulis langsung maka mbak Debora akan terbiasa bermain dengan
variabel-variabel yang kelak akan berguna pada saat proses rekam macro
sudah tidak memungkinkan untuk menghasilkan solusi yang dibutuhkan.

Best Regard,

-Ms. Jan Raisin-

Kirim email ke