userformda google modeli tarama

Katılım
29 Ağustos 2011
Mesajlar
63
Excel Vers. ve Dili
2007
Selam arkadaşlar,

Hazırladığım formda data taraması yapıyorum. Bunun için SEARCH commondbox için aşağıdaki kodları
kullanmaktayım. Sorunum şu ki tarama tam kelimeye göre değil de google sitesindeki gibi harfleri yazdıkça taramaya başlaması şeklinde olması daha çok işime yarayacak. Bu nedenle user form üzerinde SEARCH commondbox ına ihtiyaç olmaksızın textbox a yazdığım anda taramaya başlayan bir model için aşağıdaki kodu nasıl modifiye edebilir. örnek çalışma ekte
İyi çalışmalar

Private Sub CommandButton1_Click()
'SEARCH

Dim Cnt As Long
Dim Col As Variant
Dim FirstAddx As String
Dim FoundMatch As Range
Dim LastRow As Long
Dim R As Long
Dim StartRow As Long
Dim S1 As Worksheet

Set S1 = Sheets("Sheet1")

StartRow = 2

Col = ComboBox1.ListIndex + 1
If Col = 0 Then
MsgBox "Please choose a category."
Exit Sub
End If

If TextBox1.Text = "" Then
MsgBox "Please enter a search term."
TextBox1.SetFocus
Exit Sub
End If

LastRow = S1.Cells(Rows.Count, Col).End(xlUp).Row
LastRow = IIf(LastRow < StartRow, StartRow, LastRow)

Set Rng = S1.Range(S1.Cells(2, Col), S1.Cells(LastRow, Col))

Set FoundMatch = Rng.Find(What:=TextBox1.Text, _
After:=Rng.Cells(1, 1), _
LookAt:=xlWhole, _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)

If Not FoundMatch Is Nothing Then
FirstAddx = FoundMatch.Address
ListView1.ListItems.Clear

Do
Cnt = Cnt + 1
R = FoundMatch.Row
ListView1.ListItems.Add Index:=Cnt, Text:=R
For Col = 1 To 13
Set C = S1.Cells(R, Col)
ListView1.ListItems(Cnt).ListSubItems.Add Index:=Col, Text:=C.Text
Next Col
Set FoundMatch = Rng.FindNext(FoundMatch)
Loop While FoundMatch.Address <> FirstAddx And Not FoundMatch Is Nothing
SearchRecords = Cnt
Else
ListView1.ListItems.Clear
SearchRecords = 0
MsgBox "No match found for " & TextBox1.Text
End If

End Sub

Private Sub UserForm_Activate()
Dim C As Long
Dim I As Long
Dim R As Long
Dim S1 As Worksheet

Set S1 = Sheets("Sheet1")

ListView1.View = lvwReport
ListView1.HideSelection = False
ListView1.FullRowSelect = True
ListView1.HotTracking = True
ListView1.HoverSelection = False

ListView1.ColumnHeaders.Add Text:="Row", Width:=64

For C = 1 To 13
ListView1.ColumnHeaders.Add Text:=S1.Cells(1, C).Text
ComboBox1.AddItem S1.Cells(1, C).Text
Next C

'For R = 2 To 21
' ListView1.ListItems.Add Index:=R - 1, Text:=Str(R)
' For C = 1 To 13
' ListView1.ListItems(R - 1).ListSubItems.Add Index:=C, Text:=Cells(R, C).Text
' Next C
'Next R

End Sub
 

Ekli dosyalar

Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Kodun

Kod:
LookAt:=xlWhole, _
yukarıdaki bölümü aşağıdaki ile değiştirin

Kod:
LookAt:=xlPart, _
birde bu kodu userform4 ün en sonuna ekleyin

Kod:
Private Sub TextBox1_Change()
CommandButton1_Click
End Sub
 
Katılım
29 Ağustos 2011
Mesajlar
63
Excel Vers. ve Dili
2007
Hocam çok teşekkür ederim. Hocam bir sorum daha olacak, arama penceresindeki kelimelerde harfler silinince aşağıdaki arama verilerinin (listview) de otomatik silinmesi ve en son ekranda aranacak kelime kalmadığında aşağıdaki alanında boşalması için clear ifadesini nereye koyabiliriz
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Kod bloğunuzda aşağıdaki satırı bulun.

Kod:
ListView1.ListItems.Clear
Daha sonra bu satırı seçip kes komutu ile aşağıdaki satırın bir üstüne yapıştırın.

Kod:
If TextBox1.Text = "" Then
 
Katılım
29 Ağustos 2011
Mesajlar
63
Excel Vers. ve Dili
2007
Teşekkürler hocam...Bu konu hakkında son sorum olsun... bu örnekte ayrı sayfalardaki verileri aynı formda search etmek için bir combobox ekleyip içine tarama yapmak istediğim sayfa isimlerini yazıp işaretlediğimde bu sayfada search yapmak istiyorum...yukarda belittğim kodda nasıl bir değişiklik yapmalıyım acaba. Örnek çalışma ekte
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Kodlarınızın içinde aşağıdaki satırı bulup silin.

Kod:
Set S1 = Sheets("Sheet1")
Yerine aşağıdaki satırları uygulayın.

Kod:
If ComboBox2 = "" Then
  MsgBox "Lütfen arama yapacağınız sayfayı seçiniz."
  ComboBox1.SetFocus
  Exit Sub
End If
 
Set S1 = Sheets(ComboBox2.Text)
 
Katılım
29 Ağustos 2011
Mesajlar
63
Excel Vers. ve Dili
2007
Teşekkürler hocam ancak bir sorun var...sheet (combobox2) değiştirdiğimde kategori isimleri (combobox1) maalesef değişmiyor...iki sayfa arasında farklı başlıkta kategoriler olduğu için bu sorundan dolayı ilgili kategoriyi seçip search yapamıyorum. Sorun ne olabilir ki acaba
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Ekteki örnek dosyayı inceleyiniz.
 

Ekli dosyalar

Katılım
29 Ağustos 2011
Mesajlar
63
Excel Vers. ve Dili
2007
Hocam teşekkür ederim ama "Method or data member not found" uyarısı alıyorum. VBA da Listview1 işaretleniyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Örnek dosyadaki ListView1 nesnesini silip yeniden oluşturup deneyin. Versiyon sorunu yaşıyor olabilirsiniz.
 

asuzen

Altın Üye
Katılım
29 Eylül 2005
Mesajlar
137
Excel Vers. ve Dili
Office 2003 Türkçe-----
Office 2019 Türkçe-----
Altın Üyelik Bitiş Tarihi
22-06-2029
Merhaba,

Örnek dosyadaki ListView1 nesnesini silip yeniden oluşturup deneyin. Versiyon sorunu yaşıyor olabilirsiniz.
Hocam dediğiniz gibi versiyondan kaynaklanıyor sanırım. 2003 de sorunsuz çalışıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Dosyaya listelenen kayıtları başka excel dosyasına aktarma özelliği eklenmiştir. #9 nolu mesajımdaki dosyayı güncelledim.
 
Katılım
29 Ağustos 2011
Mesajlar
63
Excel Vers. ve Dili
2007
Hocam dediğiniz gibi listview nesnesini silip tekrar ekledim ancak aşağıdaki resimde bulunan kodda şöyle bir hata işaretlemesi yapılıyor
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Bu sorunları bazen bende yaşıyorum. Bahsedilen satırı silip tekrar deneyin. Gerekiyorsa o satırları silip tekrar yazın.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Buda alternatif dosya olsun
 

Ekli dosyalar

Katılım
29 Ağustos 2011
Mesajlar
63
Excel Vers. ve Dili
2007
Halit hocam,
Deneme.xls dosyasındaki örnek çalışmaya baktım çok kullanışlı gerçekten işimi görecek elinize sağlık ancak Listview1 üzerindeki yeşil arama alanlarına taranacak kelimeyi yazdığımda bazen tarama yapıyo bazen yapmıyor...acaba ben mi yanlış bişeyler yapıyorum yada tarama yapmak için biryerleri mi işaretlemem gerekiyor çözemedim tam olarak. Bu konuda yardımcı olabilirseniz sevinirim
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Halit hocam,
Deneme.xls dosyasındaki örnek çalışmaya baktım çok kullanışlı gerçekten işimi görecek elinize sağlık ancak Listview1 üzerindeki yeşil arama alanlarına taranacak kelimeyi yazdığımda bazen tarama yapıyo bazen yapmıyor...acaba ben mi yanlış bişeyler yapıyorum yada tarama yapmak için biryerleri mi işaretlemem gerekiyor çözemedim tam olarak. Bu konuda yardımcı olabilirseniz sevinirim
Taramanın yapıla bilmesi için userformu sayfadaki komut düğmesinden çalıştırmalısınız.

Diğer taraftan kodların bulunduğu userformun içinden çalıştırırsanız arama işlemi yapmıyacaktır.
 
Katılım
29 Ağustos 2011
Mesajlar
63
Excel Vers. ve Dili
2007
Aslında sizin sayfanızdan Userform, modül ve class modüllerini export yapıp kendi sayfama aktardım...diğer taraftan benim formlarımı e sheet lerimi de sizin dosyanıza aktardım...yani ikisini de denemiş oldum...bu aktarmalardan dolayı bir uyumsuzluk yaşanabilir mi acaba... sheet isimleri ve sütun isimleri formda görünüyo veriler de aktarılıyor bu anlamda bir sorun olmadı, ama arama yaptığımda belirttiğim sorunla karşılaştım. Formlar dosyalar arası export yapıldığından kaynaklı uyumlu çalışması için kodlarda değişiklik yapmam gerekir mi acaba
 
Üst