Mas @abread ...
Fungsi KonversiTanggal tersebut sebenarnya sudah mengembalikan hasil yang benar. Namun oleh karena VBA menggunakan sistem penanggalan Gregorian (Masehi) sebagai basis perhitungannya, maka fungsi FORMAT pada fungsi KonversiTanggal tersebut akan mengembalikan nama bulan Masehi. Untuk melihat perbedaannya, coba tambahkan baris kode:
Calendar = vbCalHijri
KonversiTanggal = Format(lDd & "/" & lDm & "/" & lDy, "dd mmmm yyyy")
Solusinya lainnya bisa menggunakan fungsi pencarian (lookup) seperti INDEX. Misalnya pada range A1:A12 kita isi dengan nama-nama bulan Hijriah, dan kita beri nama BulanHijriah. Maka, jika fungsi KonversiTanggal tetap diatur dengan format dd/mm/yyyy, maka pada sel D6 bisa diisi formula:
=LEFT(D4;2)&" "&INDEX(BulanHijriah;VALUE(MID(D4;4;2)))&" "&RIGHT(D4;4)
atau langsung satu formula:
=LEFT(KonversiTanggal(C4;1);2) & " " & INDEX(BulanHijriah;VALUE(MID(KonversiTanggal(C4;1);4;2))) & " " & RIGHT(KonversiTanggal(C4;1);4)
Atau lakukan sedikit penambahan kode VBA pada fungsi KonversiTanggal sebagaimana yang saya lakukan pada file yang saya lampirkan berikut. Silahkan dicoba.