Cara Membagi Data Excel per Sheet dengan Macro

Pada artikel kali ini saya membagikan sebuah tutorial membagi sebuah data Excel sesuai dengan Kolom yang anda inginkan. 

Saya menemukan cara ini awalnya lagi mendapatkan tugas dari atasan untuk membagi data sesuai dengan permintaan, waktu itu tidak mungkin sekali menggunakan cara manual karena memakan waktu karena saat itu melakukan pembagian data dengan puluhan ribu kolom dan jumlah data yang akan dibagi dan pengelompokan sekitar ada 30 lebih kelompok. Akhirnya saya browsing di salah satu forum (lupa nama forumnya karena menemukan cara ini sekitar tahun 2016).

Konsepnya, puluhan ribu data tersebut dibagi sesuai dengan kolom yang diinginkan (misalkan dibagi sesuai dengan nama kecamatan). Setelah itu datanya terbagi dalam sheet excel.

Cara ini yang pasti menggunakan VBA dan Macro dimana fitur yang ada di dalam Excel mulai excel 2007 sampai Excel 2019.

Lalu bagaimana caranya? Ikuti langkah berikut ini

  • Siapkan datanya terlebih dahulu datanya yang akan kita bagi. Pada Kasus ini saya ingin membagi data berdasarkan nama kecamatan yang sudah saya siapkan.

Data tersebut akan membagi berdasarkan nama Kecamatan (lingkaran merah)

  • Gunakan Skrip dibawah ini.

Sub SplitData()
Const NameCol = “A”
Const HeaderRow = 1
Const FirstRow = 2
Dim SrcSheet As Worksheet
Dim TrgSheet As Worksheet
Dim SrcRow As Long
Dim LastRow As Long
Dim TrgRow As Long
Dim Student As String
Application.ScreenUpdating = False
Set SrcSheet = ActiveSheet
LastRow = SrcSheet.Cells(SrcSheet.Rows.Count, NameCol).End(xlUp).Row
For SrcRow = FirstRow To LastRow
Student = SrcSheet.Cells(SrcRow, NameCol).Value
Set TrgSheet = Nothing
On Error Resume Next
Set TrgSheet = Worksheets(Student)
On Error GoTo 0
If TrgSheet Is Nothing Then
Set TrgSheet = Worksheets.Add(After:=Worksheets(Worksheets.Count))
TrgSheet.Name = Student
SrcSheet.Rows(HeaderRow).Copy Destination:=TrgSheet.Rows(HeaderRow)
End If
TrgRow = TrgSheet.Cells(TrgSheet.Rows.Count, NameCol).End(xlUp).Row + 1
SrcSheet.Rows(SrcRow).Copy Destination:=TrgSheet.Rows(TrgRow)
Next SrcRow
Application.ScreenUpdating = True
End Sub

  • Buka Macronya dengan cara tekan Alt+F11.
  • Pilih menu Insert dan Pilih Menu Module.

Menu pada Toolbar VBA. Gunakan menu Insert >> Module

  • Pastekan script pada point ke 2 ke dalam halaman ini. Serta Pada Kolom yang saya lingkari, sesuaikan dengan kolom nama kecamatan (seperti contoh point 1)

Pastekan Skrip pada bagian halaman ini, lalu sesuai kan dengan kolom data yang ingi dibagi (seperti lingkaran merah)

  • Lalu tekan tombol play untuk menjalankan skrip

Tombol Play berwarna hijau tersebut digunakan untuk menjalankan skrip.

  • Tunggu hingga selesai

Perhatikan pada bagian sheet. Data tersebut sudah terbagi berdasarkan nama kecamatan

Setelah selesai, lihatlah excel pada bagian sheet yang sudah dibagi dengan menggunnakan cara diatas.

Perlu diketahui, pada saat proses membagi data tersebut, tidak ada karakter yang tidak bisa ditulis di dalam penamaan sheet seperti tanda ; dan juga pastikan jumlah karakter tak lebih dari 30 karakter.

Sekarang justru lebih mudah, salah satu website menyediakan sebuah Tools bernama Kutools, dimana ini serangkaian rumus yang belum ada di fitur excel sudah ada dalam tools ini, tapi saya pribadi lebih nyaman menggunakan VBA Macro karena sudah terbiasa.

 

Share

Leave a Reply

Your email address will not be published.