Assalamualaikum..............................

salam kenal, saya member sejak milis ini berdiri, tapi hanya jadi penonton dan 
tidak pernah aktif, karena tidak mengerti MS exel.
Beberapa hari ini saya lihat milis ini sudah mulai merambah ke VBA, dan karena 
sedikit-sedikit saya mengerti VBA, saya jadi ingin berbagi dan juga belajar 
dari pakar di sini.

Untuk belajar bersama berikut saya lampirkan resep terbilang buatan mbak/mbah 
Siti Vi Alm. (beliau teman diskusi di milis VB sejak 2005).
Jika ada pertanyaan tentang baris-baris program tsb, akan saya coba jelaskan 
sebisanya.


Function Terbilang(Bilangan As Double) As String
  '==== siti Vi <villager.g...@gmail.com>,===
    Dim Bil As String
    Dim T As String
    Dim i As Integer
    Dim A(19) As String
    Dim P(9) As String
    Dim L(3) As String
    Dim Dwi As Byte
    Dim T1 As Byte
    Dim T2 As Byte
    Dim T3 As Byte
   
    A(1) = "satu"
    A(2) = "dua"
    A(3) = "tiga"
    A(4) = "empat"
    A(5) = "lima"
    A(6) = "enam"
    A(7) = "tujuh"
    A(8) = "delapan"
    A(9) = "sembilan"
    A(10) = "sepuluh"
    A(11) = "sebelas"
    A(12) = "dua belas"
    A(13) = "tiga belas"
    A(14) = "empat belas"
    A(15) = "lima belas"
    A(16) = "enam belas"
    A(17) = "tujuh belas"
    A(18) = "delapan belas"
    A(19) = "sembilan belas"
   
    P(0) = ""
    P(2) = "dua puluh"
    P(3) = "tiga puluh"
    P(4) = "empat puluh"
    P(5) = "lima puluh"
    P(6) = "enam puluh"
    P(7) = "tujuh puluh"
    P(8) = "delapan puluh"
    P(9) = "sembilan puluh"
   
    L(0) = "ribu"
    L(1) = "juta"
    L(2) = "milyar"
    L(3) = "triliun"
   
    If Bilangan > 10 ^ 15 - 1 Then
        Terbilang = "#error, max 15 digit"
        Exit Function
    End If
    
    Bil = Trim(Str(Int(Abs(Bilangan))))
    If CDbl(Bil) = 0 Then
        T = "nol "
    Else
        i = 0
        Do
            Bil = "000" + Bil
            Dwi = CByte(Right(Bil, 2))
            If (Dwi > 0) And (Dwi < 20) Then
                T = IIf((Bilangan < 2000 And i = 1), "se", A(Dwi) + " ") + T
            Else
                T3 = CByte(Right(Bil, 1))
                If (T3 > 0) Then T = A(T3) + " " + T
                T2 = CByte(Left(Right(Bil, 2), 1))
                If (T2 > 0) Then T = P(T2) + " " + T
            End If
         
            T1 = CByte(Left(Right(Bil, 3), 1))
            If (T1 = 1) Then T = "seratus " + T
            If (T1 > 1) Then T = A(T1) + " ratus " + T
            Bil = Left(Bil, Len(Bil) - 3)
            If (CDbl(Bil) > 0) Then
                T = IIf(CInt(Right(Bil, 3)) = 0, "", L(i) + " ") + T
                i = i + 1
            End If
        Loop While ((CDbl(Bil) > 0) And (i < 5))
    End If
    Terbilang = Trim(T)
End Function




 
HTML clipboardSalam,

Bambang Hartoko
  

________________________________
 From: zainul_ulum[at]yahoo[dot]com <zainul_u...@yahoo.com>
To: belajar-excel@yahoogroups.com 
Sent: Wednesday, September 18, 2013 9:43 AM
Subject: Diskusi Mega Formula (was RE: [belajar-excel] BelajarVBA : UsedRange, 
Intersect, Union) [1 Attachment]
 


  
Mungkin diskusi bisa dimulai dengan rumus terlampir.

From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com] On 
Behalf Of hendrik karnadi
Sent: Wednesday, September 18, 2013 9:30 AM
To: belajar-excel@yahoogroups.com
Subject: Re: [belajar-excel] BelajarVBA : UsedRange, Intersect, Union

Saya pernah beberapa kali mencoba bikin yang agak panjang sampai 5 atau 7 
tahap, namun sering "meleset" pada penulisan tanda bacanya. "Barangkali" yang 
"terpeleset" adalah semangat juangnya. 

Salam,
HK

Kirim email ke