jadi... maksod loh ... eh maksod-nya..
tabel yg ingin digabung hanya tabel dalam sheets yg ada di workbook bernama "X"
dimana X adalah string yg dimulai dengan ANGKA SPASI STRIP misal "145 -"
dan diakhiri oleh 4 karakter ".xls"
kalo gitu kita akan saring dulu files yg berada SeFOLDER dengan file utama (summary.xls)
folder ini oleh makro dikenali sebagai (ThisWorkbook.
hasil penyaringan harus memenuhi keinginan tsb diatas, yaitu berupa nama nama file
yg POLANYA = "000000 - *.xls"
dengan "000000" adalah angka yg nilainya minimum 0; maximum = 999999999999999
hasil penyaringan sebaiknya berupa array string nama-nama file (yg memenuhi syarat)
dan ..... harus SORTED ascending.!!
(ini gampang; karena akan dikerjakan oleh sebuah UDF (atau FBD / made in dalam negeri)
bernama MatchFileList )
berdasarkan daftar itu-LAH kita membukai file-file tsb satu persatu
setiap terbuka satu file kita ambil datanya, lalu kita tempelkan di sheet 'detail' maupun 'kepala'
di workbook SUMMARY.XLS
cara mengambil maupun menempel tentunya harus sesuai aturan yg dikehendaki oom tomz itu
setelah satu file selesai "dikerjain" musti kudu ditutup untuk selanjutnya membuka file berikutnya..
selain itu masih ada pekerjaan kecil, yaitu mengubah data ex kolom URUTAN yg dari sumbernya
selalu "0001" kita ubah menjadi sesuai "angka nama workbook" yg sedang dibuka.
mudah mudahan coding ini ndak terlalu nguawurr...
-ctv-
'-----------coding list ------------
Sub GabungTabels(
' +-----------
' | mengCopy Tabel dari books yg |
' | memenuhi kriteria |
' | ke sheet Gabung di workbook ini |
' | sitiVi © modified 5 juli 2010 |
' +-----------
' | for XL-mania, OnBehalfOf tomz |
' +-----------
Dim BookNames As Variant
Dim ReadTbl As Range
Dim WriteTo As Range
Dim ShtN As String
Dim Recs As String
Dim iBook As Integer
Dim TblHeig As Long
Dim n As Long, i As Long
Dim AngkaBook As String
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
.DisplayAlerts = False
End With
HapusDataHasilGabun
Set WriteTo = Sheets("detail").Range("A2")
ThisWorkbook.
BookNames = MatchFileList(
'-- proses menyalin tabel tiap sheets/book ke sheet 'details'
n = 1
For iBook = 1 To UBound(BookNames)
Workbooks.Open ThisWorkbook.
AngkaBook = Mid(BookNames(
Set ReadTbl = Workbooks(BookNames
If Not ReadTbl(1, 1) = "" Then
Set ReadTbl = Range(ReadTbl, ReadTbl.End(
Set ReadTbl = Range(ReadTbl, ReadTbl.End(
End If
TblHeig = ReadTbl.Rows.
ReadTbl.Copy
WriteTo(n, 1).PasteSpecial xlPasteValuesAndNum
' -- mengganti NOMOR-URUTAN sesuai nama book
For i = n To n + TblHeig - 1
WriteTo(i, 1).NumberFormat = "@"
WriteTo(i, 1) = CStr(Right("0000" & AngkaBook, 4))
Next
n = n + TblHeig
'-- proses menyalin tabel tiap sheets/book ke sheet 'kepala'
' termasuk mengganti "NOMOR-URUTAN"nya
Workbooks(BookNames
With ThisWorkbook.
.Offset(iBook, 1).PasteSpecial xlPasteValuesAndNum
.Offset(iBook, 0).NumberFormat = "@"
.Offset(iBook, 0) = CStr(Right("0000" & AngkaBook, 4))
End With
' - mencatat info tabel yg disalin
Recs = Right(String(
ShtN = ShtN & iBook & vbTab & "Book : " & BookNames(iBook) & _
vbTab & Recs & " records." & Space(6) & vbCr
Workbooks(BookNames
Next iBook
WriteTo.CurrentRegi
With Application
.Calculation = xlCalculationAutoma
.ScreenUpdating = True
.DisplayAlerts = True
End With
Range("A1").Activate
'--saatnya laporan ke boss !!---
MsgBox " T E L A H D I P R O S E S : " & n - 1 & " records :" _
& vbCr & vbCr & ShtN & vbCr & "Ya - Gitu - deh ... ", 64, _
"©tv_Penggabungan Tabel² ke 1 Sheet"
End Sub
'------------
note
**coding ini belum sempat di "refine" jadi mungkin masih ada variebles nganggur,
blok yg tidak terlalu perlu dsb... saya yakin anda dapat me-refined-nya sendiri..
**member yg server emailnya menolak file zip, dan memerlukan file lampiran posting ini
(kalok mau!) dapat minta langsung file yg belum dikompress dari siti... via japri saja...
| jangan lupa sebelum bertanya, cek dulu www.XL-mania.com dan |
| http://tech.groups.yahoo.com/group/XL-mania/messages |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message, melecehkan, tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan winzip jika perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/ |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau... |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html |
+-------------------------------------------------------------------+
| Message lama ada di : |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id] |
| http://www.mail-archive.com/xl-mania@yahoogroups.com |
+-------------------------------------------------------------------+
Nenhum comentário:
Postar um comentário