Tuesday, July 18, 2017

Cara Cepat Cetak Absensi Siswa Menggunakan Excel

Membuat absensi untuk siswa di sekolah maupun di madrasah sudah menjadi pekerjaan rutin. Membuat absensi siswa tidaklah sulit jika data siswa memang sudah ada kolom keterangan kelas. Secara manual kita dapat menggunakan filter untuk memisahkan kelas. selanjutnya mengcopy dan paste pada form absensi. 

Sebagai asumsi untuk memahami logika, disuatu sekolah ada sebanyak 5 kelas. maka kita dapat membuat form absensi kelas sebanyak 5 di sheet berbeda. Selanjutnya mengambil data pada database berdasarkan kelas. Data tersebut kita copy dan mempastekannya pada tiap form kelas masing-masing. jadi tidak ada yang sulit walaupun dikerjakan manual. Cukup disini bagi yang tidak ingin mempersulit pekerjaan. Yang terpenting untuk pekerjaan mencetak absensi terselesaikan.

Bagi yang ingin ribet dan membuat form absensi di satu sheet saja dan disertakan dengan tombol yang dapat memfilter otomatis kelas yang diinginkan, silahkan melanjutkan hingga akhir posting ini.


Langkah - Langkah Membuat Absensi Siswa :
  • Buka Excel, pada sheet satu buatlah database seperti yang terlihat pada gambar format gif diatas. Pada Sheet2, rename nama sheet menjadi ABSENSI. Buatlah Form format yang akan dijadikan absensi pada sheet ini. Download ajha filenya disini, lama jelasin penyusunan database sama form yang akan dijadikan absensi. Buka file  yang sudah didownload tersebut.
  • Buatlah range dengan cara klik pada tab Formulas lihat pada menu Defined Names, klik Define Name dan akan muncul kotak dialog isikan pada Name "RData" dan Refers To dengan "=Sheet1!$A$1:$I$361" tanpa tanda petik ya..!! Buat juga range untuk data kelas yang akan ditampilkan pada Combobox dengan cara yang sama tetapi Name isikan "Kelas" dan Refers To isi dengan "=ABSENSI!$A$1:$A$12". Catatan Refers to lebih bagus menggunakan range dinamis karena bila ada penambahan data terbaru, range dinamis mampu membaca data terbaru yang ditambahkan sehingga saat difilter tidak ada data yang lose. Baca range dinamis pada posting Range Dinamis
  • Selanjutnya kita akan melakukan Advanced Filter dengan cara posisi sheet yang sedang aktif pada sheet absensi klik pada tab Data lihat pada menu Sort & Filter dan klik Advanced. Pada kotak dialog Advanced Filter Pilih Copy to another location, List range isikan dengan range RData, Criteria range pilih area area cell C1 hingga J2, Copy to pilih area C13 hingga J13 dan selanjutnya klik Ok. Maka data akan masuk pada area tabel absensi sesuai data kelas yang ada pada J2. Perhatikan gambar dibawah ini. Sampai disini sebenarnya kita sudah dapat melakukan Advanced filter dan dapat dilakukan berulang kali jika ingin data absensi untuk kelas lain. Data yang akan di filter dan ditempatkan pada form absensi tergantung data kelas yang dituliskan pada cell J2. Ada baikknya agar tidak direpotkan dengan memfilter berulang kali untuk dapatkan data masing-masing kelas maka lanjutkan untuk membuat tombol yang akan melakukan pekerjaan selanjutnya secara otomatis.
  • Pada Sheet absensi tambahkan sebuah Combobox dan dua buah CommandButton dengan cara klik pada tab Developer, pada menu Controls klik Insert dan pilih Combobox yang terdapat pada ActiveX Control
  • Atur properties masing-masing Control dengan ketentuan sebagai berikut :
Properties Combobox
Klik kanan pada Combobox1 pilih properties, isikan BackColor : &H00000040&, BorderColor : &H000000FF&, LinkedCell : J2 dan LinkFillRange : Kelas, Lainnya standart

Properties CommandButton
CommandButton1 dengan properties BackColor : &H00000040&, Caption : Filter Kelas, ForeColor : &H00FFFFFF&. Properties lainnya standart
CommandButton2 dengan properties BackColor : &H00000040&, Caption : Cetak, ForeColor : &H00FFFFFF&. Properties lainnya standart
  • Jika tahap-tahap yang diterangkan diatas sudah dilakukan maka tahap selanjutnya penempatan kode Vba. Klik kanan pada CommandButton1 dengan caption Filter Kelas pilih View Code dan tulislah kode berikut ini yang akan berfungsi untuk menjalankan Advanced Filter otomatis
Private Sub CommandButton1_Click()

' ini kode untuk Advance Filternya
ThisWorkbook.Sheets("Sheet1").Range("B1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=ThisWorkbook.Sheets("ABSENSI").Range("C1:J2"), _
CopyToRange:=Range("C13:J13"), Unique:=False
Columns("G:J").Hidden = True

End Sub
  • Kode Vba berikut ini untuk menjalankan perintah cetak dokument dan sudah dilengkapi untuk mensetting kebutuhan dukument yang akan dicetak. Klik kanan tombol CommandButton2 dengan caption Cetak dan tulislah kode Vba berikut ini
Private Sub CommandButton2_Click()
Dim Ws As Worksheet: Set Ws = Sheet2

With Ws
.Activate
.PageSetup.PrintArea = "B9:AX51"
.PageSetup.Zoom = 85
.PageSetup.PaperSize = xlPaperA4
.PageSetup.Orientation = xlLandscape
.PageSetup.LeftMargin = Application.CentimetersToPoints(0.21)
.PageSetup.RightMargin = Application.CentimetersToPoints(0.13)
.PageSetup.BottomMargin = Application.CentimetersToPoints(1.5)
.PageSetup.TopMargin = Application.CentimetersToPoints(0.5)
.PageSetup.CenterHorizontally = True
.PageSetup.CenterVertically = False
'.Application.Dialogs(xlDialogPrint).Show
.PrintPreview
End With

End Sub

Jika sudah melakukan penempatan kode Vba maka selesailah sudah. Selanjutnya silahkan menguji aplikasi untuk menfilter data kelas agar tampil pada Form Absensi Siswa. Jika anda sudah mengikuti posting ini dari tahap pertama hingga terakhir dengan benar maka aplikasi yang anda buat juga akan berjalan sebagaimana yang terlihat pada gambar format gif diatas.

Demikian posting tentang Cara Cepat Cetak Absensi Siswa Menggunakan Excel. Semoga menjadi referensi bagi yang sedang mencari cara mencetak absensi siswa. Bila posting ini dirasakan bermanfaat mohon dapat mengklik tombol share media sosial yang tersedia diakhir posting. Jika ada kendala ataupun ingin memberikan saran dan kritik, dapat ditulis pada kolom komentar yang tersedia.

Nama Admin Zaki Fitriadi, Pengangguran, Blogger Awam Kelahiran Banda Aceh 1982, Mengenal Blog Tahun 2010, Baru Aktif Tahun 2015, Berbagi Apa Yang Dipejari Secara Otodidak di Dunia Maya

5 komentar

Maaf Gan, Kenapa di VBA saya tidak mau menggunakan rumus seperti Action:= Selalu ada peringatan "Compile Error: Expected:Expression" dan merujuk ke ":="
Solusinya apa yah??

Mungkin masih ada kurang dalam penulisan kode gan... cek lagi dengan teliti..

Jazakallahu khoir atas ilmunya mas. Mas, bisa gak data dari database yg yang urutannya satu baris dicopy lalu diubah urutannya sesuai tabel yg dibutuhkan mnjadi bbrapa baris?

Dicopy lalu dipaste k tmpat lain mksdnya mas. Dgn mnggunakan vba

Komentar Anda Sangat Menentukan Kelangsungan Blog ini
EmoticonEmoticon