Terima kasih miss jan atas bantuannya, setelah diperbaiki akhirnya data dapat 
terinput satu per satu...
Terima kasih sekali lagi miss...


________________________________
 Dari: Jan Raisin <[email protected]>
Kepada: [email protected] 
Dikirim: Senin, 3 Desember 2012 13:32
Judul: Re: [belajar-excel] Input data berdasar no induk
 

  
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