Wa'alaikumussalam wr wb

Hai Shenly,

Coba lebih disiplin dalam penggunaan object.

Contoh : untuk merujuk ke range A1 di sheet bernama 'Kid', gunakan :
             Sheets("kid").range("a1")

Hindari penggunaan activesheet, selection, select, activate jika tidak
yakin apa sheet yang sedang aktif, range yang sedang dipilih, sesuai
kebutuhan atau tidak.


      ActiveSheet.Unprotect Password:="mamamintapulsa"
Lebih baik :
      Sheets("nama sheetnya").unprotect Password:="mamamintapulsa"


      Set rngData = Range("A22").CurrentRegion.Offset(1).Resize(, 1)
'record data input kolom  + 1 baris kosong terbawah
Lebih baik :
      Set rngData = Sheets("nama
sheetnya").Range("A22").CurrentRegion.Offset(1).Resize(,
1)   'record data input kolom  + 1 baris kosong terbawah


      Sheets("Data").Select
Lebih baik : dibuang saja, karena gak penting dan buang-buang energi


      Set rngTarget = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
'range posisi paste di kolom yg diingikn
Lebih baik : (kalau memang merujuk ke sheet bernama 'data' yang di-select
di baris sebelumnya, yang sekarang sudah dibuang itu)
      Set rngTarget = Sheets("data").Cells(Sheets("data").Rows.Count,
"A").End(xlUp).Offset(1, 0)   'range posisi paste di kolom yg diingikn

  Sheets("Form").Select

    Rows("23:1500").Select

    Selection.Delete Shift:=xlUp
Lebih baik :
    Sheets("form").range("a23:a1500").entirerow.delete xlshiftup


    Range("J22:O22").Select
    Selection.ClearContents
Lebih baik :
    Sheets("nama sheetnya").range("j22:o22").clearcontents


     Range("F18").Select
Lebih baik : (kalau memang ingin mengatura agar yang ditampilkan ke user
adalah range tersebut di suatu sheet tertentu)
     Application.goto sheets("nama sheetnya").range("f18") , true


     ActiveWorkbook.Save
Lebih baik : (kalau memang akan save workbook yang berisi baris-baris kode
ini, alias bukan workbook lain)
     thisworkbook.save


So,
langsung to the point sajah....
sebut nama emaknya, lalu sebut nama anaknya, lalu lakukan sesuatu terhadap
anaknya.
contoh :
       sheets("data").range("a1:x12345").copy
       sheets("salinan").range("g17").pastespecial
xlpastevaluesandnumberformats
kalau mau copy range A1:X12345 yang ada di sheet bernama 'data' dan di
paste values (termasuk format numbernya) ke sheet bernama 'salinan' mulai
di range G17

lugas... jadi lebih jelas dan mudah dilacak.

Kalau antar workbook
dim wbkSumber as workbook, wbkTarget as workbook
set wbksumber=thisworkbook        'data dari workbook ini
set wbktarget=worbooks.open("fullpath dari file excel tujuan)

'copy dari workbook sumber sheet bernama 'data' area range A1:X12345, ke
workbook target di sheet bernama 'salinan' mulai range G17,
'paste values dan number format sajah
wbksumber.sheets("data").range("a1:x12345").copy
wbktarget.sheets("salinan").range("g17").pastespecial
xlpastevaluesandnumberformats
wbktarget.save    'simpan workbook target, tapi gak ditutup
wbktarget.close true   'kalau tutup workbook target tapi di save lebih dulu
sebelum ditutup
wbksumber.activate   'kalau memang workbook sumber ingin menjadi
activeworkbook karena ada workbook lainnya lagi yang sedang dibuka


Jangan diapalin, tapi ikuti alurnya. Data dari workbook x, maka sebut
workbooknya, sheet yang entu maka sbut sheets("entu") yang area range itu,
sebut areanya, dst,dst



Wassalamu'alaikum wr wb
Kid





2017-09-18 17:04 GMT+07:00 [email protected] [belajar-excel] <
[email protected]>:

>
>
> asslamualakikum wr.wb
>
> halo master, shenly kembali bertanya, sekrang sya ada masalah di coding
> macro,
>
> dlu saya mendapatkan coding dari salah satu master disni, yang berbunyi
> sbb:
>
> ============================
>
> Sub cobalagiaja()
>
>
>     Dim rngData As Range, lRows As Long     'variabel range data beserta
> jumlah barisnya
>
>     Dim rngTarget As Range                  'variabel range posisi paste
>
>
>
>     ActiveSheet.Unprotect Password:="mamamintapulsa"
>
>
>
>     Set rngData = Range("A22").CurrentRegion.Offset(1).Resize(, 1)
> 'record data input kolom  + 1 baris kosong terbawah
>
>     lRows = rngData.Rows.Count - 1
>  'jumlah record
>
>
>
>
>
>     Sheets("Data").Select
>
>     Set rngTarget = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)   'range
> posisi paste di kolom yg diingikn
>
>     rngData.Resize(lRows, 1).Copy                                   'copy
> input kolom yg dinginkn
>
>     rngTarget.PasteSpecial xlPasteValues                            'paste
> values di posisi target kolom yg dinginkn
>
>     rngData.Offset(0, 1).Resize(lRows, 14).Copy                     'copy
> input yang 2 kolom data setelah lompat 1 kolom ke kanan
>
>     rngTarget.Offset(0, 1).PasteSpecial xlPasteValues               'paste
> values di posisi target kolom A lompat 2 kolom ke kanan
>
>
>
>     Sheets("Form").Select
>
>     Rows("23:1500").Select
>
>     Selection.Delete Shift:=xlUp
>
>     Range("J22:O22").Select
>
>     Selection.ClearContents
>
>
>
>     Range("F18").Select
>
>
>
>     ActiveWorkbook.Save
>
>
> End Sub
>
> =================
>
> coding tersebut jika sya masukan di Command Buttom, akan terjadi kesalah
> recod, Seprti : data yang dipindah entah masuk ke mana, jadi hasilnya
> seperti mendelet data yg akan di pindah saja.
> Tapi ketika sya buat coding tsb di Module, maka akan berjalan sesuai dgn
> yg sya inginkn.
> kira2 itu apa ya masalahnya master? kok tidak bisa di masukin di Command
> buttom ???
>
>
> 
>

Kirim email ke