Kalo yang tanpa macro (udf) tetapi masih menggunakan cell bantu,
Silahkan dicoba file terlampir.

________________________________________
From: belajar-excel@yahoogroups.com [mailto:belajar-ex...@yahoogroups.com]
On Behalf Of siti Vi
Sent: Tuesday, January 26, 2010 1:09 PM
To: belajar-excel@yahoogroups.com
Subject: Re: [belajar-excel] (unknown)

  
Dear Mas Cakil...
 
mas Herrsoe ini punya tiga nama....
kalau tanggal muda namanya HerrSoe(+timbul)
kalau tanggal tua namanya HerrSoe(+cakil)
he he.. siti senang dgn humornya mas HerrSoe ini...
 
Modifikasi UDF GetNumber untuk keperluan seperti itu
mungkin "jalan-ceritaknya" begini :
 
# loop kunjungan ke semua karakter dlm string yg diproses
  dari karakter paling kiri ke kanan, setiap karakter yg sedang
  dikunjungi di masukkan ke variable k
 
# test 
Apakah k adalah salah satu dari karakter dlm string "1234567890.," ?
 
Jika YA
* jika k = "." (TITIK) , titiknya dicatat-hitung
   test sudah ketemu TITIK lebih dari sekali ?
       jika YA: TITIK dicuekin  (k = Blank)
*jika k = "," (KOMA), KOMA di-cuekin (k = Blank)
k ditampung-gabung dalam sebuah variabel string Temp
 
Jika TIDAK
(artinya k bukan salah satu dari "1234567890.,"
* test/lihat dulu variable Temp sudah ada isinya / belum?
   ** jika belum: teruskan kunjungan ke karakter berikutnya
   ** jika sudah: akhiri acara kunjungan ke setiap karakter
       (walaupun belum semua terkunjungi)
 
Pukulan terakhir:
variable Temp (yg bisa berisi bilangan dlm bentuk string) dikonversi 
menjadi bilangan; tetapi jika lebarnya lebih dari 15 digit, biarkan 
sbg string
(karena akan dituliskan di cell excel yg hanya presisi pada bilangan max 15
digit)
 
 
Function GetNumber(S As String)
   '-----------------------------------
   ' UDF mengambil substring "bilangan"
   ' revisi V2 / 26 jan 2010
   '------------------------------------
   
   Dim i%, tmp$, k$, dot%
   For i = 1 To Len(Trim(S))
     k = Mid(Trim(S), i, 1)
      If InStr(1, "0123456789.,", k) > 0 Then
         If k = "." Then dot = dot + 1
         If dot > 1 Then k = ""
         If k = "," Then k = ""
         tmp = tmp & k
      Else
         If Len(tmp) > 0 Then Exit For
      End If
   Next i
   GetNumber = IIf(Len(tmp) > 15, tmp, CDec(tmp))
End Function
 
 
 
----- Original Message ----- 
From: HerrSoe 
To: belajar-excel@yahoogroups.com 
Sent: Tuesday, January 26, 2010 11:31 AM
Subject: Re: [belajar-excel] (unknown)

Terima kasih UDF "GetNumber" - nya... bermanfaat untuk pekerjaan kami.

Keperluan kami kadang harus mengambil angka dari data string spt ini
(Pola letak "SubString bilangan" tidak beraturan, bisa di mana saja)

XLKJ FOIUR OIUR  999,874,940.5000 OIUROIU 31 SOIUA OIU
15.0983484098 ABCDFRGT JDLKJ DLKJ 123 XXQ

Dengan UDF GetNumber menghasilkan  999  dan 15
Rupanya begitu ketemu KOMA atau TITIK (bukan angka) maka pencarian ANGKA 
dihentikan karena angka setelah KOMA atau TITIK dianggap rangkaian
berikutnya.

Hasil yang diinginkan 
999874940.5
15.0983484098
type data = number

Mohon diberi penjelasan cara memodifikasi UDF tsb sehingga dapat mengenal 
rangkaian angka yg membentuk bilangan yg didalamnya terdapat KOMA dan TITIK.
(KOMA = tanda Pemisah Ribuan, TITIK = tanda Pemisah Desimal)

Terima kasih..
HerrSoe(+cakil)
_,_._,___
 

__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4805 (20100125) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
 

Attachment: ambilAngkaReal.xls
Description: MS-Excel spreadsheet

Kirim email ke