Menghitung Umur/Usia Dengan VBA

Pada tutorial kali ini saya akan jelaskan bagaimana menghitung usia atau umur seseorang dengan menggunakan VBA.

Bagi yang ingin melihat tutorial melalui penjelasan video bisa disimak tutorial berikut ini :

Pada pembahasan kali ini saya akan bagikan 2 cara, cara pertama menggunakan fungsi bawaan dari VBA yaitu DATEDIFF dan yang kedua adalah fungsi bawaan formula Excel yaitu DATEDIF.

Dengan Fungsi DATEDIFF

Cara pertama dengan menggunakan Fungsi bawaan Visual Basic yaitu fungsi DATEDIFF

Function Umur(tglLahir As Date, tglSekarang As Date) As String
Dim tahun As Integer
Dim bulan As Integer
Dim hari As Integer

tahun = DateDiff("yyyy", tglLahir, tglSekarang)
bulan = DateDiff("m", tglLahir, tglSekarang)
hari = DateDiff("d", DateAdd("m", bulan, tglLahir), tglSekarang)
If hari < 0 Then
    bulan = bulan - 1
    hari = DateDiff("d", DateAdd("m", bulan, tglLahir), tglSekarang)
End If
bulan = bulan Mod 12
Umur = tahun & " Tahun " & bulan & " Bulan " & hari & " Hari "
End Function

Dengan Fungsi DATEDIF

Sayangnya, fungsi DATEDIF tidak dapat digunakan melalui objek WorksheetFunction di VBA. Meskipun fungsi DATEDIF tersedia di Excel sebagai fungsi bawaan (meskipun tersembunyi), Excel VBA tidak mendukungnya secara langsung melalui WorksheetFunction.

Namun, kita masih tetap dapat menggunakan DATEDIF dalam VBA dengan menerapkan teknik evaluate. Berikut contoh scriptnya:

' ====================================================================================
' Nama Proyek         : Penghitungan Selisih Tanggal Dengan DATEDIF
' Deskripsi           : Modul ini berisi fungsi untuk menghitung selisih
'                       antara dua tanggal berdasarkan interval tertentu (hari, bulan,
'                       atau tahun).
' Dibuat Oleh         : Andi Setiadi
' Tanggal Dibuat      : 24 Juni 2024
' Versi               : 1.0
' Pembaruan Terakhir  : 29 Desember 2024 - Penambahan StrDasar
' ====================================================================================

Function Umur(tglLahir As Date, tglSekarang As Date) As String
Dim tahun As Integer
Dim bulan As Integer
Dim hari As Integer
Dim StrDasar As String

StrDasar = "datedif(""" & tglLahir & """,""" & tglSekarang & """"

tahun = Evaluate(StrDasar & ", ""Y"")")
bulan = Evaluate(StrDasar & ", ""YM"")")
hari = Evaluate(StrDasar & ", ""MD"")")
Umur = tahun & " tahun " & bulan & " bulan " & hari & " hari"
End Function

2 thoughts on “Menghitung Umur/Usia Dengan VBA

Leave a Reply

Your email address will not be published. Required fields are marked *

Chat WhatsApp
WhatsApp