Jika macro sebelumnya pada sel B4 di Sheet Tabel1 kosong maka mengabaikan isi
tabel2 . Maka untuk macro berikut , pengecekan data di tabel2 dilakukan. Sub
Gabung_2()
Dim barisawal, jumlahkolom As Integer
Dim tujuan As Range
Dim asal As Range
barisawal = 4
jumlahkolom = 4
Sheets("Hasil").Activate
Set tujuan = Range("A" & barisawal)
' jika sel A2 kosong , berarti tak ada data
If tujuan.Value <> "" Then
Sheets("Hasil").Activate
tujuan.Select
' menuju akhir baris
Range(Selection, Selection.End(xlDown)).Select
' pilih sampai selebar kolom
Selection.Resize(, jumlahkolom).Select
' hapus isinya
Selection.ClearContents
End If
Sheets("tabel1").Activate
Range("B4").Select
If Selection = "" Then GoTo lab_Tabelkedua
' pilih satu baris data
Range("B4").Resize(1, jumlahkolom).Select
' range berisi data
Range(Selection, Selection.End(xlDown)).Select
Set asal = Selection
asal.Copy tujuan
lab_Tabelkedua:
Sheets("tabel2").Activate
Range("B4").Select
If Selection = "" Then GoTo lab_sort
' pilih satu baris data
Range("B4").Resize(1, jumlahkolom).Select
' menuju data terakhir
Range(Selection, Selection.End(xlDown)).Select
Set asal = Selection
' Belum Ada Data di tujuan , jadi julahbaris = 0
If tujuan.Value = "" Then
jumlahbaris = 0
GoTo Lab_TujuanTakAda
End If
' hitung jumlah baris data
If tujuan.CurrentRegion.Row < barisawal Then
' misal baris awal 2 , maka yg dihitung 2,3,4,5
jumlahbaris = tujuan.CurrentRegion.Rows.Count - barisawal + 1
Else
jumlahbaris = tujuan.CurrentRegion.Rows.Count
End If
Lab_TujuanTakAda:
' ke baris kosong untuk data berikutnya
Set tujuan = Sheets("Hasil").Range("a" & barisawal).Offset(jumlahbaris)
' asal.Copy tujuan.Offset(0)
asal.Copy tujuan
lab_sort:
If tujuan.Value = "" Then
GoTo lab_Selesai
End If
' tujuan dari A2 sampai baris kosong setelah data terakhir ( jumlahbaris )
' ke kolom sesuai jumlah kolom
If tujuan.CurrentRegion.Row < barisawal Then
jumlahbaris = tujuan.CurrentRegion.Rows.Count - barisawal + 1
Else
jumlahbaris = tujuan.CurrentRegion.Rows.Count
End If
Set tujuan = Range("A" & barisawal)
' melingkupi baris sebanyak jumlahbaris
' kolom sebanyak jumlahkolom
Set tujuan = tujuan.Resize(jumlahbaris, jumlahkolom)
' hapus sorting
ActiveWorkbook.Worksheets("hasil").Sort.SortFields.Clear
' tambahkan sorting
ActiveWorkbook.Worksheets("hasil").Sort.SortFields.Add Key:=Range("A:A"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
' sort sesuai dengan daerah tujuan
With ActiveWorkbook.Worksheets("hasil").Sort
.SetRange tujuan
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
lab_Selesai:
End Sub'--------------
To: [email protected]
From: [email protected]
Date: Mon, 5 Mar 2012 08:56:54 +0000
Subject: RE: [belajar-excel] menggabungkan 2 tabel
Saya gunakan macro sbb:
Sub Gabung()
Dim barisawal, jumlahkolom As Integer
Dim tujuan As Range
Dim asal As Range
barisawal = 2
jumlahkolom = 4
Set tujuan = Sheets("Hasil").Range("A" & barisawal)
' jika sel A2 kosong , berarti tak ada data
If tujuan.Value <> "" Then
tujuan.Select
' menuju akhir baris
Range(Selection, Selection.End(xlDown)).Select
' pilih sampai selebar kolom
Selection.Resize(, jumlahkolom).Select
' hapus isinya
Selection.ClearContents
End If
Sheets("tabel1").Activate
Range("B4").Select
If Selection = "" Then GoTo lab_selesai
' pilih satu baris data
Range("B4").Resize(1, jumlahkolom).Select
' range berisi data
Range(Selection, Selection.End(xlDown)).Select
Set asal = Selection
' ke sel tujuan
asal.Copy tujuan
' hitung jumlah baris data
If tujuan.CurrentRegion.Row < barisawal Then
' misal baris awal 2 , maka yg dihitung 2,3,4,5
jumlahbaris = tujuan.CurrentRegion.Rows.Count - barisawal + 1
Else
jumlahbaris = tujuan.CurrentRegion.Rows.Count
End If
' ke akhir baris data
Set tujuan = Sheets("Hasil").Range("a" & barisawal).Offset(jumlahbaris - 1)
lab_Tabelkedua:
Sheets("tabel2").Activate
Range("B4").Select
If Selection = "" Then GoTo lab_selesai
' pilih satu baris data
Range("B4").Resize(1, jumlahkolom).Select
' menuju data terakhir
Range(Selection, Selection.End(xlDown)).Select
Set asal = Selection
' copy mulai 1 baris setelah baris data terakhir
asal.Copy tujuan.Offset(1)
lab_selesai:
' tujuan dari A2 sampai baris terakhir ( jumlahbaris )
' ke kolom sesuai jumlah kolom
If tujuan.CurrentRegion.Row < barisawal Then
jumlahbaris = tujuan.CurrentRegion.Rows.Count - barisawal + 1
Else
jumlahbaris = tujuan.CurrentRegion.Rows.Count
End If
Set tujuan = Range("A" & barisawal)
' melingkupi baris sebanyak jumlahbaris
' kolom sebanyak jumlahkolom
Set tujuan = tujuan.Resize(jumlahbaris, jumlahkolom)
' hapus sorting
ActiveWorkbook.Worksheets("hasil").Sort.SortFields.Clear
' tambahkan sorting
ActiveWorkbook.Worksheets("hasil").Sort.SortFields.Add Key:=Range("A:A"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
' sort sesuai dengan daerah tujuan
With ActiveWorkbook.Worksheets("hasil").Sort
.SetRange tujuan
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
To: [email protected]
From: [email protected]
Date: Mon, 5 Mar 2012 10:26:36 +0700
Subject: [belajar-excel] menggabungkan 2 tabel
Selamat Siang,
Mohon bantuan dari pakar excel semua, bagaimana formula untuk menggabungkan
dua tabel yaitu tabel 1 dan tabel 2 menjadi table 3 dan tersusun berurutan
berdasarkan tanggalnya. Terimakasih Afdhol