Wednesday 2 November 2016

Mail Merge di Excel tanpa Word (Excel ke Excel)

Sumber : http://www.uliansyah.or.id/2009/04/mail-merge-di-microsoft-excel-2007.html

Fasilitas mail merge sudah kita kenal pada Microsoft Words. Fasilitas ini memungkinkan kita untuk mencetak sekumpulan dokumen yang memiliki format yang sama, dengan data yang berbeda-beda. Contoh penggunaan mail merge yang sering kita temui adalah ketika kita mencetak amplop dengan tujuan yang berbeda-beda. Biasanya, format dokumen mail merge diletakkan di sebuah file Words, dan data-datanya diambil dari file Microsoft Excel.
Namun, terkadang kita memerlukan fasilitas mail merge ini pada Microsoft Excel. Saya dan rekan-rekan di kantor telah lama mendambakan keberadaan fasilitas ini di Microsoft Excel. Di kantor saya, banyak pekerjaan yang dikerjakan menggunakan Excel. Bahkan Excel sudah menjadi aplikasi andalan untuk segala kondisi. Pernahkah Anda menemui sebuah aplikasi penilaian proyek sebesar 300 triliun menggunakan Excel? Hehehe.. di kantor saya, ada yang demikian itu. (Padahal di kantor-kantor swasta untuk menangani proyek di atas 5 M saja sudah menggunakan aplikasi taylor-made senilai puluhan sampai ratusan juta).
Dengan bantuan VLOOKUP, Spin Button dan sebaris script VBA kita sudah dapat membuat mail merge di Microsoft Excel 2007.

Kita mulai dengan membuat satu file Excel yang terdiri dari dua sheet. Sheet pertama untuk format dokumen, serta sheet kedua sebagai penampung data. Untuk memudahkan penjelasan selanjutnya, kita namai sheet yang digunakan sebagai format dokumen dengan nama Tampilan, dan sheet tempat data diletakkan dengan nama Database.
Ada syarat penting yang harus tersedia pada sheet Database, yaitu kolom terkiri (kolom A) harus berisi id unik atau primary key. Pokoknya, isi aja kolom A dengan angka 1, 2, 3, dst sampai dengan baris data yang terakhir. Tidak boleh ada angka yang sama.
Setelah itu, di sheet Tampilan sediakan sebuah cell di luar Print Area yang akan digunakan sebagai Reference. Misalnya, print area pada sheet Tampilan yang saya miliki adalah dari kolom A sampai G. Maka saya jadikan cell H1 sebagai cell referensi. Dengan demikian, cell ini tidak akan ikut tercetak di kertas. Cell ini berfungsi sebagai referensi ke kolom Primary Key yang kita telah buat pada sheet Database. Isi cell ini berupa angka satu sampai dengan angka terakhir yang ada pada kolom A sheet Database.
Pada sheet Tampilan, munculkanlah data dari sheet Database menggunakan fungsi VLOOKUP. Gunakan angka pada cell Referensi sebagai trigger VLOOKUP. Misalnya, pada cell yang menampilkan data dari kolom ke 10 sheet Database, formulanya akan berbunyi: =VLOOKUP($H$1;Database!$A$1:$AC$520;10;FALSE). Jika Anda masih belum paham fungsi VLOOKUP, banyak tutorial yang bisa Anda pelajari.
Sampai di sini kita akan masuk pada kunci terpenting pembuatan mail merge pada Excel. Kita akan membuat supaya cell Referensi di sheet Tampilan bisa bekerja os-tos-mas-tis seperti pada fasilitas mail merge yang tersedia di Microsoft Words. Caranya, dengan memanfaatkan Spin Button sebagai pemicu bergeraknya cell Referensi, serta jika Anda mau kita bisa menambahkan sebaris skrip VBA untuk mengotomatisasi pencetakan.
Untuk mewujudkan hal ini, kita munculkan dulu Control Toolbox dan Design Mode. Bagi yang sudah tahu caranya, silahkan lanjut ke alinea berikutnya. Bagi yang belum tahu, lakukan langkah berikut. Pada menu Excel 2007, yang masih juga membingungkan saya itu, klik pada drop down menu di sebelah kanan ribbon. Klik pada More Commands, sehingga muncul jendela Excel Options. Klik pada tab Customize di menu sebelah kiri jendela tersebut. Kemudian pada jendela Customize the Quick Access Toolbar yang muncul, pada Choose commands from pilih All commands. Carilah Insert Control dan Design Mode, lalu klik tombol Add. Pastikan Insert Control dan Design Mode telah muncul di jendela sebelah kanan. Lalu klik OK.
Setelah Control Toolbox dapat dimunculkan, buatlah sebuah tombol Spin Button di sheet Tampilan. Klik pada Control Toolbox dan pilih button yang memiliki dua tanda panah berlawanan arah. Tombol itu jika kita hovering di Toolbox akan memunculkan nama Spin Button. Tempatkan di area yang nyaman bagi Anda. Saya menempatkan Spin Button di sebelah cell Referensi (H1).
Setelah itu, klik kanan pada Spin Button, pilih Properties. Pada jendela Properties yang muncul, ada tiga properties yang harus disesuaikan, yaitu LinkedCell, Min dan Max. Cari property LinkedCell dan isikan dengan alamat cell Referensi, dalam file yang saya buat alamatnya di H1. Kemudian, isi property Min dengan 1 dan property Max dengan angka terakhir di kolom A sheet Database. Setelah itu, tutup jendela Properties.
Langkah terakhir adalah menonaktifkan Design Mode, agar Spin Button yang baru saja kita oprek dapat digunakan. Klik pada icon Design Mode di sebelah kanan ribbon. Setelah Design Mode pada posisi off, cobalah mengklik Spin Button dan perhatikan efeknya pada cell Referensi. Angka pada cell tersebut dapat bergerak maju mundur sesuai klik yang kita lakukan pada SpinButton. Jika cell-cell pada sheet Tampilan sudah kita sematkan fungsi VLOOKUP, maka cell-cell tersebut juga akan berubah sesuai klik pada Spin Button. Selain melakukan klik pada SpinButton, kita juga bisa mengubah secara manual isi cell Referensi. Kita bisa memasukkan langsung angka berapa pun pada cell ini.
Sampai di sini mail merge pada Excel 2007 sudah bisa digunakan seperti pada Microsoft Words. Tapi jika Anda adalah seorang pemalas seperti saya, kita bisa meningkatkan mail merge excel ini agar kerjaan dapat diselesaikan lebih efisien. Cukup dengan satu klik, ganti field merge dan pencetakan bisa dilakukan bersamaan. Caranya sbb.
Kita aktifkan dulu Design Mode dengan mengklik tombol Design Mode, agar kita bisa mengedit Spin Button. Kemudian, klik ganda pada Spin Button sampai muncul jendela VBA. Tambahkan skrip
ActiveSheet.PrintOut di tengah dua skrip yang sudah ada. Sehingga skrip selengkapnya menjadi:
Private Sub SpinButton1_Change()
ActiveSheet.PrintOut
End Sub
Tutup jendela VBA dengan File | Close and Return to Microsoft Excel (Alt Q). Lalu non-aktifkan lagi
Design Mode. Nah, setelah langkah ini dilakukan, setiap kali kita mengklik Spin Button, kita akan langsung berpindah field merge sekaligus melakukan pencetakan. Dengan cara ini, tugas saya mencetak dokumen untuk dikirim kepada 510 pemerintah daerah se-Indonesia setiap bulan itu bisa dilakukan dengan jauh lebih mudah.
Ketika membuka kembali file mail merge ini, jangan lupa untuk meng-enable macro. Karena jika tidak di-enable, maka macro secara default akan dinonaktifkan sehingga tombol Spin Button tidak dapat digunakan. Caranya dengan meng-klik pada jendela Security Warning yang muncul, kemudian klik pada Enable.
Untuk mempermudah memahami tutorial ini, Anda dapat mengunduh contoh file mail merge Excel yang saya gunakan.
Saya dedikasikan tulisan ini untuk rekan-rekan kerja di Subdit Pelaksanaan Transfer II, dan seluruh rekan-rekan DJPK. Terimakasih juga pada milis xl-mania. Semoga tulisan ini bermanfaat. Selamat mencoba!
Update!Saya menambahkan CheckBox untuk mengendalikan pencetakan. Jika CheckBox di-check, maka ketika kita menekan tombol SpinButton, maka pencetakan akan berjalan otomatis. Data yang tampil akan berpindah dari nomor referensi sebelumnya, plus data yang baru akan langsung dicetak.
Jika CheckBox tidak di-check, maka ketika kita menekan tombol SpinButton, perpindahan tampilan data tidak diikuti dengan pencetakan otomatis.
Skrip VBA yang digunakan menjadi:
Private Sub SpinButton1_Change()
If CheckBox1.Value = True Then ActiveSheet.PrintOut
End Sub

13 comments:

  1. bos gak ada video atau gambarnya kah.pemula banget ni

    ReplyDelete
    Replies
    1. bisa WA saya jika mau tanya o8537777IOI6

      Delete
    2. Assalamualaikum tuan. gi mana yek saya mau dapat videonya...

      Delete
  2. kak, ada link lain mau liat contoh yg kakak buat

    ReplyDelete
    Replies
    1. bisa WA saya jika mau tanya o8537777IOI6

      Delete
  3. TRIMS YA BOZ... SANGAT MEMBANTU SAYA UTK MERINGANKAN PEKERJAAN,,,

    ReplyDelete
  4. terima kasih ilmunya, barakallah

    ReplyDelete
  5. Terima kasih sangat membantu gan :)

    ReplyDelete
  6. sudah saya Praktekkan... Terima kasih ilmunya.

    Untuk Nge Print semua data sekaligus bagaimana ya? (biar tidak klik satu2)

    ReplyDelete
    Replies
    1. saya juga menanyakan ini, nyari caranya dimana-mana ga ada.

      Delete
  7. makasih ilmunya. udah dipraktekin. tp cara printnya gmn yah?

    ReplyDelete
  8. Terimakasih materinya , sangat membantu..cuma bingung bikin dan ngefungsiin checkbox "langsung cetaknya" nya gimana y..saya sudah ganti script VBA spt yg ditutorkan tapi error command

    ReplyDelete