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 > >

