Nulis lagi ah biar ga lupa... kebetulan ada temen kantor yang minta dibantuin untuk bikin makro yang berfungsi melakukan copy dari range yang ada di spesifik sheet dan beberapa workbook... aku langsung jawab... "ocreh ntar ya... aku ngelarin kerjaanku dulu".... Beberapa hari kemudian baru aku mencoba membuat makro permintaan teman kantorku... hal pertama yang terlintas dalam otakku adalah aku harus membuat tahapan prosesnya terlebih dahulu...
Yup begitulah proses copy data dari multiple file....Tinggal kasih dah ni rumus......
Hal pertama adalah membuka excel baru untuk tempat kode makro
Kemudian membuat tempat atau sheet untuk menempatkan hasil copy, sheet tersebut tak namain "gue"
Kemudian membuka file workbook dan memilih nama sheet yang akan di copy
Mencari Range data yang akan di copy
Action copy
Action Paste ke sheet baru, utk copy file pertama selesai
Selanjutnya melakukan copy file kedua, untuk proses dan kode makronya tetep, dari membuka file baru yang akan dicopy sampai proses paste
Terakhir...menutup file yang telah di copy... selesai
Yup begitulah proses copy data dari multiple file....
Setelah tahu prosesnya... aku langsung membuka workbook excel dan langsung menuju jendela vba makro... dan langsung mengetikkan kode makronya yaitu :
Private sub copy_multiplefile()
'sesuai proses nomor 2 aku ingin membuat sheet baru dengan nama "gue", jadi supaya tidak terjadi error, apabila sudah ada sheet "gue", aku harus menghapus sheet tersebut, kodenya adalah,
Application.DisplayAlerts=False
On Error Resume Next
ActiveWorkbook.Worksheets("gue").Delete
On Error GoTo 0
Application.DisplayAlerts = True
'setelah terhapus kemudian aku membuat sheet baru dengan nama "gue" dan supaya lebih memudahkan, aku mensetting worksheet gue menjadi "ws", kodenya,
Set ws=ThisWorkbook.Worksheets.AddSheet
ws.Name="gue"
'kemudian aku membuka file excel pertama yang akan di copy
'COPY PASTE FILE PERTAMA
Workbooks.Open Filename:="D:\karsono\File1.xls" 'tempat file
'setelah terbuka, aku langsung mencari nama sheet dan range datanya
With Worksheets("data1")
Intersect(.UsedRange, .Range("A1", .Cells(Rows.Count,Columns.Count))).Copy 'mencari range yang ada datanya dimulai dari cell A1 supaya judul datanya ikut ke copy, setelah di copy kemudian aku menuju ke sheet "gue" dan melakukan paste special value dimulai dari cell yang kosong
ws.Range("A" & ws.Range("A65536").End(xlUp).Row).Offset(0, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'file pertama sudah ke copy, kemudian aku membuka lagi file excel yang lain dengan proses dan kode yang sama
'COPY PASTE FILE KEDUA
Workbooks.Open Filename:="D:\karsono\File2.xls"
With Worksheets("data2")
Intersect(.UsedRange, .Range("A2", .Cells(Rows.Count, Columns.Count))).Copy 'perbedaannya disini adalah aku melakukan copy data dari A2, jadi cuman datanya aja
End With
ws.Range("A" & ws.Range("A65536").End(xlUp).Row).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'nah... disini baru dijelaskan kode ini adalah mencari range, bisa dilihat pada kode offset antara paste file pertama .offset(0,0) dan paste file ke dua .offset(1,0), untuk yang paste pertama bermaksud mengcopy, tanpa berpindah dari range yang ditemukan, tetapi untuk paste yang kedua bermaksud apabila ditemukan range maka, dia akan berpindah satu baris ke bawah jadi tidak akan menimpa yang atasnya... begicu...
'DEMIKIAN UNTUK FILE SETERUSNYA
'Terakhir aku menutup file-file yang telah dicopy
Workbooks("File1").Close savechanges:=False
Workbooks("File2").Close savechanges:=False
End Sub
'beressUntuk melihat hasilnya langsung pencetAlt + F8 Tetapi kalo aku lebih suka membuat commandbutton, langsung aja aku bikin tuch commandbutton, klik 2x untuk pergi ke jendela vba makro, aku tulis dech kodenya
Sub CommandButton1_Click() Call copy_multiplefile 'memanggil makro untuk copy multiplefile End Sub 'beres...
mas mau nanya nih, kebetulan lagi belajar excel, bagaimana kalau saya mau ambil beberapa kolom saja di ke 3 file excel yg berbeda, contoh di file 1 saya mau ambil kolom"Kode" file 2 mau saya ambil kolom"Jabatan", file 3 saya mau ambil kolom "status".
BalasHapusKode Makaro sama dengan atas, dengan perubahan :
BalasHapus1. Ganti kode di bawah ini sesuai range kolom yang diinginkan :
Intersect(.UsedRange, .Range("A2", .Cells(Rows.Count, Columns.Count))).Copy
Misal range kolom yang akan di copy ada di kolom A, maka kode diatas diganti menjadi :
Range("A:A").select
Begitu seterusnya hingga file terakhir.
2. Penempatan Data hasil copy, berarti di paste ke samping dan bukan ke bawah, kode yang harus dirubah :
ws.Range("A" & ws.Range("A65536").End(xlUp).Row).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ganti kode diatas menjadi seperti dibawah ini :
ws.Range("A" & ws.Range("A65536").End(xlUp).Row).Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
apabila di perhatikan kode diatas yang berubah hanyalah kode offsetnya saja yaitu offset (1,0) menjadi (0,1), untuk mengetahui lebih lanjut mengenai kode offset adalah dengan praktek, rubah kode offset dan lihat hasilnya.
martin bogor
BalasHapusmaaf nih mau gabung nanya....
klo untuk mengcopy data yg dicell di sheet1 ke sheet2 gimana ya dengan posisi data sheet1 a1 a2 c1 c2 c3 c10 c11 c12 sedangnkan hasil copian ad di b1 b2 b3 b4 b5 b6 b7 b8 gimana y? trims
coba pake kode makro dibawah ini :
BalasHapusSub contoh()
With Sheets(2)
.Range("B1").Value = Sheets(1).Range("A1")
.Range("B2").Value = Sheets(1).Range("A2")
.Range("B3").Value = Sheets(1).Range("C1")
.Range("B4").Value = Sheets(1).Range("C2")
.Range("B5").Value = Sheets(1).Range("C3")
.Range("B6").Value = Sheets(1).Range("c10")
.Range("B7").Value = Sheets(1).Range("c11")
.Range("B8").Value = Sheets(1).Range("C12")
End With
End Sub
atau mau lihat contoh lain, mungkin berminat, Copy Multi Sheet Excel
Mau nanya nih bos... Gimana caranya menduplikat row lebih dari satu baris (ke bawah) secara otomatis??
BalasHapusmisalkan di Range A1:A5 ada nilai 1 s/d 5 bikin masukkan kode makro di bawah ini ke jendela VBA Makro lalu run.
BalasHapusSub dup()
Sheets(1).Cells(1, 2).Resize(Cells(Rows.Count, "A").End(xlUp).Row, 1).Value = Range("A1").Value
End Sub
Hasilnya pada kolom B1:B5 akan muncul nilai duplikasi dari Range A1...
Apakah begitu...?
Bang... boleh tuker link ga?
BalasHapusBoleh
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusMau Nanya Bos.. bikin ScroolBar : Mohon bantuan dilengkapi ga kelar kelar.. Ambil data di Sheet2 untuk Blanko di Sheet1.
BalasHapusCat: Supaya Bisa Otomatis kebawah Scrool dari Range Sheet2 contoh "b3:b10" kok + 1 gak mau scrool. Namun Scrool jadi angka 2 padahal itu text,.. Ini bikinannya :(mohon dilengkapi) trims ;
Private Sub ScrollBar1_Change()
Dim Range As Integer
Sheet1.Range("e5") = Sheet2.Range("b3") + 1
Sheet1.Range("e6") = Sheet2.Range("c3") + 1
End Sub
adapula begini (tapi gak mau juga) :
Private Sub ScrollBar1_Change()
Dim Range As Integer
Baris = Baris + 1
Sheet1.Range("e5") = Sheet2.Range("b3 + 1")
Sheet1.Range("e6") = Sheet2.Range("c3 + 1")
End Sub
pak gimana cara menyaring data dengan macro,,, misalnya hanya data tertentu aja yang diambil
BalasHapuscoba lihat di postingan aku... Auto Copy Filter di Excel... sistemnya hampir sama
BalasHapusMas Endri... maaf kelupaan... maksud pertanyaannya mengenai scroll apa yach...
BalasHapuskalau saya gak salah tangkep... maksudnya nilai di cell E5, E6... dst, pada Sheet1, sama dengan nilai di Sheet2 Cell B3, C3 dst... begitukah ?
kalau begitu... coba pake kode dibawah ini
Sub coba()
For i = 1 To 20 ' i adalah nilai antara 1 s/d 10
Sheet1.Range("E" & 4 + i).Value = _
Sheet2.Cells(3, 1 + i).Value
Next i
End Sub
kode diatas pada umumnya mempunyai pengertian nilai E5 s/d E26 pada Sheet1 sama dengan nilai Sheet2 kolom 3 baris 2 ("B3") s/d kolom 24 baris 2 ("U3").
Apakah begitu ?
Ok makasih Info nya, saya coba pak
BalasHapusSalam,..
BalasHapusPak gimana caranya Perintah (ctrl+F) atau FIND icon di Exel di jadikan ke bahasa code visual. contoh seperti icon print code visual nya :
Sheet1.PrintPreview (maka akan muncul printview)
kok saya coba Printah FIND (ctrl+f) dengan code :
Sheet1.Find (gak mau jalan/dianggap salah code)
Mas uliks, Kalau untuk membuka Dialog box perintah Find dengan macro, pake aja kode di bawah ini :
BalasHapusApplication.Dialogs(xlDialogFormulaFind).Show
Ok Makasih Pak.
BalasHapusOh Ya pak kalok Icon Menu (code tadi) di Sheet1 (bekerjanya) untuk tampil di Sheet2 gimana pak code nya apa seperti ini :
Sheet2.Application.Dialogs(xlDialogFormulaFind).Show
Munculnya kok di sheet1 terus gak mau aktif /muncul ke Sheet2
kalau perintahnya seperti itu sheet2 harus diaktifkan dulu, baru dimunculkan perintah find dialog box... kodenya.
BalasHapusWith Sheet2
.Activate
.Application.Dialogs(xlDialogFormulaFind).Show
End With
oo iya.. ok makasih pak
BalasHapusHeee.,..
Salam kenal,..
BalasHapusOh ya Pak bagaimana kerja di sheet1 tersimpan otomatis ke sheet2 dua dan bisa scrool kebawah saya coba ini kok error code nya :
Sub Simpan_data()
Dim baris As Integer
Dim noNota As Integer
With Worksheets(2)
baris = 3
baris = baris + 1
Wend
.Cells(baris, 2) = GetNoUrut
.Cells(baris, 3) = Worksheets(1).Cells(6, 5)
.Cells(baris, 4) = Worksheets(1).Cells(7, 5)
End With
Atau code yang salah tadi yang gak mau tadi ini pak :
BalasHapusSub Simpan_data()
Dim baris As Integer
With Worksheets(2)
baris = 3
baris = baris + 1
Wend
.Cells(baris, 3) = Worksheets(1).Cells(6, 5)
.Cells(baris, 4) = Worksheets(1).Cells(7, 5)
End With
maaf mas, mo minta pencerahan sya import data dari file txt ke excel
BalasHapusex: 23-02-11 tapi kebaca format text
cara macro merubah ke format date
kenapa gak pake rumus biasa aja lebih simple, rumusnya : =DATE("20"&RIGHT(C25,2),MID(C25,4,2),LEFT(C25,2))
BalasHapustambahan C25 itu posisi cell tanggal txt (23-02-11)
BalasHapusmakasih atas solusinya,
BalasHapusSalam kenal..
BalasHapusikutan tanya ya pak..
bagaimana jika pada langkah "Mencari Range data yang akan di copy", data yang akan copy harus dicari dulu (bisa berubah-ubah) sehingga range data yang akan dicopy tidak selalu pada baris yang sama?
(jika dilakukan secara manual, dimulai dengan search data yang akan dicopy, setelah ketemu, data tersebut dan data lainnya dalam baris yang sama dicopy dan dipaste pada workbook lainnya).
tolong ya pak..
terima kasih sebelumnya.
Yoss
remu kar
BalasHapusMau tanya
BalasHapusJika ada 3 sheet
Sheet 1 berisi data A dan B
Sheet 2 adalah data A yang didalamnya ada beberapa data yang di copy dan disesuaikan dengan nomor yang dibutuhkan di sheet 1
Sheet 3 adalah data B yang didalamnya ada beberapa data yang di copy dan disesuaikan dengan nomor yang dibutuhkan di sheet 1
Misal di sheet 1 kolom tipe data berisi data A, dan membutuhkan data kode produk, total biaya di data A nomor 24 maka copy sheet 2 nomor 24 di sheet 2 yaitu data kode produk dan total biaya.
Begitupula jika pada kolom tipe data berisi data B
Mohon bantuannya....
Terimakasih banyak
kalo mau ngambil cell value dari banyak workbook gmn ya? (dalam satu folder)..teims
BalasHapusGan kalo copy datanya di file tertentu gimana? maksudnya ada dialog box open file.
BalasHapusdan hasil copy nya ditempatkan di sheet yg udh ada
BalasHapusGan kalo mo ngopy antar file range tertentu menuju file lain misalnya file A range C1 : C5 dalam kondisi non aktif menuju file B range F1:F5, gmn caranya ?
BalasHapusbagaimana membuat tabel pada macro
BalasHapusbenar2 mengagumkan..
BalasHapusPosting yang bagus...bermanfaat...namun ada yg mau saya tanyakan, ada dua sheet. misal sheet 1 range c1:e10 berisi data yang ada formulanya. Nah saya mau copi paste dengan tombol ke sheet 2 range c1:e10. namun hasil pastenya hanya nilainya saja tidak termasuk formulanya..gimana caranya?
BalasHapusMas mau Tanya, saya ingin copy beberapa data di 1 sheet ke beberapa workbook baru tetapi difilter baris tertentu berdasarkan nama
BalasHapusselamat malam
BalasHapusmau tanya, cara mengopy sheet1 (yang di copy), ke sheet2-sheet3 (tempat paste range). untuk yang sheet2 hanya di paste di range (No.Urut,NISN,NIS, dan Nama). yang di sheet3 di paste di range (No.Urut,NIS,Nama,No.SKHU,Asal Sekolah). mohon maaf jika terlalu panjang lebar pembahasannya. terima kasih
Pak mau tanya code VBA untuk hal berikut :
BalasHapus1. isi sel sheet1 di copy ke sheet2 dengan urutan header berbeda, misal di sheet1 sel A1 (nama), sedangkan di sheet2 sel A1 (alamat), begitu seterusnya.
2. misalkan baris 2 semua cell terisi (kolom A2:F2), tetapi dibaris berikutnya ada beberapa cell yang tidak terisi data, pada saat dicopykan ke sheet2, cell yang kosong tersebut diisi dengan data cell diatasnya.
Terima kasih atas jawabannya.
mas karsono tolong di bantu, saya punya masalah jadi saya ingin mengcopy data yang telah terinput ke sheet baru dengan catatan datanya berbentuk inputan, jadi sekali di input bila saya jalankan makronya akan ke copy di sheet baru, dan seterusnya dengan catatan tidak nibann hasil copyan sebelumnya
BalasHapusOm, ikutan nanya boleh..kalau saya mau membuat satu worksheet yg bisa diisi rame2 tapi data biar gqk saling tumpang tindih bagaimana ya??
BalasHapusMohon pencerahannya..
minta bantuanya dong,
BalasHapusgimana caranya membuat macro untuk membuka suatu file yang dipilih, dimana saya mau ada dua tombol, tombol yg pertama : tombol untuk memilih file, dan ke dua tombol untuk menjalankan macro untuk mencopy file tersebut ke sheet yang lain.
Permisi pak guru, minta bantuannya.. Kalo perintah copy misal kita dengan cara mengeblok data/valuenya dan bukan dg memilih cell. Codingnya bagaimana. Terima kasih sebelumnya pak guru.
BalasHapusblog yang paling joss
BalasHapustimah solder
Salam kenal...
BalasHapusMau nanya kalau buat tombol perintah untuk copy data dari shet 1 ke shet 2 gimna ya pak??
Mohon pencerahannya pak
mas salam kenal, gmn cara agar macro berjalan dengan cepat pada excel. soalnya saya membuat aplikasi yang di dalamnya banyak sheet dan banyak macro, kadang eror dan lambat...mohon pencerahannya
BalasHapusSalam Kenal...
BalasHapusIjin Bertanya bagaimana caranya jika kita ingin mengcopy tabel yang ada sesuai dengan jumlah yang kita tentukan.
misal kita ingin mengcopy tabel tersebut sebanyak 3x secara berurut ke bawah dengan jeda Row kosong satu Row per setiap tabel sebagai pemisah. Terima Kasih atas jawabannya