Hai Sony,

1. Jika ingin membandingkan teks dengan wildcard character, coba manfaatkan
klausa Like.
   If lcase(Range("c" & I).Value) LIKE lcase("*" & Str & "*") Then

Penggunaan lcase adalah untuk mengubah menjadi huruf kecil, sehingga
seluruh karakter bisa dibandingkan secara binary.
Jika ingin case sensitive, hilangkan seluruh klausa lcase

2. Jika wildcard character sekedar dimaksudkan sebagai contain alias ada
bunyi potongan teks tertentu didalam suatu teks data, maka fungsi InStr
bisa dimanfaatkan.
   If InStr( lcase(Range("c" & I).Value) , lcase(Str) ) <> 0 Then
Fungsi InStr bekerja seperti fungsi builtin Excel bernama Find (case
sensitive) dan akan seperti fungsi builtin Excel Search tanpa wildcard
character jika opsi perbandingannya menggunakan compare text.

Fungsi InStr pada dasarnya bekerja lebih cepat dibanding klausa LIKE. Tapi
pada data yang sedikit di kasus Anda, perbedaan kecepatannya tidak akan
terasa.

Pada kasus Anda, lebih baik variabel Str sudah dikenai fungsi lcase,
sehingga tidak perlu lagi penggunaan lcase pada str di bagian IF.
Contoh :
str=lcase("Cash")
maka baris IF bisa :
   If lcase(Range("c" & I).Value) LIKE "*" & Str & "*" Then
atau
   If InStr( lcase(Range("c" & I).Value) , Str ) <> 0 Then

atau
str=lcase("*" & "Cash" & "*" )
maka baris IF bisa :
   If lcase(Range("c" & I).Value) LIKE Str Then

3. Sebenarnya, memanfaatkan formula Excel juga bisa menyelesaikan kasus
ini. Bisa jadi malah cukup menarik dibanding menggunakan loop dan klausa
LIKE. Contohnya terlampir. Meskipun cara ini 5 kali lebih lambat dibanding
menggunakan LIKE, tetapi hitungan masih dibawah 1/10 detik cukuplah cepat.
Selain itu, penggunaan wildcard character bisa lebih bervariasi, seperti b*
berarti diawali dengan b atau b??n* diawali b yang huruf keempatnya n, dan
sebagainya.

;)

Semoga file terlampir bisa dinikmati...

Wassalam,
Kid




2016-01-16 10:53 GMT+07:00 Sony Ario sony.ar...@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> Dear Be Excel,
>
> Saya lagi coba untuk bantu teman. Saya rasa beliau ada di forum ini juga :)
>
> Kasus nya seperti ini :
>
> Apabila di masukan sebuah string di Textbox, macro akan looping di setiap
> cell yang sesuai dengan string tersebut dan memasukan nya ke dalam sebuah
> Combobox di Useform. Saya coba untuk looping tanpa syarat sudah berhasil.
> Code nya seperti ini :
>
> Private Sub CommandButton1_Click()
>     Application.ScreenUpdating = False
>
>
>     For I = 2 To 259
>         Range("C" & I).Select
>
>         Me.ComboBox1.AddItem Range("C" & I).Value
>
>     Next I
> End Sub
>
> Tapi apa apabila saya masukan syarat nya dengan menggunakan wildcard
> kenapa nggak bisa ya ? alias combobox nya kosong Script nya seperi ini :
>
> Private Sub CommandButton1_Click()
>     Application.ScreenUpdating = False
>     Dim Str As String
>
>     Str = "Cash"
>
>     For I = 2 To 259
>         Range("C" & I).Select
>         If Range("c" & I).Value = "*" & Str & "*" Then
>         Me.ComboBox1.AddItem Range("C" & I).Value
>         End If
>     Next I
> End Sub
>
> File contoh terlampir.
>
> Terima kasih sebelumnya.
> Sony
>
> 
>

Attachment: re-Filter2.xlsm
Description: application/vnd.ms-excel.sheet.macroenabled.12

Kirim email ke