Soru Userform listbox sıralama

Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Merhabalar ekteki dosyada gerekli açıklamaları yazdım . Teşekkür ederim
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
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.
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
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
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
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
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Çok teşekkürler istediğim gibi çalıştı
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
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
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Son sorunuzu anlayamadım maalesef. Daha açık belirtebilir misiniz?
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
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
 
Üst