Arsip Blog

QR Code

Sabtu, 30 Mei 2009

Fungsi Terbilang pada MS Excel

Menambah Add-Ins Angka ke Huruf di Microsoft Excel

Biasanya kita membutuhkan “Terbilang” dalam menyebutkan suatu jumlah tertentu.
Kita bisa buat di dalam MS Excel formula tersebut.
Bisa dilakukan dengan menambah Add-Ins.

Berikut Add-Ins terbilang pada MS Excel yang menyebutkan huruf dari angka yang diberikan sekaligus satuan mata uang Rupiah.

Misalkan kita mengetik di sel A1 : 500.000 (tanpa tanda petik)
Kemudian kita ketik di sel B1 : “ terbilang(A1) ” (tanpa tanda petik)
Setelah Enter maka pada sel B1 akan muncul tulisan : Lima Ratus Ribu rupiah

PEMBUATANNYA SANGAT MUDAH

Buka MS Excel (Office 2003 atau 2007) -> Tools -> Macro -> Visual Basic Editor
Tulis Atau Copy Paste code dibawah ini :



'****************************
' Fungsi Utama
' Mengubah Angka Menjadi Teks
' Bambang Triwardana
'****************************

Function Terbilang(ByVal MyNumber)
Dim RUPIAH, SEN, Temp
Dim Des, Desimal, Count, Tmp
Dim IsNeg

ReDim Place(9) As String
Place(2) = "RIBU "
Place(3) = "JUTA "
Place(4) = "MILYAR "
Place(5) = "TRILYUN "

'Ubah angka menjadi string
MyNumber = Round(MyNumber, 2)
MyNumber = Trim(Str(MyNumber))

'Cek bilangan negatif
If Mid(MyNumber, 1, 1) = "-" Then
MyNumber = Right(MyNumber, Len(MyNumber) - 1)
IsNeg = True
End If

'Posisi desimal, 0 jika bil. bulat
Desimal = InStr(MyNumber, ".")
'Pembulatan sen, dua angka di belakang koma
Des = Mid(MyNumber, Desimal + 2)
If Desimal > 0 Then
Tmp = Left(Mid(MyNumber, Desimal + 1) & "00", 2)
SEN = Puluhan(Tmp)
MyNumber = Trim(Left(MyNumber, Desimal - 1))
End If

Count = 1
Do While MyNumber <> ""
Temp = Ratusan(Right(MyNumber, 3), Count)
If Temp <> "" Then RUPIAH = Temp & Place(Count) & RUPIAH
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop

Select Case RUPIAH
Case ""
RUPIAH = "NOL RUPIAH"
Case Else
RUPIAH = RUPIAH & "RUPIAH"
End Select

Select Case SEN
Case ""
SEN = ""
Case Else
SEN = " dan " & SEN & "SEN"
End Select

If IsNeg = True Then
Terbilang = "minus " & RUPIAH & SEN
Else
Terbilang = RUPIAH & SEN
End If

End Function


'**************************************
' Mengubah angka 100-999 menjadi teks *
'**************************************
Function Ratusan(ByVal MyNumber, Count)
Dim Result As String
Dim Tmp

If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)

'Mengubah seribu
If MyNumber = "001" And Count = 2 Then
Ratusan = "se"
Exit Function
End If

'Mengubah ratusan
If Mid(MyNumber, 1, 1) <> "0" Then
If Mid(MyNumber, 1, 1) = "1" Then
Result = "SERATUS "
Else
Result = Satuan(Mid(MyNumber, 1, 1)) & "RATUS "
End If
End If

'Mengubah puluhan dan satuan
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & Puluhan(Mid(MyNumber, 2))
Else
Result = Result & Satuan(Mid(MyNumber, 3))
End If

Ratusan = Result

End Function


'*******************
' Mengubah puluhan *
'*******************
Function Puluhan(TeksPuluhan)
Dim Result As String

Result = ""
' nilai antara 10-19
If Val(Left(TeksPuluhan, 1)) = 1 Then
Select Case Val(TeksPuluhan)
Case 10: Result = "SEPULUH "
Case 11: Result = "SEBELAS "
Case Else
Result = Satuan(Mid(TeksPuluhan, 2)) & "BELAS "
End Select
' nilai antara 20-99
Else
Result = Satuan(Mid(TeksPuluhan, 1, 1)) _
& "PULUH "
Result = Result & Satuan(Right(TeksPuluhan, 1))
'satuan
End If
Puluhan = Result
End Function


'********************************
' Mengubah satuan menjadi teks. *
'********************************
Function Satuan(Digit)
Select Case Val(Digit)
Case 1: Satuan = "SATU "
Case 2: Satuan = "DUA "
Case 3: Satuan = "TIGA "
Case 4: Satuan = "EMPAT "
Case 5: Satuan = "LIMA "
Case 6: Satuan = "ENAM "
Case 7: Satuan = "TUJUH "
Case 8: Satuan = "DELAPAN "
Case 9: Satuan = "SEMBILAN "
Case Else: Satuan = ""
End Select
End Function


Tes seperti contoh di atas.

0 komentar

Posting Komentar