Menu Horisontal

Senin, 15 November 2010

Terbilang Bulat dari Masino Sinaga

Dari Masino Sinaga

Public Function TerbilangBulat(strAngka As String, _
Optional MataUang As String = "Rupiah") As String
Dim strJmlHuruf$, intPecahan As Integer
Dim strPecahan$, Urai$, Bil1$, strTot$, Bil2$
Dim X As Integer, Y As Integer, z As Integer
On Error GoTo Pesan
Dim strValid As String, huruf As String * 1
Dim i As Integer

If strAngka = "" Then Exit Function
If Len(Trim(strAngka)) > 15 Then GoTo Pesan
strJmlHuruf = LTrim(strAngka)
'intPecahan = Val(Right(Mid(strAngka, 15, 2), 2))
If (intPecahan = 0) Then
strPecahan = ""
Else


strPecahan = ""
End If

X = 0
Y = 0
Urai = ""
While (X <>
X = X + 1
strTot = Mid(strJmlHuruf, X, 1)
Y = Y + Val(strTot)
z = Len(strJmlHuruf) - X + 1
Select Case Val(strTot)
Case 1
If (z = 1 Or z = 7 Or z = 10 Or z = 13) Then
Bil1 = "Satu "
ElseIf (z = 4) Then
If (X = 1) Then
Bil1 = "Se"
Else
Bil1 = "Satu "
End If
ElseIf (z = 2 Or z = 5 Or z = 8 Or z = 11 Or z = 14) Then
X = X + 1
strTot = Mid(strJmlHuruf, X, 1)
z = Len(strJmlHuruf) - X + 1
Bil2 = ""
Select Case Val(strTot)
Case 0: Bil1 = "Sepuluh "
Case 1: Bil1 = "Sebelas "
Case 2: Bil1 = "Dua Belas "
Case 3: Bil1 = "Tiga Belas "
Case 4: Bil1 = "Empat belas "
Case 5: Bil1 = "Lima Belas "
Case 6: Bil1 = "Enam Belas "
Case 7: Bil1 = "Tujuh Belas "
Case 8: Bil1 = "Delapan Belas "
Case 9: Bil1 = "Sembilan Belas "
End Select
Else
Bil1 = "Se"
End If
Case 2: Bil1 = "Dua "
Case 3: Bil1 = "Tiga "
Case 4: Bil1 = "Empat "
Case 5: Bil1 = "Lima "
Case 6: Bil1 = "Enam "
Case 7: Bil1 = "Tujuh "
Case 8: Bil1 = "Delapan "
Case 9: Bil1 = "Sembilan "
Case Else
Bil1 = ""
End Select

If (Val(strTot) > 0) Then
If (z = 2 Or z = 5 Or z = 8 Or z = 11 Or z = 14) Then
Bil2 = "Puluh "
ElseIf (z = 3 Or z = 6 Or z = 9 Or z = 12 Or z = 15) Then
Bil2 = "Ratus "
Else
Bil2 = ""
End If
Else
Bil2 = ""
End If
If (Y > 0) Then
Select Case z
Case 4: Bil2 = Bil2 + "Ribu "
Y = 0
Case 7: Bil2 = Bil2 + "Juta "
Y = 0
Case 10: Bil2 = Bil2 + "Milyar "
Y = 0
Case 13: Bil2 = Bil2 + "Trilyun "
Y = 0
End Select
End If
Urai = Urai + Bil1 + Bil2
Wend
Urai = Urai + strPecahan
TerbilangBulat = (Urai & MataUang)
Exit Function
Pesan:
TerbilangBulat = "(maksimal 15 digit)"
End Function

Tidak ada komentar: