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 > > >
re-Filter2.xlsm
Description: application/vnd.ms-excel.sheet.macroenabled.12