
Posting ini aku buat, karena banyaknya request mengenai copy multi file excel.
Sebelumnya aku pernah membuat postingan mengenai copy data multifile excel yang bersifat dasar.
Sekalian mo kasih informasi kalau tulisan di blog ini, aku buat bukan karena sok tahu atau sok ngajarin, tetapi sebagai catatan dan pembelajaran bagi aku secara pribadi, dan syukur ada gunanya bagi orang lain, tetapi karena blog ini bisa dilihat siapa saja, jadi yach mohon maaf apabila ada kesalahan.
Langsung saja ke penjelasan perihal postingan ini, dimana prosesnya adalah melakukan copy data sheet 1, dari semua file excel di folder yang telah ditentukan, dan melakukan paste value pada sheet baru.
Sedangkan untuk kodenya adalah :
Sebelumnya aku pernah membuat postingan mengenai copy data multifile excel yang bersifat dasar.
Sekalian mo kasih informasi kalau tulisan di blog ini, aku buat bukan karena sok tahu atau sok ngajarin, tetapi sebagai catatan dan pembelajaran bagi aku secara pribadi, dan syukur ada gunanya bagi orang lain, tetapi karena blog ini bisa dilihat siapa saja, jadi yach mohon maaf apabila ada kesalahan.
Langsung saja ke penjelasan perihal postingan ini, dimana prosesnya adalah melakukan copy data sheet 1, dari semua file excel di folder yang telah ditentukan, dan melakukan paste value pada sheet baru.
Sedangkan untuk kodenya adalah :
Sub copy_multifile_difolder()
Dim foldr As String
Dim nwb As Workbook
Dim lwb As Workbook
Dim nws As Worksheet
Dim ws As Worksheet
Dim fileku As String
Dim rngku As Range
Dim rnum As Long
foldr = ThisWorkbook.Path & "\fileku\" 'kondisi foldr sebagai alamat folder fileku
Set nwb = Workbooks.Add(1) 'tambah sheet
Set nws = nwb.ActiveSheet 'sheet baru menjadi aktif
Set ws = Sheets(1) 'setting ws sebagai sheet 1
'kondisi jika dibelakang folder tidak ada tanda "\"
If Right(foldr, 1) <> "\" Then
foldr = foldr & "\"
End If
'kondisi jika tidak ada file di folder fileku
fileku = Dir(foldr & "*.xl*")
If fileku = "" Then
MsgBox "tidak ada file excel"
Exit Sub
End If
Do Until fileku = ""
If foldr <> ThisWorkbook.Path Or fileku <> ThisWorkbook.Name Then
Set lwb = Workbooks.Open(Filename:=foldr & fileku)
'kondisi untuk setiap sheet 1
For Each ws In lwb.Worksheets
'setting range yang akan di copy
Set rngku = ws.Range("A2", ws.Cells(ws.UsedRange.Row + ws.UsedRange.Rows.Count, ws.UsedRange.Column + ws.UsedRange.Columns.Count))
'membuat judul
If rnum = 0 Then
nws.Range("A1", nws.Cells(1, rngku.Columns.Count)).Value = ws.Range("A1", ws.Cells(1, rngku.Columns.Count)).Value
rnum = 1
End If
'copy data dari file sumber ke sheet baru
rngku.Copy
nws.Range("A" & rnum + 1).Resize(rngku.Rows.Count, rngku.Columns.Count).PasteSpecial xlPasteValues
rnum = rnum + rngku.Rows.Count - 1
Next
lwb.Close False
End If
fileku = Dir() 'setting nama file menjadi variable
Loop
nwb.Sheets(1).Select
Application.EnableEvents = True
Application.ScreenUpdating = True
'membersihkan memory
Set nwb = Nothing
Set nws = Nothing
Set ws = Nothing
Set lwb = Nothing
Set rngku = Nothing
End Sub
Demikianlah sehingga postingan ini berakhir, mohon informasinya apabila ada kesalahan.
Dan sekali lagi file bisa langsung di Download disini.
12 comments:
rngku.Copy
kemudian ganti dengan kode di bawah ini :
rngku.SpecialCells(xlCellTypeVisible).Copy
Tetapi kalau tidak salah, Workbook A sebagai sumber data, akan dipindah secara otomatis apabila Workbook B di buka.
Kalau maksudnya seperti itu... maka bikin kode makro seperti dibawah ini di jendela MODULE VBA Macro di workbook_B.
Sub Copy_Data()
Workbooks.Open Filename:="C:\Documents and Settings\karsono\My Documents\workbook_A.xls" 'tempat file workbook_A
With Worksheets("Sheet1")'melakukan copy data yang ada di workbook_A sheet1
Intersect(.UsedRange, .Range("A2", .Cells(Rows.Count, Columns.Count))).Copy
End With
'mengaktifkan workbook_B dan paste hasil copy data dari workbook_A
ThisWorkbook.Activate
With Worksheets("Sheet1")
Range("A1").PasteSpecial
Range("A1").Select
End With
Workbooks("workbook_A.xls").Close savechanges:=False 'menutup workbook_A tanpa di simpen
End Sub
selanjutnya pada jendel Macro ThisWorkbook, masukkan kode berikut :
Private Sub Workbook_Open()
Call Copy_Data 'memanggil kode makro copy_data ketika workbook_B dibuka
End Sub
apakah begitu...?
bagimana caranya di sheet2 muncul ani saja, sheet3 muncul budi saja (tersortir)secara otomatis...
Terima kasih banyak
bole minta nomor WA
begini Mas..
bagaimana kode macro input data kesamping...??
Misalnya di Kolom A "Daftar nama" dan di Kolom B dan seterusnya adalah data Bulan pembayaran.
Terimakasih sebelumnya Mas..
solder uap
Posting Komentar