Monday, January 5, 2009

Excel >> Pengolahan Data Tanggal (Function & Add-Ins)

Pengolahan untuk melakukan konversi data string menjadi tanggal dengan menggunakan formula dan fungsi bawaan MS-Excel, akan dirasakan cukup rumit untuk pemula. Jika anda bertanggung jawab untuk mambantu user dalam hal pengolahan data seperti ini, maka akan dibutuhkan satu tools yang akan membuat anda bisa berisitirahat dari rutinitas melayani user. Begitu juga dengan user yang akan mengurangi ketergantungannya dengan anda. Kemampuan MS-Excel mengelola VBA script akan sangat membantu.

1. Membuat Fungsi
- Buka worksheet baru
- Pilih menu Tools-Macro-Visual Basic Editor
- Pada panel sebelah kiri Klik kanan VBA Project(sheet1)
- Pilih Insert-Module
- Pada panel sebelah kanan ketik script berikut :

Function weekdmy(ByVal tanggal As Range) As Variant
Dim vtanggal As String
Dim vweeknum As Date
vtanggal = tanggal.Value
vweeknum = DateSerial(2000 + Val(Right(vtanggal, 2)), Mid(vtanggal, Len(tanggal.Value) - 6 + 3, 2), Left(vtanggal, Len(tanggal.Value) - 6 + 2))
weekdmy = ISOWeeknum(vweeknum)
End Function


Function weekymd(ByVal tanggal As Range) As Variant
Dim vtanggal As String
Dim vweeknum As Date
vtanggal = tanggal.Value
vweeknum = DateSerial(Left(vtanggal, 4), Mid(vtanggal, 5, 2), Right(vtanggal, 2))
weekymd = ISOWeeknum(vweeknum)
End Function

Function weekmdy(ByVal tanggal As Range) As Variant
Dim vtanggal As String
Dim vweeknum As Date
vtanggal = tanggal.Value
vweeknum = DateSerial(Right(vtanggal, 2), Left(vtanggal, Len(tanggal.Value) - 6 + 2), Mid(vtanggal, Len(tanggal.Value) - 6 + 3, 2))
weekmdy = ISOWeeknum(vweeknum)
End Function

Function ISOWeeknum(dt As Date) As Integer
ISOWeeknum = DatePart("ww", dt + (Weekday(dt, vbMonday) <> 1), vbMonday, vbFirstFourDays)
If DatePart("ww", dt + 7, vbMonday, vbFirstFourDays) = 2 Then ISOWeeknum = 1
End Function

2. Menyimpan Worksheet sebagai Add-Ins
- Pilih Menu File-Save as
- Expand pilihan save in dan pilih folder :
C:\Program Files\Microsoft Office\OFFICE11\ADDINS\
- Expand pilihan Save as type
- Pilih Microsoft Office Excel Add-In (*.xla)
- Ketik file name weeknumnya
- Pilih Save

3. Menyisipkan sebagai Add-Ins
- Buka atau buat sembarang worksheet
- Pilih menu Tools-Add Ins
- Pilih Browse
- Buka folder : C:\Program Files\Microsoft Office\OFFICE11\ADDINS\
- Pilih file weeknumnya.xla
- Pilih OK, kemudian pilih OK
- Fungsi siap digunakan

4. Cara pemakaian
Pemakaian fungsi buatan yang sudah kita sisipkan sebagai AddIn sama seperti halnya kalau menggunakan fungsi bawaan MS-Excel. Ada tiga buah fungsi yang bisa kita gunakan :
=weekdmy(cell), digunakan untuk mendapatkan week number dengan format data input ddmmyy, mis. “200808” untuk 20 Agustus 2008.
=weekmdy(cell), digunakan untuk mendapatkan week number dengan format data input mmddyy, mis. “082008” untuk 20 Agustus 2008.
=weekymd(cell), digunakan untuk mendapatkan week number dengan format data input yyyymmdd, mis. “20080820” untuk 20 Agustus 2008.


Note :
Function ISOWeeknum dikutip dari :
http://www.tech-archive.net/Archive/Excel/microsoft.public.excel.misc/2007-08/msg00593.html

1 comment:

  1. assalamu'alaikum pak Edi..
    kalau logika looping penomoran otomatis berdasarkan tanggal di vb 6.0 gimana ya..?
    jadi setiap ganti hari, penamban otomatisnya berulang dari satu lagi.
    formatnya :ddmmyyy0xx
    mis:
    tgl(1Jan2009):01012009001...01012009010
    tgl(2jan2009):02012009001...02012009010

    kalau bisa sekalian scriptnya pak.

    makasih...

    ReplyDelete