Cara Membuat Sheet Khusus untuk Mencatat Perubahan Nilai Sel di dalam Sheet Excel Lainnya
Event Workbook yang akan kita bahas kali ini adalah contoh event Workbook_SheetChange yang dicetuskan sewaktu konten dalam suatu sel yang mana saja diubah nilainya.
Perubahan akan tercatat dalam sebuah sheet khusus seperti dalam contoh sheet "Riwayat".
Terlebih dahulu silakan Anda buat Sheet khusus tersebut dan pada baris pertama berikan nama judul tiap-tiap kolomnya: Tanggal, Waktu, Nama Sheet, dan Alamat Sel.
Contoh kode macro di bawah ini mempertunjukkan cara mencetuskan event SheetChange tersebut.
Ikuti langkah demi langkah pembuatan kode sebagai berikut:
1. Aktifkan sheet Riwayat, lalu buka VBE dengan cara menekan Alt+F11,
2. Tekan Ctrl+R untuk memastikan jendela Project Explorer membuka.
3. Pada Project Explorer klik folder dengan nama Microsoft Excel Objects.
4. Dalam daftar di bawah Microsoft Excel Objects terdapat objek workbook dengan nama ThisWorkbook. Dobel-klik ThisWorkbook untuk memunculkan module workbook.
5. Pada kotak daftar pilihan Object pilih Workbook.
6. Pada kotak daftar pilihan Procedure pilih SheetChange.
7. Tepat di bawah Private Sub Workbook_SheetChange tetapkan sheet Riwayat sebagai sheet yang mencatat setiap perubahan pada sheet, lalu hentikan event jika ada sel yang diubah pada sheet Riwayat tersebut:
If Sh.Name = "Riwayat" Then Exit Sub
8. Tetapkan variabel berjenis data long sebagai penyedia baris pada sheet Riwayat:
Dim X As Long
9. Masukkan jumlah baris pada baris baru berikutnya di bawah baris data terakhir pada kolom A:
X = Worksheets("Riwayat").Cells(Rows.Count, 1).End(xlUp).Row + 1
10. Pada kolom A, masukkan tanggal perubahan:
Worksheets("Riwayat").Cells(X, 1).Value = VBA.Date
11. Pada kolom B, masukkan waktu perubahan:
Worksheets("Riwayat").Cells(X, 2).Value = VBA.Time
12. Pada kolom C, masukkan nama sheet yang mengalami perubahan:
Worksheets("Riwayat").Cells(X, 3).Value = Sh.Name
13. Pada kolom D, masukkan alamat sel yang diubah:
Worksheets("Riwayat").Cells(X, 4).Value = Target.Address
14. Buat agar tiap kolom pada sheet Riwayat disesuaikan dengan lebar tulisannya secara otomatis menggunakan perintah AutoFit:
Worksheets("Riwayat").Columns.AutoFit
15. Kode lengkapnya menjadi sebagai berikut:
If Sh.Name = "Riwayat" Then Exit Sub
Dim X As Long
X = Worksheets("Riwayat").Cells(Rows.Count, 1).End(xlUp).Row + 1
Worksheets("Riwayat").Cells(X, 1).Value = VBA.Date
Worksheets("Riwayat").Cells(X, 2).Value = VBA.Time
Worksheets("Riwayat").Cells(X, 3).Value = Sh.Name
Worksheets("Riwayat").Cells(X, 4).Value = Target.Address
Worksheets("Riwayat").Columns.AutoFit
End Sub
16. Kembali ke worksheet dengan cara menekan Alt+Q lalu aktifkan sheet lain pada workbook yang sama lalu masukkan suatu nilai pada sel mana saja dalam sheet tersebut, kemudian buka kembali sheet Riwayat dan amati perubahannya.
Demikian pembahasan tentang membuat sheet untuk mencatat perubahan milai sel di sheet lainnya dalam suatu workbook Excel, semoga postingan ini bermanfaat.
