ListBox Sıralama

Katılım
26 Kasım 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
15.10.2022
Projemde 10 tane lixbox var bunlardan bazıları A-Z bazıları ise Z-A sıralı olması lazım. Yalnız bu sıralamalar id göre olmayacak. Örneğin mısır cinsine göre sıralamak istiyorum. Nasıl yapabilirim.



Lixbox veriyi şu şekilde alıyorum.

With UserForm1.ListBox1
.ColumnCount = 7 ' Kaç Sütun Görünecek
.ForeColor = vbBlue ' Yazı Rengi
.ColumnWidths = "25;88;82;82;95;89;89"
If Sheets("veri_tablosu").Range("A2") = Empty Then
.RowSource = Empty
Else
.RowSource = "veri_tablosu!A2:G" & [veri_tablosu!A65536].End(3).Row
End If
 

Mustafa MUTLU

Destek Ekibi
Destek Ekibi
Katılım
24 Temmuz 2008
Mesajlar
1,586
Excel Vers. ve Dili
Ofis 2013 TR 32 Bit
şunu denermisiniz.

1.
Sub kucuktenBuyuge()
Range("A2:G65500").Sort Key1:=Range("A2"), order1:=xlAscending
End Sub

2.
Sub BuyuktenKucuge()
Range("A2:G65500").Sort Key1:=Range("A2"), order1:=xlDescending
End Sub

ListBox tan önce yukarıdaki 2 koddan birini ekle
 
Katılım
26 Kasım 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
15.10.2022
şunu denermisiniz.

1.
Sub kucuktenBuyuge()
Range("A2:G65500").Sort Key1:=Range("A2"), order1:=xlAscending
End Sub

2.
Sub BuyuktenKucuge()
Range("A2:G65500").Sort Key1:=Range("A2"), order1:=xlDescending
End Sub

ListBox tan önce yukarıdaki 2 koddan birini ekle
Bu şekilde uyguladım olmadı.

With UserForm1.ListBox1
Range("A2:G65500").Sort Key1:=Range("A2"), order1:=xlDescending
.ColumnCount = 7 ' Kaç Sütun Görünecek
.ForeColor = vbBlue ' Yazı Rengi
.ColumnWidths = "25;88;82;82;95;89;89"
If Sheets("veri_tablosu").Range("A2") = Empty Then
.RowSource = Empty
Else
.RowSource = "veri_tablosu!A2:G" & [veri_tablosu!A65536].End(3).Row
End If
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
aşağıdaki gibi deneyin.
Küçükten büyüğe sıralar.:cool:

Kod:
.rowSource=empty
Range("A2:G65500").Sort Key1:=Range("B2"), order1:=xlAscending
.RowSource = "veri_tablosu!A2:G" & [veri_tablosu!A65536].End(3).Row
 
Katılım
26 Kasım 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
15.10.2022
aşağıdaki gibi deneyin.
Küçükten büyüğe sıralar.:cool:

Kod:
.rowSource=empty
Range("A2:G65500").Sort Key1:=Range("B2"), order1:=xlAscending
.RowSource = "veri_tablosu!A2:G" & [veri_tablosu!A65536].End(3).Row

Bu şekilde mi kullanmam gerekiyordu? Bu şekilde denedim olmadı.

With UserForm1.ListBox2
.ColumnCount = 7 ' Kaç Sütun Görünecek
.ForeColor = vbBlack ' Yazı Rengi
.ColumnWidths = "25;88;82;82;95;89;89"
If Sheets("veri_tablosu").Range("A2") = Empty Then
.RowSource = Empty
Else
Range("A2:G65500").Sort Key1:=Range("B2"), order1:=xlAscending
.RowSource = "veri_tablosu!A2:G" & [veri_tablosu!A65536].End(3).Row
End If
End With
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki gibi deneyiniz.:cool:
B sütununa göre A-Z sıralar.:cool:
Bu şekilde mi kullanmam gerekiyordu? Bu şekilde denedim olmadı.

Kod:
With UserForm1.ListBox2
.ColumnCount = 7 ' Kaç Sütun Görünecek
.ForeColor = vbBlack ' Yazı Rengi
.ColumnWidths = "25;88;82;82;95;89;89"
.RowSource = Empty
Range("A2:G65500").Sort Key1:=Range("B2"), order1:=xlAscending
.RowSource = "veri_tablosu!A2:G" & [veri_tablosu!A65536].End(3).Row
End If
End With
 
Katılım
26 Kasım 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
15.10.2022
Bu şekilde denediğimde olmadı yada ben yanlış yaptım.

Dosyayı burdan indirebilirsiniz.

Listelemeleri saçma bi şekilde yaptığım için düzeltmek istiyorum. Yardımcı olursanız sevinirim. Birde Fırın durum tablosunda 2 adet texbox var birinde doluları diğerinde boş olanları gösteresi gerekiyor. Boş ve dolu olanı mısır cinsine göre belirleyecek. Mısır cinsi dolu ise dolu boş ise boş olaanları listeleyecek.

Aşağıdaki gibi deneyiniz.:cool:
B sütununa göre A-Z sıralar.:cool:
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Fırına aktar sayfasında listbox2 için sayfada A-Z sıralama yapıyor önce,sonrada verileri alıyor listbox2ye.

Diğer sorunuzda mısır cinsinin dolumu yada boşmu olduğu hangi başlıkta(sütunda) yazılı,onu bilmek lazım.
Dosyanız ektedir.:cool:

DOSYAYI İNDİR

Kod:
With UserForm1.ListBox2
.ColumnCount = 7 ' Kaç Sütun Görünecek
.ForeColor = vbBlack ' Yazı Rengi
.ColumnWidths = "25;88;82;82;95;89;89"
[B][COLOR="Red"]If [veri_tablosu_default!A65536].End(3).Row > 2 Then
    Sheets("veri_tablosu_default").Range("A3:G" & [veri_tablosu_default!A65536].End(3).Row).Sort _
            key1:=Sheets("veri_tablosu_default").Range("B3"), order1:=xlAscending[/COLOR][/B]
    If Sheets("veri_tablosu_default").Range("A2") = Empty Then
    .RowSource = Empty
    Else
    .RowSource = "veri_tablosu_default!A2:G" & [veri_tablosu_default!A65536].End(3).Row
    End If
[B][COLOR="Red"]End If[/COLOR][/B]
End With
 

Ekli dosyalar

Katılım
26 Kasım 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
15.10.2022
firin_izleme_tablosu sayfasında C2 Sutunu vidi olarak yer almakta. C3 de herhangi bi değer varsa dolu olarak kabul edecek. Herhangi bi değer yoksa boş olarak kabul edecek.

Userformda fırın durum diye bi sekme var. Bu sekme içerisindeki ListBox7 ye dolu olanları ListBox10 ise boş olanları getirecek.



Fırına aktar sayfasında listbox2 için sayfada A-Z sıralama yapıyor önce,sonrada verileri alıyor listbox2ye.

Diğer sorunuzda mısır cinsinin dolumu yada boşmu olduğu hangi başlıkta(sütunda) yazılı,onu bilmek lazım.
Dosyanız ektedir.:cool:

DOSYAYI İNDİR

Kod:
With UserForm1.ListBox2
.ColumnCount = 7 ' Kaç Sütun Görünecek
.ForeColor = vbBlack ' Yazı Rengi
.ColumnWidths = "25;88;82;82;95;89;89"
[B][COLOR="Red"]If [veri_tablosu_default!A65536].End(3).Row > 2 Then
    Sheets("veri_tablosu_default").Range("A3:G" & [veri_tablosu_default!A65536].End(3).Row).Sort _
            key1:=Sheets("veri_tablosu_default").Range("B3"), order1:=xlAscending[/COLOR][/B]
    If Sheets("veri_tablosu_default").Range("A2") = Empty Then
    .RowSource = Empty
    Else
    .RowSource = "veri_tablosu_default!A2:G" & [veri_tablosu_default!A65536].End(3).Row
    End If
[B][COLOR="Red"]End If[/COLOR][/B]
End With
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanız ektedir.
Dolu ve Boş listboxlar için filterleme yapıldı ve listelendi.

DOSYAYI İNDİR

Kod:
'ListBox7
Sheets("dolu").Select
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
Range("A2:L" & Rows.Count).ClearContents
Sheets("firin_izleme_tablosu").Range("$A$2:$L$" & Sheets("firin_izleme_tablosu"). _
        Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=3, Criteria1:=">0"
Sheets("firin_izleme_tablosu").Range("A1:L" & Sheets("firin_izleme_tablosu"). _
        Cells(Rows.Count, "C").End(xlUp).Row).CurrentRegion.Copy
Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
Sheets("firin_izleme_tablosu").Range("$A$2:$L$" & Rows.Count).AutoFilter
Range("A3:L" & Rows.Count).Sort Range("D3")
Range("A1").Select
Application.CutCopyMode = False
With UserForm1.ListBox7
.ColumnCount = 12 ' Kaç Sütun Görünecek
.ColumnHeads = True
.ForeColor = vbRed ' Yazı Rengi
.ColumnWidths = "25;60;25;50;50;35;35;30;35;80;80;80"
.RowSource = "dolu!A3:L" & [dolu!A65536].End(3).Row
End With
 

Ekli dosyalar

Katılım
26 Kasım 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
15.10.2022
Çok teşekkür ederim. Fırın durum tablosu olmuş. Olay tablosunda nasıl bi yol izleyebilirim. Aşağıdaki gibi yaptım fakat olay_tablosu sayfa içeriğini sildi.

Burda olması gereken kurutma bitiş tarihine göre A-Z sıralamak. Sadece dolu olanları göstermek.


'ListBox5
Sheets("olay_tablosu").Select
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
Range("A2:C" & Rows.Count).ClearContents
Sheets("olay_tablosu").Range("$A$2:$C$" & Sheets("olay_tablosu"). _
Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=3, Criteria1:=">0"
Sheets("olay_tablosu").Range("A1:C" & Sheets("olay_tablosu"). _
Cells(Rows.Count, "C").End(xlUp).Row).CurrentRegion.Copy
Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
Sheets("olay_tablosu").Range("$A$2:$C$" & Rows.Count).AutoFilter
Range("A3:C" & Rows.Count).Sort Range("B3")
Range("A1").Select
Application.CutCopyMode = False
With UserForm1.ListBox5
.ColumnCount = 3 ' Kaç Sütun Görünecek
.ColumnHeads = True
.ForeColor = vbRed ' Yazı Rengi
.ColumnWidths = "25;60;60"
.RowSource = "olay_tablosu!A3:C" & [olay_tablosu!A65536].End(3).Row
End With




Dosyanız ektedir.
Dolu ve Boş listboxlar için filterleme yapıldı ve listelendi.

DOSYAYI İNDİR

Kod:
'ListBox7
Sheets("dolu").Select
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
Range("A2:L" & Rows.Count).ClearContents
Sheets("firin_izleme_tablosu").Range("$A$2:$L$" & Sheets("firin_izleme_tablosu"). _
        Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=3, Criteria1:=">0"
Sheets("firin_izleme_tablosu").Range("A1:L" & Sheets("firin_izleme_tablosu"). _
        Cells(Rows.Count, "C").End(xlUp).Row).CurrentRegion.Copy
Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
Sheets("firin_izleme_tablosu").Range("$A$2:$L$" & Rows.Count).AutoFilter
Range("A3:L" & Rows.Count).Sort Range("D3")
Range("A1").Select
Application.CutCopyMode = False
With UserForm1.ListBox7
.ColumnCount = 12 ' Kaç Sütun Görünecek
.ColumnHeads = True
.ForeColor = vbRed ' Yazı Rengi
.ColumnWidths = "25;60;25;50;50;35;35;30;35;80;80;80"
.RowSource = "dolu!A3:L" & [dolu!A65536].End(3).Row
End With
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

Not: Mesjalarınızda makro kodlarını belirtmek için
Kod:
 [/B]taglarını kullanırsanız iletileriniz daha okunaklı olacaktır.

[B]Ekran Görüntüsü (GİF) : [/B]

[IMG]http://i.hizliresim.com/mPRE68.gif[/IMG]

. . .
 
Katılım
26 Kasım 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
15.10.2022
Hüseyin Bey kusura bakmayın onun nasıl yapıldığını bilmiyordum.


Evren Bey Fırın durum tablosu olmuş. Olay tablosunda nasıl bi yol izleyebilirim. Aşağıdaki gibi yaptım fakat olay_tablosu sayfa içeriğini sildi.

Burda olması gereken kurutma bitiş tarihine göre A-Z sıralamak. Sadece dolu olanları göstermek.

Kod:
'ListBox5
Sheets("olay_tablosu").Select
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
Range("A2:C" & Rows.Count).ClearContents
Sheets("olay_tablosu").Range("$A$2:$C$" & Sheets("olay_tablosu"). _
Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=3, Criteria1:=">0"
Sheets("olay_tablosu").Range("A1:C" & Sheets("olay_tablosu"). _
Cells(Rows.Count, "C").End(xlUp).Row).CurrentRegion.Copy
Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
Sheets("olay_tablosu").Range("$A$2:$C$" & Rows.Count).AutoFilter
Range("A3:C" & Rows.Count).Sort Range("B3")
Range("A1").Select
Application.CutCopyMode = False
With UserForm1.ListBox5
.ColumnCount = 3 ' Kaç Sütun Görünecek
.ColumnHeads = True
.ForeColor = vbRed ' Yazı Rengi
.ColumnWidths = "25;60;60"
.RowSource = "olay_tablosu!A3:C" & [olay_tablosu!A65536].End(3).Row
End With
. . .

Not: Mesjalarınızda makro kodlarını belirtmek için
Kod:
 [/B]taglarını kullanırsanız iletileriniz daha okunaklı olacaktır.

[B]Ekran Görüntüsü (GİF) : [/B]

[IMG]http://i.hizliresim.com/mPRE68.gif[/IMG]

. . .[/QUOTE]
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
1 tane olay_suz sayfası eklendi..
Olay tablosunda süzüldü.
Süzülen veriler olay_suz sayfasına aktarıldı.
C sütununa göre dolu olan satırlar süzüldü.B sütununa göre ise sıralandı(Olay_suz sayfasında).
Olay_suz sayfasındaki veriler listbox5 te listelendi.
Dosyanız ekte ve linktedir.:cool:

DOSYAYI İNDİR

Kod:
'ListBox5
Sheets("olay_suz").Select
ListBox5.RowSource = ""
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
Range("A2:C" & Rows.Count).ClearContents
Sheets("olay_tablosu").Range("$A$2:$C$" & Sheets("olay_tablosu"). _
Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=3, Criteria1:=">0"
Sheets("olay_tablosu").Range("A1:C" & Sheets("olay_tablosu"). _
Cells(Rows.Count, "C").End(xlUp).Row).CurrentRegion.Copy
Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
Sheets("olay_tablosu").Range("$A$2:$C$" & Rows.Count).AutoFilter
Range("A3:C" & Rows.Count).Sort Range("B3")
Range("A1").Select
Application.CutCopyMode = False
With UserForm1.ListBox5
.ColumnCount = 3 ' Kaç Sütun Görünecek
.ColumnHeads = True
.ForeColor = vbRed ' Yazı Rengi
.ColumnWidths = "25;60;60"
.RowSource = "olay_suz!A3:C" & [olay_suz!A65536].End(3).Row
End With
 

Ekli dosyalar

Katılım
26 Kasım 2014
Mesajlar
72
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
15.10.2022
Evren Bey,

Çok teşekkür ederim. İstediğim gibi olmuş. Kodları incelediğimde çok zor olmadığını düşünüyorum ama uygulamada sıkıntı yaşadım. Form açılışta veri_tablosu sayfasını A1 den G sutununa kadar kontrol edip dolu olanları veri_tablosu_default, veri_tablosu_default_A_Z ve veri_tablosu_default_Z_A sayfalarına yazsın istiyorum. Fakat yapamadım. Sizden ricam kopyalama için gerekli kodlara açıklama yazabilir misiniz.


1 tane olay_suz sayfası eklendi..
Olay tablosunda süzüldü.
Süzülen veriler olay_suz sayfasına aktarıldı.
C sütununa göre dolu olan satırlar süzüldü.B sütununa göre ise sıralandı(Olay_suz sayfasında).
Olay_suz sayfasındaki veriler listbox5 te listelendi.
Dosyanız ekte ve linktedir.:cool:

DOSYAYI İNDİR

Kod:
'ListBox5
Sheets("olay_suz").Select
ListBox5.RowSource = ""
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
Range("A2:C" & Rows.Count).ClearContents
Sheets("olay_tablosu").Range("$A$2:$C$" & Sheets("olay_tablosu"). _
Cells(Rows.Count, "C").End(xlUp).Row).AutoFilter Field:=3, Criteria1:=">0"
Sheets("olay_tablosu").Range("A1:C" & Sheets("olay_tablosu"). _
Cells(Rows.Count, "C").End(xlUp).Row).CurrentRegion.Copy
Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
Sheets("olay_tablosu").Range("$A$2:$C$" & Rows.Count).AutoFilter
Range("A3:C" & Rows.Count).Sort Range("B3")
Range("A1").Select
Application.CutCopyMode = False
With UserForm1.ListBox5
.ColumnCount = 3 ' Kaç Sütun Görünecek
.ColumnHeads = True
.ForeColor = vbRed ' Yazı Rengi
.ColumnWidths = "25;60;60"
.RowSource = "olay_suz!A3:C" & [olay_suz!A65536].End(3).Row
End With
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Evren Bey,

Çok teşekkür ederim. İstediğim gibi olmuş. Kodları incelediğimde çok zor olmadığını düşünüyorum ama uygulamada sıkıntı yaşadım. Form açılışta veri_tablosu sayfasını A1 den G sutununa kadar kontrol edip dolu olanları veri_tablosu_default, veri_tablosu_default_A_Z ve veri_tablosu_default_Z_A sayfalarına yazsın istiyorum. Fakat yapamadım. Sizden ricam kopyalama için gerekli kodlara açıklama yazabilir misiniz.
Hangi sütun süzülecek?
 
Üst