• DİKKAT

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

Soru Userform listbox sıralama

Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Merhabalar ekteki dosyada gerekli açıklamaları yazdım . Teşekkür ederim
 

Ekli dosyalar

Kayıtlar sayfasında tablo olarak biçimlendirme yaptığınız ve boş satırları silmediğiniz için Combo kodlarınız boş satırları da listeliyor. Düzeltmek için aşağıdaki yapıyı kullanabilirsiniz:

PHP:
Sub Combo(ByVal Tablo As String)

Dim Muko As Double
    On Error Resume Next
    If Tablo = "" Then Tablo = syfaADo
    
    With Me
        .ComboBox1.Column = con.Execute("select distinct F1 from (" & Tablo & ") where F1 is not null").GetRows
        .ComboBox2.Column = con.Execute("select distinct F2 from (" & Tablo & ")").GetRows
        .ComboBox3.Column = con.Execute("select distinct F3 from (" & Tablo & ")").GetRows
        
    End With
Muko = ComboBox1.Text

 ToplamizinHakkiLabel.Caption = WorksheetFunction.VLookup(Muko, Worksheets("PERSONEL").Range("B:BQ"), 6, False)
 
End Sub

Listboxa verileri RowSource metoduyla aldığınızdan İkinci isteğiniz için formda sıralama işlemi yapılamaz diye düşünüyorum. Verileri kaynağında sıralamanız ya da verileri ADO gibi bir yöntemle almanız gerekir.
 
Hocam peki veri kaynagında sıralama yapmam için nasıl kod tavsiye edersiniz. Userform açılınca sıralam sayfa aktif olunca sıralama yapsın
 
Userform2'deki Listele kodlarını aşağıdakilerle değiştirip deneyin:

PHP:
Sub listele()
Dim ws As Worksheet
Dim ss As Long
Set ws = Sheets("PERSONEL")
ss = ws.Range("B100000").End(xlUp).Row
Sheets("PERSONEL").Select
ws.ListObjects("Tablo1").Sort.SortFields.Clear
ws.ListObjects("Tablo1").Sort.SortFields. _
    Add Key:=Range("C5:C" & ss), SortOn:=xlSortOnValues, Order:=xlAscending, _
    DataOption:=xlSortTextAsNumbers
With ws.ListObjects("Tablo1").Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With

ListBox1.ColumnCount = 4
ListBox1.ColumnWidths = "80;80;80;80"
If ss > 1 Then
    ListBox1.RowSource = "PERSONEL!B3:E" & ss
Else
    ListBox1.RowSource = "PERSONEL!B3:E3"
End If
End Sub
 
Hocam şimdi farkettim personel bul kısmında tc ile aranddıgında sayfadaki bilgiyi buluyor form bilgileri getirebilmesi yada listbox üzerinde bulunan kişiye odaklanması sağlanabilirmi acaba
 
Son sorunuzu anlayamadım maalesef. Daha açık belirtebilir misiniz?
 
Yusuf hocam şimdi çözdüm
Kod:
sil_satir = ActiveCell.Row
 ListBox1 = Worksheets("PERSONEL").Cells(sil_satir, 2)
burdaki kodu değiştirince istediğimi yaptı. Teşekkür ederim ilginize
 
Geri
Üst