Di tahun 2017 ini saya mendapat kepercayaan untuk menjadi Sekretaris Panitia Pilkades. Salah satu tugas Sekretaris tersebut, saya harus menyajikan data Hak Pilih yang begitu banyak sekali, hampir mencapai 5 ribuan.
Untuk membuat data tersebut saya ingin mengotomatiskan Nomor Urut Hak Pilih tersebut, dan karena saya masih awam dengan hal tersebut, saya mencoba minta bantuan ke bang Google, dan akhirnya saya mendapatkan apa yang diharapkan walaupun tidak sepenuhnya sesuai harapan. Saya mendapat pencerahan di blognya http://www.mtsbmtumbrasanom.id
Dan dalam kesempatan ini saya ingin menuliskan pengalaman dalam membuat nomor urut secara otomatis dengan menggunakan VBA Macro./a>
Di sini saya akan mencoba menuliskan kembali rumus-rumus macronya, yaitu di sheet1 dan di sheet2.
Membuat Nomor Urut Otomatis dengan VBA Macro
Kode untuk Sheet 1
- Masuk ke Microsoft Visual Basic for Applications window dengan menekan tombol Alt + F11 atau anda klik tab "Developer" lalu klik "Visual Basic". Apabila di Office anda belum tampil tab Developer, silahkan baca "Cara Menampilkan Ribbon Developer"
- Klik Microsoft Excel Objects kemudian Klik 2 kali pada Sheet1 (Sheet1)
- Copy Paste kode berikut di bawah ini
'https://baladaka.blogspot.com '============================ Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Static oldRange As Range Dim nRow As Integer, nCol As Integer If Not oldRange Is Nothing Then nRow = oldRange.Row nCol = oldRange.Column If nRow > 1 Then 'Menampilkan nomor urut otomatis. If Len(Cells(nRow, 2).Value) > 0 Then Cells(nRow, 1).Formula = "=COUNTA($B$2:B" & nRow & ")" Else: Cells(nRow, 1).Value = "" End If End If End If Set oldRange = Target End Sub
Kode untuk Sheet 2
Nah, yang jadi masalah bagi saya saat itu adalah posisi kolom dan baris yang akan di isi tidak sesuai dengan harapan. Dan akhirnya saya mencoba mengutak atik rumus tersebut dan Alhamdulillah berhasil.
Di sini saya ingin pada saat kolom Nama yang berada di kolom 13 baris ke 12 dan seterusnya di isi, maka No. akan terisi secara otomatis. Dan saya rubah rumusnya menjadi :
- Klik Microsoft Excel Objects kemudian Klik 2 kali pada Sheet2 (Sheet2)
- Copy Paste kode berikut di bawah ini
'https://baladaka.blogspot.com '============================ Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Static oldRange As Range Dim nRow As Integer, nCol As Integer If Not oldRange Is Nothing Then nRow = oldRange.Row nCol = oldRange.Column 'Menampilkan nama field tabel secara otomatis. If nRow > 11 Then If Len(Cells(nRow, 13).Value) > 0 Then Cells(nRow, 10).Formula = "=COUNTA($M$12:M" & nRow & ")" Else: Cells(nRow, 10).Value = "" End If End If End If Set oldRange = Target End Sub
-
Rumus diatas, akan diuraikan sedikit, sesuai dengan perkiraan yang saya alami. Mohon maaf apabila uraiannya salah
- If nRow > 11 Then
Di sini artinya bahwa apabila baris lebih besar 11 atau mungkin yang saya alami saya ingin mengisi awalnya baris ke 12 maka lebih besarnya adalah 11. Mungkin begitulah kira-kira. - If Len(Cells(nRow, 13).Value) > 0 Then
Rumus yang diberi angka 13 (warna biru), angka 13 ini merupakan kolom M (kolom ke 13) lebih besar dari 0 maka
Cells(nRow, 10).Formula = "=COUNTA($M$12:M" & nRow & ")"
Rumus yang diberi angka 10 yaitu angka yang akan diotomatiskan berada di kolom J (kolom ke 10) dengan formula rumus Counta.
COUNTA($M$12:M" & nRow & ")" yaitu mulai mengambil rumus berada di $M$12 hingga tak terhingga
Else: Cells(nRow, 10).Value = ""
Dan yang ini yaitu apabila di baris tertentu kolom ke 10 akan hilang nomor urutnya apabila di kolom ke 13 (Nama) anda hapus.
Itulah mungkin yang dapat di uraikan di sini, mohon maaf apabila apa yang diuraikan salah. Saya hanya mencoba menguraikan apa yang telah saya coba dalam membuat Nomor Urut tersebut.
Silahkan anda coba isi baris yang diberi warna kuning dan coba juga anda hapus data yang berada di baris yang diberi warna kuning tersebut. Apa sesuai dengan harapan....? Mudah-mudahan.
Selamat Mencoba