May 16, 2015

UDF untuk Operasi Penjumlahan dan Pengurangan Waktu pada Excel

 Ketika saya memasukkan angka 0830 (yang menginterpretasikan waktu jam 08:30) cell A1 pada excel, lalu di cell B2 saya ingin tahu berapa waktu akhir jika waktu 0830 saya tambahkan dengan 45 menit. Hasil yang saya (dan mungkin semua orang) harapkan waktu akhirnya akan menjadi 0915. Tetapi jika kita memasukkan formula "=A1+45" maka hasilnya akan menjadi 0875 (atau 875 tergantung format cell-nya). Nah, bagaimana caranya supaya hasilnya bisa seperti yang diharapkan. Saya tidak tahu apakah excel punya formula yang mengakomodasi operasi penjumlahan/pengurangan jam dan menit. Tapi saya coba buatkan UDF (User Defined Function) untuk mengakomodasi keperluan tersebut. Salin dan tempel kode berikut ke dalam module VBA.



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Function TAMBAHMENIT(WaktuAwal As Variant, MntSelisih As Variant)
Dim MntJumlah As Variant, WaktuAkhir As Variant, JamJumlah As Variant
Dim a As Long, b As Long, c As Long
  
If Len(WaktuAwal) = 3 Then
    WaktuAwal = "0" & WaktuAwal
End If

MntJumlah = Right(WaktuAwal, 2) + MntSelisih

If MntSelisih < 0 Then
    If Right(WaktuAwal, 2) + MntSelisih < 0 Then
        c = Int(MntJumlah / 60)
        a = MntJumlah Mod 60
        JamJumlah = Left(WaktuAwal, 2) + c
        MntJumlah = 60 + a
    Else
        JamJumlah = Left(WaktuAwal, 2)
    End If
ElseIf MntSelisih >= 0 Then

    If MntJumlah >= 60 Then
        c = Int(MntJumlah / 60)
        a = MntJumlah Mod 60
        b = Replace(CStr(Right(MntJumlah, 2)), CStr(Right(MntJumlah, 2)), CStr(a))
        JamJumlah = Left(WaktuAwal, 2) + c
        MntJumlah = b
    Else
        JamJumlah = Left(WaktuAwal, 2)
    End If
End If

If Len(JamJumlah) = 1 Then JamJumlah = "0" & JamJumlah
If Len(MntJumlah) = 1 Then MntJumlah = "0" & Abs(MntJumlah)
TAMBAHMENIT = JamJumlah & MntJumlah

End Function

Untuk menggunakan function tersebut di worksheet, di cell B2 saya masukkan formula "=TAMBAHMENIT(A1+45)". Dan hasilnya adalah 0915 (insya allah).

0 comments:

Post a Comment

Copyright © 2015 ExcelPix All Right Reserved
Shared by Themes24x7