
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 ]] )
Interval | Description |
---|---|
yyyy | Year |
q | Quarter |
m | Month |
y | Day of year |
d | Day |
w | Weekday |
ww | Week |
h | Hour |
n | Minute |
s | Second |
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 EditorPublic 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.
Leave a Reply