Terima kasih Mr. De Pramor atas koreksi logika (saya) yang masih error.

Memang di samping bahasa VB, logika merupakan hal mutlak untuk mempelajari VBA 
sehingga perlu lebih sering diasah agar lebih tajam.

Mudah2an ini juga bisa menjadi bahan pelajaran buat rekan2 Be-Excel yang 
kadang2 mentok dalam menggunakan VBA.

Salam,
HK



________________________________
 From: De Premor <[email protected]>
To: [email protected] 
Sent: Saturday, 15 June 2013, 18:28
Subject: Re: Fw: [belajar-excel] Fw: Iseng2 bermain UDF
 


IsExist dalam function tersebut hanyalan sebuah variable boolean dan bisa 
diganti dengan variable "JikaAda"
perlu diketahui, jika pada deklarasi Dim IsExist as boolean, IsExist
    akan bernilai FALSE pada awalnya

Selanjutnya kepada Looping yang mas Hendrik Buat
kita perhatikan pada statement If IsExist dimana maksudnya adalah Jika Nilai 
IsExist bernilai benar
sedangkan pada perulangan yang dibuat tidak ada satupun statement
    yang menyebutkan untuk mengganti /men-set nilai IsExist menjadi
    benar "IsExist = True", maka dari awal sampai akhir perulangan Nilai 
IsExist selalu bernilai False, jadi memang sudah sekarusnya jika variable Mana 
tidak pernah dicolek2 sama codenya.

lebih lanjutnya coba dilihat di lampiran

Rgds,
[dp]


Pada 15/06/2013 17:01, hendrik karnadi menulis:

Terima kasih Mr. De Premor atas VB yang singkat dan lugas pada bagian 
loopingnya.
>Saya coba ganti bagian looping For Next nya menjadi :
>    
>    For Each i In sKata1
>        'IsExist = False
>        For Each j In sKata2
>            If LCase(i) <> LCase(j) Then IsExist = False
>        Next
>        If IsExist Then Mana = Mana & " " & i
>    Next
>
>
>Kelihatannya, secara logika (saya), benar tapi setelah saya coba hasilnya 
>kosong.
>
>
>Pertanyaan saya :
>Apakah If Not IsExist merupakan default (dari sononya) sehingga tidak bisa 
>diganti dengan IsExist saja ?
>
>
>Terima kasih.
>
>
>Salam,
>HK
>-------------------------------------------------------------------------------------------------------------------------------
> 
>
>
>Function Mana(Kata1 As String, Kata2 As String) As String
>    Dim sKata1, sKata2, i, j
>    Dim IsExist As Boolean
>    
>    sKata1 = Split(Kata1, " ")
>    sKata2 = Split(Kata2, " ")
>    
>    For Each i In sKata1
>        IsExist = False
>        For Each j In sKata2
>            If LCase(i) = LCase(j) Then IsExist = True
>        Next
>        If Not IsExist Then Mana = Mana & " " & i
>    Next
>End Function
>
>
>
>
>
>
>
>
>----- Forwarded Message -----
>From: De Premor <[email protected]>
>To: [email protected] 
>Sent: Saturday, 15 June 2013, 13:54
>Subject: Re: [belajar-excel] Fw: Iseng2 bermain UDF
> 
>
>
>Saya coba tulis sebuah code yang fungsinya sama seperti dimaksud, semoga bisa 
>jadi bahan referensi
>
>Rgds,
>[dp]
>
>
>On 15/06/2013 13:14, hendrik karnadi wrote:
>
>  
>>Maaf, lampirannya ketinggalan.
>>
>>
>>----- Forwarded Message -----
>>From: hendrik karnadi <[email protected]>
>>To: "[email protected]" <[email protected]> 
>>Sent: Saturday, 15 June 2013, 13:11
>>Subject: Iseng2 bermain UDF
>> 
>>
>>
>>Rekan2 Be-Exceler,
>>
>>
>>Untuk mengisi hari libur tidak ada salahnya kita bermain UDF (User Defined 
>>Function)
>>Berbekal pertanyaan seorang member milis dari negeri seberang, saya coba utak 
>>atik UDF warisan si Mbak yang sudah mendahului kita. 
>>
>>
>>Pertanyaa dari member tsb adalah:
>>Bagaimana membandingkan kata2 yang ada pada kolom A dengan yang ada pada 
>>kolom B ?
>>
>>
>>UDF yang sudah saya modifikasi adalah seperti ini :
>>
>>
>>Option Explicit
>>
>>
>>Function IsSimilar(Dat1, Dat2) As Variant
>>   ' coded by: siti Vi / Jakarta, 07 Jun 2011
>>   ' updated by hk 15 juni 2013
>> 
 '-----------------------------------------
>>   
>>   Dim i As Integer, j As Integer
>>   Dim Notsame
>>   Dim ArD1, ArD2
>>   ArD1 = Split(LCase(Dat1), " ")
>>   ArD2 = Split(LCase(Dat2), " ")
>>   For i = LBound(ArD1) To UBound(ArD1)
>>        For j = LBound(ArD2) To UBound(ArD2)
>>            If ArD1(i) = ArD2(j) Then
>>                GoTo 10
>>            Else
>>                Notsame = Notsame & " " & ArD1(i)
>>            End If
>>        j = j + 1
>>        Next j
>>   i = i + 1
>>10 Next i
>>   IsSimilar = Notsame
>>
>>
>>End Function
>>
>>
>>Hasilnya (belum sesuai dengan keinginan) ada dalam file terlampir.
>>
>>
>>Pertanyaan saya adalah bagaimana memperbaiki UDF tsb ?
>>
>>
>>Terima kasih.
>>
>>
>>Salam,
>>HK
>>
>>
>>
>>
>>
>>
>
>-- 
> 
> Deny Premordianto 
>________________________________
>ICT Department - Network & Infrastructure Division
>Technical Support Wilayah 4
> 0821-5701-1683 | [email protected] | 2811084A  
>Matematika Hidup adalah mengalikan sukacita, mengurangi kesedihan, menambahkan 
>semangat, membagi kebahagiaan, dan menguadratkan kasih sayang antar sesama  
>
>

Kirim email ke