Membuat Fungsi BacaAngka di Excel

bacaangkaBeberapa dari kita mungkin pernah menemui masalah seperti bagaimana caranya kita menyebutkan suatu angka dalam bentuk tulisan teks, seperti pada pembuatan kuitansi, misalnya Rp 1500 dibaca “seribu lima ratus rupiah”.

Nah pada tulisan kali ini saya ingin mencoba berbagi pengalaman, gimana membuat fungsi untuk membaca sebuah angka ke dalam bentuk teks dengan menggunakan Microsoft Excel.

Berikut ini langkah-langkahnya:

1. Buka Workbook/file baru (File > New)

2. Klik menu Tools > Macro >  Visual Basic Editor

3. Di window Visual Basik klik menu Insert > Module

4. Ketikan code berikut :

'untuk konversi numerik ke string
Private Function TAngka(Angka) As String
Select Case Angka
Case 0: TAngka = "nol "
Case 1: TAngka = "satu "
Case 2: TAngka = "dua "
Case 3: TAngka = "tiga "
Case 4: TAngka = "empat "
Case 5: TAngka = "lima "
Case 6: TAngka = "enam "
Case 7: TAngka = "tujuh "
Case 8: TAngka = "delapan "
Case 9: TAngka = "sembilan "
End Select
End

FunctionPrivate Function Angka3D(Angka) As String
‘memecah angka menjadi ratusan, puluhan dan satuan
sat = Mid(Angka, Len(Angka), 1)
If Len(Angka) >= 2 Then
pul = Mid(Angka, Len(Angka) – 1, 1)
If Len(Angka) = 3 Then
rat = Mid(Angka, Len(Angka) – 2, 1)
End If
End If

‘untuk ratusan
Select Case rat
Case 0: tr = “”
Case 1: tr = “seratus “
Case Else: tr = TAngka(rat) & “ratus “
End Select

‘untuk puluhan
Select Case pul
Case 0: tp = “”
Case 1: Select Case sat
Case 0: tp = “sepuluh “
Case 1: tp = “sebelas “
Case Else: tp = TAngka(sat) & “belas “
End Select
GoTo final
Case Else: tp = TAngka(pul) & “puluh “
End Select

‘untuk satuan
Select Case sat
Case 0: ts = “”
Case Else: ts = TAngka(sat)
End Selectfinal:
Angka3D = tr & tp & ts
End Function

Private Function BcAng(Angka) As String
Dim group(9)Teks = ""
pj = Len(Angka)
If pj > 27 Then
MsgBox "Digit terlalu panjang ! " & vbCrLf & "Maksimum 27 Digit"
Else
'menghitung jumlah group
n = pj \ 3
'untuk group sisa
If (pj Mod 3) <> 0 Then
group(n + 1) = Mid(Angka, 1, pj - 3 * n)
If group(n + 1) = 1 And ((n + 1) = 2 Or (n + 1) = 6) Then
Teks = "se"
Else
Teks = Angka3D(group(n + 1))
End If
If Teks <> "" Then
Select Case n + 1
Case 2: Teks = Teks & "ribu "
Case 3: Teks = Teks & "juta "
Case 4: Teks = Teks & "milyar "
Case 5: Teks = Teks & "trilyun "
Case 6: Teks = Teks & "ribu trilyun "
Case 7: Teks = Teks & "juta trilyun "
Case 8: Teks = Teks & "milyar trilyun "
Case 9: Teks = Teks & "trilyun trilyun "
End Select
End If
End If 'untuk masing-masing group
For i = n To 1 Step -1
group(i) = Mid(Angka, pj - 3 * i + 1, 3)
If group(i) = 1 And (i = 2 Or i = 6) Then
Teks = Teks & "se"
Else
Teks = Teks & Angka3D(group(i))
End IfIf Angka3D(group(i)) <> "" Then
Select Case i
Case 2: Teks = Teks & "ribu "
Case 3: Teks = Teks & "juta "
Case 4: Teks = Teks & "milyar "
Case 5: Teks = Teks & "trilyun "
Case 6: Teks = Teks & "ribu trilyun "
Case 7: Teks = Teks & "juta trilyun "
Case 8: Teks = Teks & "milyar trilyun "
Case 9: Teks = Teks & "trilyun trilyun "
End Select
End If
Next i
If Angka = 0 Then Teks = "nol"
BcAng = Teks
End If
End Function

Private Function AdaKoma(Teks) As Boolean
AdaKoma = False
For i = 1 To Len(Teks)
st = Mid(Teks, i, 1)
If st = "." Or st = "," Then
AdaKoma = True
End If
Next i
End Function

Private Function AdaRupiah(Teks) As Boolean
AdaRupiah = False
If UCase(Left(Teks, 2)) = "RP" Then AdaRupiah = True
End Function

Private Function AdaNegatif(Teks) As Boolean
AdaNegatif = False
If Left(Teks, 1) = "-" Then AdaNegatif = True
End Function

Public Function BacaAngka(Angka) As String
If AdaRupiah(Angka) Then
smt = BacaAngka(Right(Angka, Len(Angka) - 2))
BacaAngka = smt & " rupiah"
Exit Function
End If

If AdaNegatif(Angka) Then
smt = BacaAngka(Right(Angka, Len(Angka) - 1))
BacaAngka = "negatif " & smt
Exit Function
End If

If AdaKoma(Angka) Then
kt = InStr(1, Angka, ",")
If kt = 0 Then sp = Split(Angka, ".") Else sp = Split(Angka, ",")
BacaAngka = BcAng(sp(0)) & " koma "
For i = 1 To Len(sp(1))
BacaAngka = BacaAngka & TAngka(Mid(sp(1), i, 1))
Next i
Else
BacaAngka = BcAng(Angka)
End If
End Function

5. Klik menu File > Close and Return to Microsoft Excel

6. Di window excel, klik File > Save as

7. Isi file name dengan “bacaangka”

8. Pilih tipe file menjadi “Microsoft Excel Add-In (*.xla)

9. Klik Save

10. Klik menu Tools > Add-Ins

11.  Kasih cawang pada pilihan “bacaangka” dan klik OK

12. Tulis sembarang angka, misalnya 123 di sel A2

13. Di sel B2 ketikan  =bacaangka(A2) lalu enter

14. Hasilnya bisa anda lihat.

Semoga sedikit trik ini dapat bermanfaat. Saran dan kritik selalu saya harapkan dari temen-temen semua.

About these ads

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s