Soru Listboxta görüntülenen son 20 veriyi listeleme

serif_007

Altın Üye
Katılım
5 Nisan 2014
Mesajlar
155
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
16-07-2027
Herkese merhaba. Aşağıda hali hazırda kullanmakta olduğum kodlar mevcut bu kodlarda nasıl bir değişiklik yaparak listboxta görüntülediğim son 20 veriyi listeleye bilirim?
Bu şekilde listboxa 1000 adet veri getiriyor. Yardımlarınız için şimdiden çok teşekkürler

Kod:
Private Sub UserForm_Initialize()
Dim i As Long
Dim s As String
     's = "this is line "
     For i = 1 To 20
             Me.ListBox1.AddItem s & i
     Next
  TextBox1.Enabled = False
    ListBox1.ColumnCount = 20
    ListBox1.ColumnHeads = True
    ListBox1.ListStyle = fmListStyleOption
    ListBox1.MultiSelect = fmMultiSelectMulti
    ListBox1.RowSource = "A2:AB" & [A1004].End(3).Row
    ListBox1.ColumnWidths = "40;50;0;150;0;150;90;0;80;80;80;90;100;100;0;0;0;0;0;0;0;0;0;0;0;0;0;0"
    Dim rRange As Range
      OptionButton2 = True

End Sub
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

ListBox1.RowSource = "A2:AB" & [A1004].End(3).Row
yukarıdaki satırın yerine aşağıdaki satırları yazarak deneyiniz.

Kod:
    Dim son As Long, ilk As Long
    son = [A1004].End(3).Row
    ilk = son - 19
    ilk = WorksheetFunction.Max(2, ilk)
    ListBox1.RowSource = "A" & ilk & ":AB" & son
 

serif_007

Altın Üye
Katılım
5 Nisan 2014
Mesajlar
155
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
16-07-2027
Merhaba,

ListBox1.RowSource = "A2:AB" & [A1004].End(3).Row
yukarıdaki satırın yerine aşağıdaki satırları yazarak deneyiniz.

Kod:
    Dim son As Long, ilk As Long
    son = [A1004].End(3).Row
    ilk = son - 19
    ilk = WorksheetFunction.Max(2, ilk)
    ListBox1.RowSource = "A" & ilk & ":AB" & son
öncelikle cevabınız için çok teşekkür ederim. Fakat sanırım eksik anlatım yaptım biraz detaylandırayım. Yukarıdaki kodları denediğimde listboxtaki 1000 satırdan geriye doğru 20 satır verdi aslında doğru çalışıyor fakat 1000 ve öncesi 20 satır daha dolu olmadığı için listbox boş geldi. Şöyle detaylandırayım belki bir açıklık getirir. Bunu C sütunundaki son dolu satırdan geriye doğru 20 satır listeleyebilir miyiz? Ayrıca yukarıdaki kodlar listboxtaki sütun başlıklarını da boş getiriyor.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
son = [A1004].End(3).Row

Buradaki A yı C yapmanız yeterli. Yalnız başlık satırını alamamanız normal, çünkü son 20 veriyi alıyorsunuz. RowSource ile bu aralık şartını vererek başlık satırını alamazsınız. Bu verileri başka bir sayfada raporlayıp RowSource ile oradaki verilerden alabilirsiniz. Yada dizi yöntemi ile ilerlemelisiniz fakat bu da başlıkları istediğiniz formtta getirmez.
 

serif_007

Altın Üye
Katılım
5 Nisan 2014
Mesajlar
155
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
16-07-2027
son = [A1004].End(3).Row

Buradaki A yı C yapmanız yeterli. Yalnız başlık satırını alamamanız normal, çünkü son 20 veriyi alıyorsunuz. RowSource ile bu aralık şartını vererek başlık satırını alamazsınız. Bu verileri başka bir sayfada raporlayıp RowSource ile oradaki verilerden alabilirsiniz. Yada dizi yöntemi ile ilerlemelisiniz fakat bu da başlıkları istediğiniz formtta getirmez.
Ömer bey çok teşekkür ederim yardımınız için. Başlık çok da olmazsa olmaz birşey değil zaten benim için önemli olan son 20 veriydi. Tekrar çok teşekkürler.
 
Üst