Gabung beberapa file excel - Kita telah belajar Gabung Beberapa Sheet Excel pada beberapa kesempatan yang lalu. Sekarang mari kita lanjutkan dengan metode menggabungkan beberapa file excel menjadi 1 file. Bedanya apa sama yang gabung sheet?. Jika gabung sheet maka kita menggabungkan beberapa sheet dalam satu workbook (1 file excel), sedangkan Gabung file excel berarti kita akan menggabungkan beberapa workbook menjadi 1 workbook, many files to 1 file.
Sebelum kita simulasikan penggabungan file excel, harus kalian pahami dulu beberapa “syarat”.
- Penggabungan ini hanya menggabungkan sheet pertama. Maka jika ada beberapa sheet, gabungkan dulu dengan gabung sheet excel di artikel sebelumnya.
- Pastikan format kolom sama, sehingga kalian tidak akan kesulitan untuk mengolahnya lebih lanjut.
- Semakin banyak data yang di join, semakin lama prosesnya.
- Pastikan file-file (workbook) yang akan di gabung berada dalam 1 folder yang sama.
Sepertinya itu saja yang harus di pahami terlebih dahulu, selanjutnya yuk praktekkk. Aplikasi yang saya gunakan adalah MS Office Excel 2010, tetapi ini juga bisa berjalan lancar jaya di 2007. Untuk 2013 kebelakang belum pernah mencoba.
Dicontoh diatas berikut saya memiliki 3 file excel dengan masing-masing memiliki kontem yang kolomnya sama, bisa saja saya gabungkan secara manual dengan copy/cut paste, tapi jika file yang anda akan join berjumlah puluhan, ratusan, resiko miss / kelewatan akan sangat besar. Dalam contoh saya sengaja berikan header dengan warna berbeda, untuk “nge-tes” kalau file excel telah tergabung semua.
Langkah pertama, buka excel baru (new workbook), kemudian buka ribbon Developer. (Jika belum ada opsi developer, lihat di artikel join sheet excel).
Klik "Visual basic" bisa juga dengan hot key ALT+F11.
Pada bagian samping kiri, klik kanan pada "ThisWorkbook" > "Insert" > "Module"
Akan muncul kotak untuk memasukkan kode, nah, masukkan kode berikut:
Sub simpleXlsMerger() Dim bookList As Workbook Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object Application.ScreenUpdating = False Set mergeObj = CreateObject("Scripting.FileSystemObject") 'change folder path of excel files here Set dirObj = mergeObj.Getfolder("D:\Excel\Merge File") Set filesObj = dirObj.Files For Each everyObj In filesObj Set bookList = Workbooks.Open(everyObj) 'change "A2" with cell reference of start point for every files here 'for example "B3:IV" to merge all files start from columns B and rows 3 'If you're files using more than IV column, change it to the latest column 'Also change "A" column on "A1048576" to the same column as start point Range("A1:IV" & Range("A1048576").End(xlUp).Row).Copy ThisWorkbook.Worksheets(1).Activate 'Do not change the following column. It's not the same column as above Range("A1048576").End(xlUp).Offset(1, 0).PasteSpecial Application.CutCopyMode = False bookList.Close Next End Sub
Bold merah: adalah lokasi dimana FOLDER yang berisi file-file excel yang akan di joint. Dalam contoh, lokasi folder saya berada di D:\Excel\Merge File.
Langkah terakhir, eksekusi dengan RUN (klik icon segitiga), atau dengan hot key F5.
Trik yang sangat berguna sekali,
ReplyDeletenamun saya ingin bertanya, jadi setelah saya jalankan Code tersebut, dan saya telusuri pelan-pelan, setelah kode yg ini
'change "A2" with cell reference of start point for every files here
'for example "B3:IV" to merge all files start from columns B and rows 3
'If you're files using more than IV column, change it to the latest column
'Also change "A" column on "A1048576" to the same column as start point
Range("A1:IV" & Range("A1048576").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
nah yg tercopy adalah excel kosong dimana saya menjalankan module ini kemudian baru membuka file excel yg ada di path yang kita sort, saya bingung, apakah ada code untuk mengaktifkan dulu file excel yg di buka melalui
Set bookList = Workbooks.Open(everyObj)
kemudian baru dicopy?
mohon pencerahannya, terima kasih
TERIMAKASIH..SANGAT MEMBANTU
ReplyDelete