Menghitung Umur Tahun bulan dan hari Menggunakan VBA

Fungsi DateDiff VBA

Untuk mehitung umur , bulan dan hari seseorang berdasarkan tanggal lahir bisa dengan mudah kita dapatkan dengan bantun rumus DateDif. Untuk penggunaa rumus datedif ini sudah dibahas pada artikel mencari-selisih tanggal dengan rumus excel datedif. Lalu bagaimana jika hal ini kita lakukan didalam script VBA. apa bisa dengan menambahkan WorksheetFunction.DateDif sayangnya hal ini tidak bisa dilakukan. Karena didalam VBA sendiri sudah ada Fungsi DateDiff

Apakah ada perbedaan antara Datedif dan DateDiff? tentu saja ada. Parameter yang digunakan oleh kedua Fungsi tersebut ada perbedaan. seperti, “YM” ,”MD” di DateDiff dalam VBA tidak ada parameter tersebut, padahal parameter tersebut sangat dibutuhkan untuk mengetahui sisa bulan dan juga sisa harinya. Secara lengkap parameter yang bisa digunakan oleh DateDiff adalah

DateDiff(interval, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )
IntervalDescription
yyyyYear
qQuarter
mMonth
yDay of year
dDay
wWeekday
wwWeek
hHour
nMinute
sSecond

Seperti yang kita lihat tidak ada Interval untuk “YM” dan “MD”, Interval yang kita butuhkan untuk membuat sebuah text “X tahun X Bulan dan X Hari”. Sehingga untuk membuat data seperti ini pada VBA, kita perlu menghitung secara manual untuk sisa bulan dan juga sisa harinya.

Tapi tenang saja, disini Excelnoob sudah buatkan sebuah Fungsi untuk menghitung Umur dengan sisa bulan dan sisa hari menggunkan DateDiff. Silahkan copy ini ke Module dan untuk penggunaanya tinggal panggil dengan Fungsi GetUmur(tanggal Lahir, Tanggal Akhir).

 Visual Basic Editor 
Public Function GetUmur(StartDate As Date, EndDate As Date) As String
Dim intYears As Integer
Dim intMonths As Integer
Dim intDays As Integer

intMonths = DateDiff("m", StartDate, EndDate)
intDays = DateDiff("d", DateAdd("m", intMonths, StartDate), EndDate)
If intDays < 0 Then
    intMonths = intMonths - 1
    intDays = DateDiff("d", DateAdd("m", intMonths, StartDate), EndDate)
End If
intYears = intMonths \ 12
intMonths = intMonths Mod 12
GetUmur = " " & intYears & " Tahun, " & intMonths & " Bulan, " & intDays & " Hari"
End Function

Contoh penggunaan ada Msgbox

Untuk selebihnya bisa dikembangkan dan dipergunakan sesuai keinginan perancang aplikasi.

Be the first to comment

Leave a Reply

Your email address will not be published.


*