• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ListView'de arama yapmada sorun

  • Konbuyu başlatan Konbuyu başlatan lapot
  • Başlangıç tarihi Başlangıç tarihi
Katılım
4 Temmuz 2006
Mesajlar
239
Arkadaslar merhaba

Ekledigim dosyada OPEN butonuyla acilan fromda arama yaprigimda aldigim veriler ilk sutundan baslayarak siralanmiyor, bir turlu cozemedim.

Yardimci olursaniz cok sevinirim.

Ayrica resim olarak ekledim


Saygilar sunuyorum
 

Ekli dosyalar

  • Sample Arama.xlsm
    Sample Arama.xlsm
    139.9 KB · Görüntüleme: 10
  • CaptureArama.JPG
    CaptureArama.JPG
    144.4 KB · Görüntüleme: 12
Bu konuda bir cevap alamama sasirdim dogrusu , sadece asagidaki kodda bu kisimda

"ListView1.ListItems(Cnt).ListSubItems.Add Index:=Col, Text:=C.Text"

yapilcak bir degisiklikle bu sorunun cozulecegini saniyordum ama benim bilgim bir yere kadar

cozebilen biri varsa lutfen yardimci olun

saygilar

Private Sub CommandButton1Search_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 Wks As Worksheet
Sheets("Rapor").Select
StartRow = 2
Set Wks = Sheets("Rapor")

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

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

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

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

Set FoundMatch = Rng.Find(What:=TextBox1Search.Text, _
After:=Rng.Cells(1, 1), _
LookAt:=xlPart, _
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
For Col = 1 To 24
Set C = Wks.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 "
End If

End Sub
 
Bu konuda bir cevap alamama sasirdim dogrusu
Şaşırmayın.Zira formunuzda standart olmayan bazı nesneler var.Bu nesneler bizde olmadığından daha userform açılırken hata veriyor.Bende listview var ama diğerleri yok.Umarım başka arkadşlarda bu durumla karşılaştı ve cevap yazmadı.:cool:
 
Objeler icin reference kisminda "Microsoft Windows common controls 6.0 (SP6)"

isaretlerseniz Userform calisir.

resim olarak attim asagida

saygilar
 

Ekli dosyalar

  • Capture object.JPG
    Capture object.JPG
    49.6 KB · Görüntüleme: 5
Objeler icin reference kisminda "Microsoft Windows common controls 6.0 (SP6)"

isaretlerseniz Userform calisir.

resim olarak attim asagida

saygilar

O referans listview için geçerli.Bu refransın açamadığı başka nesnelerde var.Onların referanslarınında olması lazım.Ama önce o ocx dosyalarını windovsa yükleyip regedit etmek gerekiyor.Ama ben o ocx leri eklemek istemiyorum bilgisayarıma.:cool:
 
Cevabi buldum, loop kisminin degismesi lazimmis, belki baskasina lazim olur diye paylasiyorum.


Do
Cnt = Cnt + 1
R = FoundMatch.Row
ListView1.ListItems.Add Index:=Cnt, Text:=Wks.Cells(R, 1).Text
'For Col = 1 To 13
For Col = 2 To 24
Set C = Wks.Cells(R, Col)
ListView1.ListItems(Cnt).ListSubItems.Add Index:=Col - 1, Text:=C.Text
Next Col
Set FoundMatch = Rng.FindNext(FoundMatch)
Loop While FoundMatch.Address <> FirstAddx
Else
 
Geri
Üst