• DİKKAT

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

ListViewde sıralama sorunu

  • Konbuyu başlatan Konbuyu başlatan Hebyıl
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Nisan 2012
Mesajlar
18
Excel Vers. ve Dili
Excel 2016
Sayun üstadlar sizlerin yardımı ve forumda alıntı yaparak kendime göre bir personel formu oluşturdum, ancak birkaç çözemediğim hata var yardımlarınız ihtiyacım var, ilgilenenlere şimdiden teşekkürler

1- Listviewde ColumnHeader e sıralama özelliği verdim, sıralıyor ancak sıralamadan sonra listviewde ki biligilere tıkladıgımda textbok ve Comboboxlara sıralamadan önceki bilgileri getiriyor, aynı şekilde Textbox9 arama özelliğide yapmıyor,
2- birde Sıralama butonu verilerin alındıgı data Çalışma, sayfası açıkken çalışıyor, fakat farklı bir çalışma sayfasındayken çalışmıyor
 
dosyayı bir türlü ekleyemedim nette sorun var sanırım eklemeye çalışayım yinede
Kod:
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)

If OptionButton9.Value = True Then

On Error Resume Next
ListView1.Sorted = True
ListView1.SortKey = ColumnHeader.Index - 1
If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If
ListView1.Sorted = False
End If
Set Sh = Sheets(ComboBox8.Value)

If OptionButton10.Value = True Then
If ColumnHeader.Index - 1 = 1 Then

ComboBox8.Text = ""

Exit Sub
End If

'Cer5 = ColumnHeader.Index - 1
'sat9 = Val(ComboBox7.ListIndex) + 4 ' + Label1 + 1

If sat9 < 2 Then
sat9 = 2
End If

If sat9 > Cer5 - 1 Then
Exit Sub
End If

On Error Resume Next
For i = sat9 To ColumnHeader.Index - 1
ListView1.ColumnHeaders(i).Width = 0
Controls("TextBox" & i - 1).Visible = False
Controls("ComboBox" & i - 1).Visible = False
Controls("Ttext" & i - 1).Visible = False
Controls("CheckBox" & i - 1).Visible = False
Next

mert = 2
mert1 = Val(Label1) - 2
On Error Resume Next
For r = 1 To sat9 - 2
mert = mert + Sh.Columns(r + mert1).Width
Next
mert = mert
For i = Cer5 To ListView1.ColumnHeaders.Count
Controls("TextBox" & i).Left = mert
Controls("ComboBox" & i).Left = mert
Controls("Ttext" & i).Left = mert
Controls("CheckBox" & i).Left = mert
mert = mert + Sh.Columns(i + mert1).Width
Next
End If

If OptionButton11.Value = True Then
Cer5 = ColumnHeader.Index
On Error Resume Next
ListView1.ColumnHeaders(Cer5).Width = 0
Controls("TextBox" & Cer5 - 1).Visible = False
Controls("ComboBox" & Cer5 - 1).Visible = False
Controls("Ttext" & Cer5 - 1).Visible = False
Controls("CheckBox" & Cer5 - 1).Visible = False
mert = 2
For i = 1 To ListView1.ColumnHeaders.Count
Controls("TextBox" & i).Left = mert
Controls("ComboBox" & i).Left = mert
Controls("Ttext" & i).Left = mert
Controls("CheckBox" & i).Left = mert
If ListView1.ColumnHeaders(i + 1).Width = 0 Then
Controls("TextBox" & i).Visible = False
Controls("ComboBox" & i).Visible = False
Controls("Ttext" & i).Visible = False
Controls("CheckBox" & i).Visible = False
End If

mert = mert + ListView1.ColumnHeaders(i + 1).Width
Next
End If

End Sub
 
nihayet ekleyebildim dosyayı :)


UserForm_Initialize kodu na kırmızı yeri ekledim. dosyanda veri sayfası olmadığı için açılışta devamlı hata veriyor.

Kod:
Private Sub UserForm_Initialize()
For j = 2 To WorksheetFunction.CountA(Worksheets("DATA").Range("A1:L1"))
ComboBox8.AddItem Sheets("DATA").Cells(1, j).Value
Next
ListView1.View = lvwReport
ListView1.Gridlines = True
ListView1.FullRowSelect = True
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Clear
With ListView1.ColumnHeaders
[COLOR=red].Add , , "    sıra no  ", 0[/COLOR]
.Add , , "     PERSONELİN   ", 140
 End With
ComboBox8.Text = ComboBox8.List(Sheets("TAKVİM").Cells(5, 64).Value - 1)
TextBox9_Change
For j = 1 To 60
'ComboBox4.AddItem Date + j - 30
Next
'ComboBox1.RowSource = "VERİ!B2:B" & Sheets("VERİ").Range("B" & Rows.Count).End(xlUp).Row
ComboBox2.RowSource = "İlçeler!C2:C" & Sheets("İlçeler").Range("C" & Rows.Count).End(xlUp).Row
'ComboBox4.RowSource = "VERİ!C2:C" & Sheets("VERİ").Range("C" & Rows.Count).End(xlUp).Row
ComboBox5.RowSource = "İlçeler!C2:C" & Sheets("İlçeler").Range("C" & Rows.Count).End(xlUp).Row
'ComboBox6.RowSource = "VERİ!D2:D" & Sheets("VERİ").Range("D" & Rows.Count).End(xlUp).Row
 TextBox11 = Sheets("DATA").Range("AA1").Value
 
End Sub


ListView1_Click koduna kırmızı yeri ekledim


Kod:
Private Sub ListView1_Click()
If ListView1.ListItems.Count = 0 Then Exit Sub
[COLOR=red]Bulunan_Satir_No = ListView1.ListItems(ListView1.SelectedItem.Index)[/COLOR]
'Bulunan_Satir_No = ListView1.SelectedItem.Index + 1
TextBox1.Text = Sheets("DATA").Range("A" & Bulunan_Satir_No).Value
TextBox2.Text = Sheets("DATA").Range("B" & Bulunan_Satir_No).Value
TextBox3.Text = Sheets("DATA").Range("C" & Bulunan_Satir_No).Value
ComboBox1.Text = Sheets("DATA").Range("D" & Bulunan_Satir_No).Value
ComboBox2.Text = Sheets("DATA").Range("E" & Bulunan_Satir_No).Value
ComboBox3.Text = Sheets("DATA").Range("F" & Bulunan_Satir_No).Value
ComboBox4.Text = Sheets("DATA").Range("G" & Bulunan_Satir_No).Value
ComboBox5.Text = Sheets("DATA").Range("H" & Bulunan_Satir_No).Value
TextBox4.Text = Sheets("DATA").Range("I" & Bulunan_Satir_No).Value
ComboBox6.Text = Sheets("DATA").Range("J" & Bulunan_Satir_No).Value
ComboBox7.Text = Sheets("DATA").Range("K" & Bulunan_Satir_No).Value
TextBox5.Text = Sheets("DATA").Range("L" & Bulunan_Satir_No).Value
TextBox6.Text = Sheets("DATA").Range("M" & Bulunan_Satir_No).Value
TextBox7.Text = Sheets("DATA").Range("N" & Bulunan_Satir_No).Value
TextBox8.Text = Sheets("DATA").Range("O" & Bulunan_Satir_No).Value
'TextBox10.Text = Val(Val(((Date - CDate(Sheets("DATA").Cells(sat, 9).Value)) * 1) + 1) / 365.25)
TextBox12.Text = Sheets("DATA").Range("P" & Bulunan_Satir_No).Value
RESIMLERIBUL_Click
End Sub

ComboBox8_Change koduna kırmızı yerleri ekeldim.


Kod:
Private Sub ComboBox8_Change()
Dim x As Integer
        ListView1.ListItems.Clear
        x = Range("A65536").End(xlUp).Row
i = ComboBox8.ListIndex + 2
        With Sheets("DATA")
           For a = 2 To .[b65536].End(3).Row
          [COLOR=red] Y = Y + 1
[/COLOR]              ListView1.ListItems.Add , ,[COLOR=red] a
[/COLOR]              [COLOR=red]ListView1.ListItems(Y).ListSubItems.Add , ,[/COLOR] .Cells(a, i).Value
            Next a
        End With
        'ListView1.ColumnHeaders.Clear
  'ListView1.ColumnHeaders.Add , , "      PERSONELİN  ", 140
End Sub
 
Sayın Halit bey ilginizden dolayı teşekkürler,
Dediklerinizi uyguladım, veri sayfasınıda ekledim, sıralama yapıyor, yalnız 1. mesajdada belirttiğim Textbox9 da arama yapıyordum, sıralamadan sonra yapmıyordu, şimdi ise Textbox9 da hiç arama yapmıyor,
birde Sütün süz butonu çalışmıyor,
bu konularıda çözermisiniz acaba
 

Ekli dosyalar

Sayın Halit bey ilginizden dolayı teşekkürler,
Dediklerinizi uyguladım, veri sayfasınıda ekledim, sıralama yapıyor, yalnız 1. mesajdada belirttiğim Textbox9 da arama yapıyordum, sıralamadan sonra yapmıyordu, şimdi ise Textbox9 da hiç arama yapmıyor,
birde Sütün süz butonu çalışmıyor,
bu konularıda çözermisiniz acaba

Textbox9 kodunu aşağıdaki gibi deneyin

siz bu kodların hemsini bir başka yerden almışsınız kendinize uyarlamamışsınız kodların neresine el atsanız diğeri bozuluyor


Kod:
Private Sub TextBox9_Change()
ListView1.ListItems.Clear
x = Range("A65536").End(xlUp).Row
i = ComboBox8.ListIndex + 2
For Each M In Range(Cells(2, i), Cells(x, i))
k = k + 1
If LCase(M) Like LCase(TextBox9 & "*") Then
'ListView1.ListItems.Add , , M
Y = Y + 1
ListView1.ListItems.Add , , k + 1
ListView1.ListItems(Y).ListSubItems.Add , , M
End If
Next
End Sub
 
Genel olarak ListView1 nesnesine ya ilk kolonuna yada son kolanuna satır numaralarını aldırmak gerekiyor siz bunu yapmamışsınız dolayısıyla sıralama veya süzme yapınca ilgili hücrelerdeki veriler gelmiyor.

Ben dosyanızda birinci kolona sıra numarası verdirip bunları yapmaya çalıştım tabi bu durumda kodlarınızın hepsini sil baştan değiştirmek gerekiyor.Birinci kolon
açılışdaki

Kod:
.Add , , "    sıra no  ", [COLOR=red]0[/COLOR]
yukarıdaki bölümde kırmızı sıfır sayısı yerini 30 rakamı yapıp görebilirsiniz.
 
Sayın Halit bey,
doğrudur hep alıntı yaptım, kendime uyarlamaya çalıştım, kodlardan fazla anlamam, takıldığım yerlerden sizin gibi Üstadlardan istifade ediyorum, ilginizden dolayı çok sağolun, kalan sorunlarıda deneme yanılma yöntemiyle çözmeye çalışacağım,
hayırlı çalışmalar
 
Geri
Üst