Cara Print Masal dengan Banyak Data Menggunakan VBA Excel dan Menyimpannya ke PDF
Bagi Anda yang bekerja dengan data dalam jumlah besar, seperti raport siswa atau laporan lainnya, mencetak file satu per satu tentu memakan waktu. Dalam artikel ini, kami akan menjelaskan bagaimana memanfaatkan VBA Excel untuk melakukan print masal dengan banyak data secara otomatis, dan menyimpan hasilnya dalam format PDF.
Tampilan Awal
Persiapan Data dan Desain Layout
- Data: Semua data siswa ditempatkan pada s sheet terpisah, dan diatur sedemikian rupa sehingga bisa dipanggil otomatis menggunakan VBA.
- Layout Halaman: Pastikan tampilan sudah rapi dan sesuai untuk dicetak ke PDF.
Langkah-langkah Implementasi VBA
Berikut langkah-langkah untuk mencetak laporan secara otomatis:
1. Tambahkan Tombol dan Buat Makro
Gunakan menu Developer untuk menambahkan tombol-tombol, lalu sambungkan tombol tersebut ke kode VBA.
2. Kode VBA untuk Navigasi Data
Sub Rectangle4_Click()
Dim awal, Akhir As Integer
Dim filePath As String
awal = Range("S3").Value
Akhir = Range("S5").Value
If awal <= Akhir And awal >= 1 Then
Application.ScreenUpdating = False
For i = awal To Akhir
With Sheets("CetakRapot")
.Range("N4").Value = i
filePath = "D:\00 Asisten Kurikulum\03 STS\Rapot Kelas XII 2324 Ganjil 2024\FIX\Rapot 12 TP 1\" & .Range("N12").Value & ".pdf"
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard
End With
Next i
Else
MsgBox "Cek lagi Nomor yang akan dicetak...!!!!", vbCritical, "Cetak Halaman"
End If
End Sub
Sub Rectangle4_Click()
Dim awal, Akhir As Integer
Dim filePath As String
awal = Range("S3").Value
Akhir = Range("S5").Value
If awal <= Akhir And awal >= 1 Then
Application.ScreenUpdating = False
For i = awal To Akhir
With Sheets("CetakRapot")
.Range("N4").Value = i
filePath = "D:\00 Asisten Kurikulum\03 STS\Rapot Kelas XII 2324 Ganjil 2024\FIX\Rapot 12 TP 1\" & .Range("N12").Value & ".pdf"
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard
End With
Next i
Else
MsgBox "Cek lagi Nomor yang akan dicetak...!!!!", vbCritical, "Cetak Halaman"
End If
End Sub
Berikut adalah penjelasan dari kode VBA Rectangle4_Click
yang Anda berikan:
1. Fungsi Utama
Subroutine ini dijalankan ketika tombol Rectangle4 (tombol pada lembar kerja) diklik. Fungsinya adalah mencetak laporan (lembar kerja CetakRapot) menjadi file PDF untuk sejumlah data tertentu, dengan rentang nomor yang ditentukan oleh pengguna.
2. Deklarasi Variabel
Dim awal, Akhir As Integer
Dim filePath As String
awal
danAkhir
: Variabel untuk menyimpan nomor awal dan akhir data yang akan dicetak (dideklarasikan sebagai tipe Integer).filePath
: Variabel untuk menyimpan path (lokasi) file PDF yang akan dibuat.
3. Mendapatkan Rentang Data
awal = Range("S3").Value
Akhir = Range("S5").Value
Range("S3")
: Sel tempat pengguna memasukkan nomor awal data yang ingin dicetak.Range("S5")
: Sel tempat pengguna memasukkan nomor akhir data yang ingin dicetak.
4. Validasi Rentang Data
If awal <= Akhir And awal >= 1 Then
Kode ini memastikan bahwa:
awal
lebih kecil atau sama denganAkhir
.awal
harus lebih besar atau sama dengan 1.
Jika kondisi ini tidak terpenuhi, maka:
MsgBox "Cek lagi Nomor yang akan dicetak...!!!!", vbCritical, "Cetak Halaman"
Pesan peringatan akan ditampilkan, dan proses cetak tidak akan dilanjutkan.
5. Perulangan Untuk Mencetak Data
For i = awal To Akhir
With Sheets("CetakRapot")
.Range("N4").Value = i
filePath = "D:\00 Asisten Kurikulum\03 STS\Rapot Kelas XII 2324 Ganjil 2024\FIX\Rapot 12 TP 1\" & .Range("N12").Value & ".pdf"
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard
End With
Next i
Penjelasan:
-
Perulangan
For i = awal To Akhir
:- Perulangan dilakukan dari nomor awal hingga nomor akhir.
-
Sheets("CetakRapot")
:- Lembar kerja CetakRapot digunakan untuk mencetak setiap data.
-
Range("N4").Value = i
:- Nomor data yang sedang dicetak (variabel
i
) dimasukkan ke dalam sel N4 pada lembar kerja CetakRapot. Hal ini mungkin digunakan untuk mengisi data dinamis di laporan berdasarkan nomor.
- Nomor data yang sedang dicetak (variabel
-
filePath
:- Lokasi dan nama file PDF ditentukan dengan mengambil nama file dari Range("N12"). Misalnya:
"D:\00 Asisten Kurikulum\...\Rapot 12 TP 1\[NamaSiswa].pdf"
- Lokasi dan nama file PDF ditentukan dengan mengambil nama file dari Range("N12"). Misalnya:
-
ExportAsFixedFormat
:- Lembar kerja diekspor ke file PDF dengan kualitas standar (xlQualityStandard) menggunakan nama file di lokasi yang ditentukan.
6. Penanganan Layar
Application.ScreenUpdating = False
- Digunakan untuk mempercepat proses dengan menonaktifkan pembaruan layar sementara perulangan dijalankan.
7. Jika Validasi Gagal
Jika rentang nomor tidak valid:
MsgBox "Cek lagi Nomor yang akan dicetak...!!!!", vbCritical, "Cetak Halaman"
Pesan peringatan akan ditampilkan.
8. Output
- Program ini mencetak file PDF untuk setiap nomor dalam rentang
awal
hinggaAkhir
. - Nama file dan data laporan diambil dari lembar kerja CetakRapot.
Contoh Kasus
Misalkan:
Range("S3") = 1
,Range("S5") = 3
.Range("N12")
berisi nama siswa, misalnya "AhmadRifai", "BudiSantoso", dll.
Output:
- File PDF:
D:\00 Asisten Kurikulum\...\AhmadRifai.pdf
D:\00 Asisten Kurikulum\...\BudiSantoso.pdf
Posting Komentar untuk "CETAK MASAL DENGAN KELUARAN PDF DARI EXCEL"