bilangan pake plus and minus
Public Function Terbilang(ByVal angka As Double) As String
Dim intPecahan As Integer, strPecahan$, Urai$, Bil1$, strTot$, Bil2$, strJmlHuruf$
Dim x As Integer, y As Integer, z As Integer
If angka = 0 Then
Terbilang = "NOL"
Exit Function
End If
strJmlHuruf = LTrim(CStr(angka))
intPecahan = Val(Right(Mid(CStr(angka), 15, 2), 2))
'Minus dan Pecahan
'------------------
If InStr(strJmlHuruf, "-") > 0 Then
sMinus = "MINUS "
Terbilang = Right(strJmlHuruf, Len(strJmlHuruf) - 1)
End If
If InStr(strJmlHuruf, ".") > 0 Then
intPecahan = Right(strJmlHuruf, Len(strJmlHuruf) - InStr(strJmlHuruf, "."))
strJmlHuruf = Left(strJmlHuruf, InStr(strJmlHuruf, ".") - 1)
End If
'Pecahan, strPecahan
'------------------
If (intPecahan = 0) Then
strPecahan = ""
Else
strPecahan = Terbilang(intPecahan)
strPecahan = "KOMA " & strPecahan
End If
'------------------
x = 0
y = 0
Urai = ""
While (x < Len(strJmlHuruf))
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 = sMinus + Urai + strPecahan
If (intPecahan = 0) Then
Terbilang = Urai & "RUPIAH "
Else
Terbilang = Urai
End If
End Function
bilangan pake plus and minus and sen
ext: -101.11 >> "MINUS SERATUS SATU RUPIAH KOMA SEBELAS SEN"
Public Function Terbilang(ByVal angka As Double) As String
Dim intPecahan As Integer, strPecahan$, Urai$, Bil1$, strTot$, Bil2$, strJmlHuruf$
Dim x As Integer, y As Integer, z As Integer
If angka = 0 Then
Terbilang = "NOL"
Exit Function
End If
strJmlHuruf = LTrim(CStr(angka))
intPecahan = Val(Right(Mid(CStr(angka), 15, 2), 2))
'Minus dan Pecahan
'------------------
If InStr(strJmlHuruf, "-") > 0 Then
sMinus = "MINUS "
Terbilang = Right(strJmlHuruf, Len(strJmlHuruf) - 1)
End If
If InStr(strJmlHuruf, ".") > 0 Then
intPecahan = Right(strJmlHuruf, Len(strJmlHuruf) - InStr(strJmlHuruf, "."))
strJmlHuruf = Left(strJmlHuruf, InStr(strJmlHuruf, ".") - 1)
End If
'Pecahan, strPecahan + Sen
'------------------
If (intPecahan = 0) Then
strPecahan = ""
Else
strPecahan = Terbilang(intPecahan)
strPecahan = "RUPIAH " & "KOMA " & strPecahan
End If
'------------------
x = 0
y = 0
Urai = ""
While (x < Len(strJmlHuruf))
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 = sMinus + Urai + strPecahan
If (intPecahan = 0) Then
Terbilang = Urai & "RUPIAH "
Else
Dim RpSen As String '
RpSen = Left(Urai, Len(Urai) - 7) 'RUPIAH 7 DIGIT
Terbilang = RpSen & "SEN "
End If
End Function