Referensi | : | |
Platform | : | Microsoft Excel dan Microsoft Project |
Lokasi File | : | download |
Salah satu setting yang perlu diperhatikan dalam penggunaan Microsoft Project (MSProject) adalah memasukkan Hari Libur Nasional ke dalam kalender. Apabila proyek yang akan dilaksanakan telah disepakati atau diusulkan bahwa di hari Libur Nasional adalah bukan hari kerja, maka tanggal-tanggal hari libur tersebut harus dimasukkan dalam list exceptions di calendar yang akan dipakai.
Contoh Kalender (Calendar) yang belum dimasukkan daftar hari libur adalah:
Daftar hari libur bisa dimasukkan secara manual di tab Exceptions dengan memasukkan nama hari libur diikuti dengan tanggal awal libur dan akhir libur.
Apabila list hari libur tersimpan dalam Microsoft excel seperi di bawah:
Maka dengan bantuan Visual Basic Application for Excel (VBA Excel), proses update calendar di MSProject bisa dilakukan secara otomatis.
Berikut adalah code VBA Excel yang dimaksud:
Sub UpdateHariLiburNasional()
‘Code berikut berfungsi untuk menambahkan hari libur nasional di microsoft project (MSProject). ‘Pada visual basic editor direferensikan ke Microsoft Project Library agar dapat mengakses object di ‘Microsoft Project. ‘karena saya menggunakan microsoft project 2010, maka nama referensinya : Microsoft Project 14.0 ‘Object Library ‘untuk MSProject versi yang lain, nama referensi hanya berbeda pada angka di belakang tulisan ‘”Microsoft Project XX.X” ‘Alokasi memory untuk object aplikasi MSProject dan Project yang aktif Dim msApp As MSProject.Application, msPro As Project ‘akan muncul pesan error jika program MSProject belum dijalankan On Error Resume Next ‘set ke object aplikasi MSProject Set msApp = GetObject(, “MSProject.Application”) If Err.Number Then Err.Clear MsgBox ” Program Microsoft Projet Belum diaktifkan” Exit Sub End If ‘set ke object projek yang aktif Set msPro = msApp.ActiveProject ‘alokasi memory untuk object kalender Dim zCal As Calendar, nmCalendar As String ‘set ke object kalender ‘nama kalender yang akan diisi hari libur pada contoh kali ini adalah “Standard” ‘jika nama kalender tidak ditemukan, maka keluar prosedur nmCalendar = “Standard” On Error Resume Next Set zCal = msPro.BaseCalendars(nmCalendar) If Err.Number Then Err.Clear ‘bersihkan error MsgBox “Kalender ” & nmCalendar & ” tidak ada”, vbCritical GoTo BersihkanAplikasiMSProject Exit Sub ‘keluar prosedur End If ‘membaca list tanggal pada Microsoft Excel di sheet yang aktif ‘informasi tangal ada di kolom A, sedangkan informasi keterangan ada di kolom B ‘data dibaca dimulai dari baris ke-dua Dim rgTanggal As Range, rg As Range ‘set range tanggal di aktif sheet Set rgTanggal = Range(Range(“a2”), Range(“a2”).End(xlDown)) ‘membaca tanggal dan keterangan hari libur For Each rg In rgTanggal ‘menambahkan exception di object calender zCal.Exceptions.Add _ Type:=pjDaily, _ Start:=rg.Value, _ Finish:=rg.Value, _ Name:=rg.Offset(, 1).Value Next rg BersihkanAplikasiMSProject: Set msApp = Nothing End Sub |
Seperti telah tercatat di code VBA Excel di atas, syarat-syarat sebelum menjalan VBAExcel di atas adalah:
- VBA sudah direferensikan ke object MSProject Library
- Program Microsoft Project dan Microsft Excel harus dibuka bersamaan.
- Nama Calender yang dipilih harus sudah ada di MSProject yang aktif.
Contoh calendar yang telah diupdate:
Selamat mencoba..