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-

