Macro Menggabungkan Banyak File Excel menjadi Satu Sheet Excel

Seringkali Dalam Bekerja dengan  excel  mengharuskan  kita untuk  menggabungkan  data dari  beberapa  File  excel ke dalam satu file  excel  saja. Di bawah ini  adalah salah satu cara  untuk  menggabungkan nya dengan menggunakan  macro.. akan sangat  menghemat  waktu, sehingga  pekerjaan  jadi  effesien dan effektif.
Yuk.. ikuti  langkah-langkah Menggabungkan banyak file excel menjadi  Satu sheet Excel.

1.Misal kan  kita memiliki  3 file  excel  yang akan  di gabung,  (  bisa saja  lebih dari 3 , sesuai  kebutuhan).

Book1.xlsx
Book2.xlsx
Book3.xlsx

2. Buka  File excel Baru tempat  kita akan meletakan hasil penggabungan,
    siapkan 2 sheet , sheet yg pertama beri nama  data_file_yg_akan_dicopy dan  sheet kedua beri nama hasil
    di sheet  data_file_yg_akan_dicopy tuliskan semua  file  yang akan  di copy  dan di mulai dari  cell berapa,
    seperti gambar  berikut. 

3.  buka  jendela VBE  editor dengan  cara  tekan  ALT + F11 , maka akan  muncul seperti gambar  berikut



4.  Copy  paste  code  berikut  di module 1

Public namaFile As String
Public rangeygakandicopy As String
Public wb As Workbook
Public data As Workbook

Sub gabung()
    Dim Hasil As String
    Dim kolomasal As String
    Dim daftarsheet As String
   
    daftarsheet = "data_file_yg_akan_dicopy"
    Sheets(daftarsheet).Select
    Range("B2").Select
   
    Set wb = ActiveWorkbook
    Do While ActiveCell.Value <> ""

        namaFile = ActiveCell.Offset(0, 1) & ActiveCell.Value
        rangeygakandicopy = ActiveCell.Offset(0, 2) & ":" & ActiveCell.Offset(0, 3)
        Hasil = ActiveCell.Offset(0, 4).Value
        kolomasal = Mid(ActiveCell.Offset(0, 5), 2, 1)
       
        Application.Workbooks.Open namaFile, UpdateLinks:=False, ReadOnly:=True
        Set data = ActiveWorkbook
       
        Range(rangeygakandicopy).Copy
       
        wb.Activate
        Sheets(Hasil).Select
        row_paling_akhir = data_terakhir(kolomasal)
        Cells(row_paling_akhir + 1, 1).Select
       
        Selection.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone
        Application.CutCopyMode = False
        data.Close False
        Sheets(daftarsheet).Select
        ActiveCell.Offset(1, 0).Select
    Loop
    Exit Sub
   

End Sub

Public Function data_terakhir(col)
    Dim row_paling_akhir As Long
    With ActiveSheet
    row_paling_akhir = .Cells(.Rows.Count, col).End(xlUp).Row
    End With
    data_terakhir = row_paling_akhir
End Function


hasil nya sperti gambar berikut:




5. Run  Macro  , tekan  icon  panah seperti gambar berikut :

6.  Then... Bingo...  semua  data  telah  tergabung  Jadi satu di sheet Hasil



  

Post a Comment

119 Comments

  1. thanks gan ... sukses gabungin data. izin copas ya

    ReplyDelete
  2. Debug gan :'(
    dibagian yg ini

    daftarsheet = "data_file_yg_akan_dicopy"
    Sheets(daftarsheet).Select
    Range("B2").Select

    ReplyDelete
    Replies
    1. nama sheet file baru harus "data_file_yg_akan_dicopy".

      Delete
  3. klo mau di gabungkan ke samping atau colom gimana gan

    ReplyDelete
  4. tolong bantuannya.
    debug:

    Application.Workbooks.Open namaFile, UpdateLinks:=False, ReadOnly:=True

    ReplyDelete
  5. kalau dalam workbook juga banyak sheet dan mau digabungin juga gimana pak?

    ReplyDelete
    Replies
    1. kalau nama sheets nya fix ( tidak berubah bisa)

      Delete
    2. misalkan pada semua filenya sheet yang akan di copy bernama Form6, kemudian bagaimana macronya pak?

      Delete
  6. saya mau tanya, saya punya file excel yang isi datanya perbulan dari tanggal 1 s/d akhir bulan. Saya punya total data excel 85 buah. Dan saya mau menggabungkannya menjadi 1 file dengan rincian data jadi perhari untuk 85 file tersebut. minta tolong bantuannya bagaimana caranya untuk mempercepat input data saya dan menggabungakan 85 file tersebut jadi pemakaian perhari

    ReplyDelete
    Replies
    1. kalau boleh share contoh datanya bisa saya buatkan macro nya , mbak.

      Delete
    2. Pak Efendi sudah saya email contoh datanya ke email bapak. Minta tolong ya Pak

      Delete
    3. Pak Efendi sudah saya email contoh datanya ke email bapak. Minta tolong ya Pak

      Delete
    4. brow bisa bantu saya juga kalau boleh minta emailnya

      Delete
  7. Pak efendi, saya punya file uang data sheetnya kurang lebih sampai 500 sheet. Gimana cara menggabungkan menjadi 1 sheet saja. thx

    ReplyDelete
    Replies
    1. bisa, sedikit di rubah macro nya.. kalau ada contoh excel nya ,bisa saya buatkan macro nya

      Delete
  8. pak, saya punya 4 file misal File : indo, ingris, mat,ipa yang masing" filenya terdiri dari kolom : no.urut, no.ujian, nama, dan nilai. saya ingin menggabungkan keempat file tersebut menjadi satu file saja dengan kolom sbb : no.urut, no.ujian, nama, nilai indo, nilai inggris, nilai mat, dan nilai ipa.....mohon bantuan bapak untuk memberikan caranya, dan mengirimkannya ke email saya : udinsahnudin99@gmail.com ----terima kasih sebelumnya

    ReplyDelete
    Replies
    1. pak udin, kalau ada contoh file nya bisa saya buatkan macro nya.. kiirm saja ke email saya file asal dan file hasil penggabungan yang di inginkan

      Delete
  9. Replies
    1. Bisa mitan ilmu nya pak dikit, mintak kirim juga kode nya, terima kasih sebelumnya....

      ini pak Email saya : ucumadnor@gmail.com

      Delete
  10. mas saya bingung nih bagaimana menggabungkan 2 worksheet menjadi satu dan menghasilkan hitungan data dalam bentuk daftar gaji

    ReplyDelete
  11. Salam pak Effendi, semoga kebaikan selalu menyertai Anda. Saya mau tanya
    - apakah file data yang akan digabung dan file tujuan penggabungan harus dalam folder yang sama?
    - apakah nama file data harus book1.xlsx, book2.xlsx, book3.xlsx dst...
    Tks

    ReplyDelete
    Replies
    1. salam..juga mas, tidak perlu dalam folder yang sama, yg penting address link nya benar. dan file data juga gak perlu book1,2..itu hanya contoh saya..

      Delete
  12. Apakah bisa kalau cell mulai dan berakhirnya ditiadakan? Jadi pure menggabungkan smua isi file yg akan digabungkan.
    Apakah ada yg hrs dirubah di macronya?

    ReplyDelete
  13. Salam Pak Effendi, rumusnya bekerja pak, tapi kalau untuk menggabungkan 9 file excel tidak bisa pak, apa ada yang harus diubah codenya Pak?

    terimakasih

    ReplyDelete
    Replies
    1. tidak ada kode yg di rubah... file yang di gabungkan tidak terbatas,, bisa screen capture error nya dimana?

      Delete
  14. This comment has been removed by the author.

    ReplyDelete
  15. Pa, saya debug di bagian ini:
    Sheets(daftarsheet).Select

    gimana ya pa

    ReplyDelete
    Replies
    1. nama file dengan yang di daftar sheet biasa nya gak sama, maka nya error, coba di check lagi namanya apakah sudah benar

      Delete
  16. Pak, saya punya 25file excel mau dijadikan 1 file, tapi saya bisa memilih/memasukkan jumlah file yang akan di satukan tadi, itu gmna ya pak cara nya?

    ReplyDelete
    Replies
    1. nama file dan path yang akan di satukan aja yg di letakan di file master nya mas, jadi macro nya hanya baca yg ada filename nya.

      Delete
  17. Sore Pak Efendi, saya lagi mencari tau cara untuk menggabungkan rumus dari file 1 ke file lainnya, ini agar untuk memudahkan pekerjaan kantor saya, karena menurut saya beberapa yang ada seperti kita mengerjakan mengulang, contoh dari file 1 kita mengerjakan A 5+5=10 & B 2+2=4, nah nanti setelah sudah mengerjakan di file 1, saya harus input kembali hasil 10 ( file 1, A 5+5=10) ke file 2, dengan kriteria A juga dengan hasil 10. bagaimana ya pak cara untuk meyelesaikan masalah ini?
    Terima kasih .

    ReplyDelete
    Replies
    1. bisa di lakukan dengan 2 cara: 1. pakai link workbook..jadi saat file 1 di update maka file 2 juga terupdate.
      dan cara kedua tentunya pakai macro..

      Delete
  18. Pak, jalan macronya,tp kenapa data ke 2 malah nimpa data pertama dan seterusnya pak??ada solusi kah??
    Terima kasih

    ReplyDelete
    Replies
    1. biasa nya data range tempat paste data nya. coba di mulai dengan cell A1 mas.

      Delete
  19. assalamualaikum....
    .
    pak,kalau seumpama kita ingin menggabungkan beberapa sheet jadi satu sheet bisa atau tidak....
    .
    semisal saya punya 5 sheet, sheet A, sheet B, sheet C, sheet D, dan sheet E, saya ingin menggabungkan jadi satu pada sheet A, kalau seumpama bisa, bagaimana pak caranya....
    .
    terimakasih...
    faried_muaziz@yahoo.co.id

    ReplyDelete
  20. Pak Effendi terima kasih atas sharingan ilmunya, namun saya masih menemukan kendala yaitu ketika script di running muncul error "Select method of Range class failed" mohon pencerahannya..terima kasih..

    ReplyDelete
  21. saya sudah berhasil yang ini..hanya saja saya ingin menggabungkan data yang di sheet2 saja...soalnya tiap file excelnya ada banyak sheet.

    jadi bisa nggak gabungin banyak excel tapi yang di gabung sheet 2 nya smua.

    ReplyDelete
  22. Pada saat saya Run muncul msg:
    run time error 1004
    Excel cannot open the file ... because the file format or file extension is not valid ...
    mohon bantuan dan solusinya

    ReplyDelete
  23. sudah bisa saya, tetapi kalau misalkan sheet nya kita tentuin jadi gk yg aktiv ajh, gmna ya rubah nya, sama nama file exel nya kita insert juga di kolom terakhir, mohon bantuan nya.

    ReplyDelete
  24. saya punya beberapa file yang berekstension .xlsx dengan nama file yang berbeda2,, tetapi isi di dalam sheet nya masing2 sama,, jika saya masukkan ke dalam satu folder saja,, apakah bisa di buatkan macro excel nya untuk copy data di sheet yang saya inginkan tanpa harus buat coding nama file excel nya satu2 cukup membaca nama folder dan sheet saja,, mohon bantuannya

    ReplyDelete
  25. Salam kenal pak Efendi. Mohon bisa dibantu. Dengan macro diatas kalo mau copy purpose apa yang perlu dirubah?. Makasih

    ReplyDelete
    Replies
    1. kalau mau copy banyak caranya mas, coba lihat di page block ini macro A-Z

      Delete
  26. Kalo file asal ada beberapa sheet. Dan kita mau ambil sheet terakhir secara otomatis gimana pak? Mohon bantuannya

    ReplyDelete
  27. Pak..klo saya punya beberapa file excel dan ingin masing2 file berhubungan gmn ya..makasih sebelumnya

    ReplyDelete
  28. allo pak effendi, saya punya kertas kerja CSR bidang ekonomi, agama,sosial. kalau satu bidang saya kerja 100 kegiatan, saya buat data utama /sumber data...gimana dari setiap sumber data itu bisa link hanya pada 1 sheet pembahasan. terimaksih... tolong ke email saya pak effendi , jaydentimothy061016@gmail.com

    ReplyDelete
  29. mas endi sy punya bayak file exel harian mau digabung jadi satu untuk memudahkan reportnya...tapi maslahnya didalam filenya ada parameter combo box juga apa bisa mas...mohon pencerahannya

    ReplyDelete
  30. selamat pagi Pak Effendi, saya setiap hari menerima data laporan dari ratusan sales yang saya satukan dalam satu folder, untuk hasilnya di satukan dalam satu excel file. apakah ada solusi pak? mohon bantuannya. terima kasih.

    ReplyDelete
  31. Assalamualaikum, bapak saya ingin konsultasi jika menggabungkan file tidak jdi kebawah seperti bapak itu bagaimana, jadi hasilnya itu barisan ke samping

    ReplyDelete
  32. mas klo yang digabung itu dalam satu sheet bisa ndak ya? apa yang perlu dirubah?

    ReplyDelete
  33. mas boleh nanya, kalo error di debug Selection.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone
    Application.CutCopyMode = False
    data.Close False
    Sheets(daftarsheet).Select
    ActiveCell.Offset(1, 0).Select

    dan error reportnya 'you cant paste here because the copy area and paste area the same size'

    bisa dibantu ?

    ReplyDelete
  34. Tanya donk mas, klo menggabung kn dengan primary key yang sama tp datanya berbeda gmna caranya ya di macro???

    ReplyDelete
  35. Tanya donk mas, klo menggabung kn dengan primary key yang sama tp datanya berbeda gmna caranya ya di macro???

    ReplyDelete
  36. Selection.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone ini gimana iya

    ReplyDelete
  37. makasih admin ilmu nya sangat bermanfaat

    ReplyDelete
  38. gan gmn cara menggabungkan file kesamping,
    bukan Kbawah

    ReplyDelete
  39. Kalau jumlah barisnya tidak sama di setiap filenya bagaimana?tapi jmlh kolomnya sama..

    ReplyDelete
  40. makasih banyak mas...sangat membantu...semoga menjadi amal panjenengan...aamiin...

    ReplyDelete
  41. macronya error mas, pada baris

    row_paling_akhir = data_terakhir(kolomasal)

    ada contoh yang sudah jadi gak ?
    thx

    ReplyDelete
  42. Makasih Pak, sangat membantu pekerjaan saya, oya Pak gmn kalau proses penggabungan data tsb spy bisa diklik tempatkan sheet tdk hars membuka developer? Mohon bantuannya Pak..Nuwun/Terimakasih.

    ReplyDelete
    Replies
    1. mohon di email ke b.wijanarko2000@gmail.com

      Delete
  43. kalau ak ada 13 file excel yg udah ak connect satu sama lain.. dan bisa dipakai dengan lancar.. dan itu semua saya masukin ke dalam folder yang sama "folder A".. saat di copy menjadi "folder A - copy" tidak ada masalah sama sekali. hanya saja saat nama folder di rename jadi "folder B" semua formula yang menghubungkan file excel lain langsung rusak... itu bagaimana ya? makasih :)

    ReplyDelete
    Replies
    1. formula / atau link nya di ganti sesuai nama forlder nya, cara nya buka semua file excel nya, dan CTrl + find and replace nama folder yang lama ke nama folder yang baru

      Delete
  44. nama ridak ditemukan renamed or delted ,giman yaa

    ReplyDelete
    Replies
    1. check nama file nya gan, nama file dan yang di tulis tidak sama

      Delete
  45. Sebelumnya, terimakasih Mas Effendi, macronya bekerja dg baik.
    Cuma saya pengen nama file sumber ikut di sheet "Hasil" misal di kolom A, baru datanya mulai dari kolom B.
    Modifikasi code yg perlu saya lakukan seperti apa ya?
    Terimakasih.

    ReplyDelete
  46. ganti range file sumber nya gan, (range yang akan di copy), ganti nama file nya sama dengan file hasil

    ReplyDelete
  47. mas effendi boleh di share caranya, kalo menggabungkan file dalam 1 folder , tetapi hasil penggabungannya adalah kesamping?

    ReplyDelete
  48. Maaf bagaimana kalau yang ingin digabung hanya 2 sheet dalam 1 file, mohon solusi

    ReplyDelete
    Replies
    1. bisa gan, asal structur data nya sama , akan lebih mudah

      Delete
  49. maksud saya gabung sheet 1 dan sheet 2 kedalam sheet 3, dan masih dalam 1 file yang sama

    ReplyDelete
  50. Pak Efendi Wijaya bagaimana bagaimana caranya menggabungkan beberapa file tapi filenya sheetnya berbeda?

    ReplyDelete
  51. Terima kasih sangat bermanfaat, klo file yng digabung banyak sheet ny trus yg mau digabung nama sheet tertentu gimana mas ya? thx

    ReplyDelete
  52. pak, saya punya data 9000 files, dengan structure data yang sama, cuma nama file yag beda tiap file
    apa harus mengganti nama file di code perintah VBA satu per satU?

    regards

    ReplyDelete
    Replies
    1. gak perlu di ganti satu satu di perintah VBA nya, semua nama file masukan saja di kolom A, tapi sebelum nya ambil nama file yg 9000 itu pakai macro

      Delete
  53. Pak effendy jika file yang mau digabungkan file plain text, bagian mana macrosnya yang diubah?

    salam

    ReplyDelete
  54. kalo debug nya di
    Range (rangeygakandicopy).copy itu dimananya ya

    ReplyDelete
    Replies
    1. nama file nya diganti dengan ini gan : nama_file_yg_akan_dicopy

      Delete
  55. ada warning "select method of range class failed" mohon pencerahannya

    ReplyDelete
    Replies
    1. keminkinan di nama sheet gak sama gan, coba check sheet "hasil"

      Delete
  56. Kalau pengen gavungin data dari 2 excel tapi kolom beda bisa gak ya Mas? Nama kolom juga beda, tapi isi salah satu kolom sama

    ReplyDelete
  57. Pak Effendi Wijaya...bisakah file sy dibuatkan kode macro?

    ReplyDelete
    Replies
    1. untuk kasus apa gan, apa belum bisa terjawab dengan kode di posting ini.
      coba kirim file nya ke saya dan keinginan nya seperti apa, inshaallah bisa saya buatkan

      Delete
  58. Debug pak di
    Aplication.WorkbooksOpen .... ReadOnly:=True
    Mohon pencerahannya pak..

    ReplyDelete
    Replies
    1. coba check nama file dan folder path nya, biasanya gak amtching dengan nama file yang akan di buka.

      Delete
  59. Terima Kasih Pak Effendi, Scriptnya jalan . . . . .
    Pak, Pas Di Gabung, Agar Masuk Ke Nama Kolom Yang Sama, Gmana ya ?

    ReplyDelete
  60. Terima Kasih Pak Effendi, Scriptnya jalan . . . . .
    Pak, Pas Di Gabung, Agar Masuk Ke Nama Kolom Yang Sama, Gmana ya ?

    ReplyDelete
  61. Pagi Pak Effendy,

    mhn dibantu ada debug
    Application.Workbooks.Open namaFile, UpdateLinks:=False, ReadOnly:=True

    mhn dibantu Pak.

    ReplyDelete
    Replies
    1. itu masalah di nama file atau nama folder nya ga, di kolom B dan C, pastikan nama file sama dengan list yg di kolom B

      Delete
    2. saya juga debug dibagian ini Pak Effendi, mohon bantuannya, soalnya saya udh bener sesuai contoh bapak

      Delete
    3. Effendi WijayaDecember 7, 2018 at 7:57 AM
      itu masalah di nama file atau nama folder nya ga, di kolom B dan C, pastikan nama file sama dengan list yg di kolom B

      Delete
  62. Pak efendi kalau saya punya 12 file dengan ratusan baris bagaimana cara mengetahui akhir cell nya apa harus di buka satu2?

    ReplyDelete
    Replies
    1. gak perlu buka satu satu mbak, cukup di ketahui dari 1 file, sisipkan kode macro nya

      Delete
  63. Selamat Pagi mas, mohon bantuannya

    Bagaimana kalau untuk penambahan sheetnya itu ke sebelah kanan (kolom) ?

    terima kasih atas supportnya

    ReplyDelete
    Replies
    1. selamat pagi gan,

      ini macro nya kalau mau hasil copy an nya ke samping


      Public namaFile As String
      Public rangeygakandicopy As String
      Public wb As Workbook
      Public data As Workbook

      Sub gabung()
      Dim Hasil As String
      Dim kolomasal As String
      Dim daftarsheet As String

      daftarsheet = "data_file_yg_akan_dicopy"
      Sheets(daftarsheet).Select
      Range("B2").Select



      Set wb = ActiveWorkbook
      Do While ActiveCell.Value <> ""

      namaFile = ActiveCell.Offset(0, 1) & ActiveCell.Value
      rangeygakandicopy = ActiveCell.Offset(0, 2) & ":" & ActiveCell.Offset(0, 3)
      Hasil = ActiveCell.Offset(0, 4).Value
      kolomasal = Mid(ActiveCell.Offset(0, 5), 2, 1)

      Application.Workbooks.Open namaFile, UpdateLinks:=False, ReadOnly:=True
      Set data = ActiveWorkbook

      If Range("A6").Value <> "" Then
      Range(Range("A6:G6"), Range("G6").End(xlDown)).Copy
      wb.Activate
      Sheets(Hasil).Select
      'Range("A65536").End(xlUp).Offset(1, 0).Select '===hasil copy ke bawah=='
      Range("A2").End(xlToRight).Offset(0, 1).Select '===hasil copy ke samping=='

      Selection.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone
      Application.CutCopyMode = False
      data.Close False
      Sheets(daftarsheet).Select
      ActiveCell.Offset(1, 0).Select
      Else
      data.Close
      End If
      ActiveCell.Offset(1, 0).Select
      Loop
      Exit Sub


      End Sub

      Delete
  64. Bpk Effendy, saya jalankan sukses, namun data yang muncul di hasilnya hanya column A saja, ternyata Berakhir Pada Cell saya ikutin isian contoh, setelah saya rubah mengikuti data column sesuai isian data dan hasilnya sukses, terimakasih banyak

    ReplyDelete
  65. Pak saya mau tanya untuk menggabung kn y melalu excel saja tanpa aplikasi lain sepeeti fb bisa gk....

    ReplyDelete
  66. Bpk Effendi, permasalahn masih di
    Application.Workbooks.Open namaFile, UpdateLinks:=False, ReadOnly:=True

    sudah saya ganti nama file nya masih ga bisa, barangkali ada file yang sudah jadi, jika berkenan saya boleh minta, terimakasih salam sukses..
    aaneko21@gmail.com

    ReplyDelete
    Replies
    1. sudah saya kirim file yang udah jadi ke email nya mas, silahkan di check,

      Delete
  67. Pak kalau saya coba itu keliatannya kolom cell tujuan itu ga berpengaruh ya.. saya coba masukkan $a$4 tapi tidak terisi di a4 tapi tetap seperti biasa.. tapi kalau saya kosongkan jadi error.. bagaimana agar bisa memposisikan sesuai dengan cell tujuan?

    ReplyDelete
    Replies
    1. download file yg udah jadi disini dan cocokan salah nya dimana :
      https://docs.google.com/uc?export=download&id=10a6mfofgR1Q75q0VuJu6KzTHGwb-Kreq

      Delete
  68. Pak maaf mau tanya, kalau untuk menggabungkan dari banyak file dengan banyak sheet dengan penggabungan nama sheet yang sama bagaimana ya pak macronya? mohon bantuanna. Terimaksih.

    ReplyDelete
    Replies
    1. mas fajar bisa kirim ke saya file yang akan digabung biar saya buatkan macro nya (dont worry free of charge :) )

      Delete
  69. halo pak mau nanya klo mis kita mau menggabungkan file A dengan file B yg mana yg mau kita gbung adalah data yang tidak terdapat di salah satu file?

    ReplyDelete