Catetan

COPY DATA DARI MULTIPLE FILE 42

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...

  1. Hal pertama adalah membuka excel baru untuk tempat kode makro

  2. Kemudian membuat tempat atau sheet untuk menempatkan hasil copy, sheet tersebut tak namain "gue"

  3. Kemudian membuka file workbook dan memilih nama sheet yang akan di copy

  4. Mencari Range data yang akan di copy

  5. Action copy

  6. Action Paste ke sheet baru, utk copy file pertama selesai

  7. Selanjutnya melakukan copy file kedua, untuk proses dan kode makronya tetep, dari membuka file baru yang akan dicopy sampai proses paste

  8. 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 
'beress

Untuk 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...

Tinggal kasih dah ni rumus......

42 comments:

Anonim

27 Mei 2010 08.22.00
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".
Karsono

29 Mei 2010 22.30.00
Kode Makaro sama dengan atas, dengan perubahan :
1. 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.
Anonim

31 Agt 2010 16.48.00
martin bogor

maaf 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
Karsono

3 Sep 2010 15.54.00
coba pake kode makro dibawah ini :

Sub 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
Agus_ThePoint

23 Sep 2010 14.25.00
Mau nanya nih bos... Gimana caranya menduplikat row lebih dari satu baris (ke bawah) secara otomatis??
Karsono

28 Sep 2010 13.41.00
misalkan di Range A1:A5 ada nilai 1 s/d 5 bikin masukkan kode makro di bawah ini ke jendela VBA Makro lalu run.

Sub 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...?
Bilbul

13 Okt 2010 18.51.00
Bang... boleh tuker link ga?
Karsono

13 Okt 2010 20.16.00
Boleh
Komentar ini telah dihapus oleh pengarang.
Endri

14 Nov 2010 21.52.00
Mau Nanya Bos.. bikin ScroolBar : Mohon bantuan dilengkapi ga kelar kelar.. Ambil data di Sheet2 untuk Blanko di Sheet1.
Cat: 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
anto

22 Nov 2010 13.50.00
pak gimana cara menyaring data dengan macro,,, misalnya hanya data tertentu aja yang diambil
KARSONO

22 Nov 2010 15.17.00
coba lihat di postingan aku... Auto Copy Filter di Excel... sistemnya hampir sama
Karsono

23 Nov 2010 11.31.00
Mas Endri... maaf kelupaan... maksud pertanyaannya mengenai scroll apa yach...
kalau 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 ?
Endri

10 Des 2010 00.41.00
Ok makasih Info nya, saya coba pak
uliks

10 Des 2010 00.48.00
Salam,..
Pak 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)
Karsono

10 Des 2010 09.58.00
Mas uliks, Kalau untuk membuka Dialog box perintah Find dengan macro, pake aja kode di bawah ini :

Application.Dialogs(xlDialogFormulaFind).Show
Uliks

12 Des 2010 10.07.00
Ok Makasih Pak.
Oh 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
Karsono

12 Des 2010 17.00.00
kalau perintahnya seperti itu sheet2 harus diaktifkan dulu, baru dimunculkan perintah find dialog box... kodenya.

With Sheet2
.Activate
.Application.Dialogs(xlDialogFormulaFind).Show
End With
uliks

14 Des 2010 10.58.00
oo iya.. ok makasih pak
Heee.,..
Surya

14 Des 2010 12.24.00
Salam kenal,..
Oh 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
Surya

14 Des 2010 12.29.00
Atau code yang salah tadi yang gak mau tadi ini pak :

Sub 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
azka_bilal

5 Mar 2011 12.16.00
maaf mas, mo minta pencerahan sya import data dari file txt ke excel
ex: 23-02-11 tapi kebaca format text
cara macro merubah ke format date
Karsono

5 Mar 2011 18.14.00
kenapa gak pake rumus biasa aja lebih simple, rumusnya : =DATE("20"&RIGHT(C25,2),MID(C25,4,2),LEFT(C25,2))
Karsono

5 Mar 2011 18.15.00
tambahan C25 itu posisi cell tanggal txt (23-02-11)
bilal

6 Mar 2011 15.11.00
makasih atas solusinya,
Yoss

30 Mei 2011 22.42.00
Salam kenal..
ikutan 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
delsisaan

2 Feb 2014 10.11.00
remu kar
Laili Kartika

12 Mei 2014 13.54.00
Mau tanya

Jika 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
Anonim

24 Jun 2014 17.09.00
kalo mau ngambil cell value dari banyak workbook gmn ya? (dalam satu folder)..teims
SMP NU AL HIKMAH

3 Jul 2014 09.08.00
Gan kalo copy datanya di file tertentu gimana? maksudnya ada dialog box open file.
SMP NU AL HIKMAH

3 Jul 2014 09.11.00
dan hasil copy nya ditempatkan di sheet yg udh ada
imamgeo

30 Okt 2014 05.08.00
Gan 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 ?
Ike Kurnia

11 Feb 2015 08.32.00
bagaimana membuat tabel pada macro
upank isme

25 Nov 2015 11.27.00
benar2 mengagumkan..
Kuat Kurniawan

28 Des 2015 07.04.00
Posting 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?
nimas mayangsari

20 Jan 2016 20.43.00
Mas mau Tanya, saya ingin copy beberapa data di 1 sheet ke beberapa workbook baru tetapi difilter baris tertentu berdasarkan nama
MTS ALHID

21 Jan 2016 01.18.00
selamat malam

mau 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
Rusnadi Gibran

20 Feb 2016 13.05.00
Pak mau tanya code VBA untuk hal berikut :

1. 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.
yudi lestari

1 Mar 2016 14.50.00
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
yiyinugros

21 Okt 2016 21.22.00
Om, ikutan nanya boleh..kalau saya mau membuat satu worksheet yg bisa diisi rame2 tapi data biar gqk saling tumpang tindih bagaimana ya??
Mohon pencerahannya..
Frenky Simatupang

1 Nov 2016 20.02.00
minta bantuanya dong,
gimana 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.
Hoody

17 Jan 2017 12.15.00
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.

Posting Komentar