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