ComboBox içinde sıralama.

Katılım
24 Şubat 2006
Mesajlar
243
Excel Vers. ve Dili
EXCEL 2003
Arkadaşlar benim derdim ComboBox içinde sıralama yapmak.

Dim MyRng As Range
Set MyRng = Range("h2:h" & Sınıf1.ListCount + 1)
MyRng = Sınıf1.List
MyRng.Sort Key1:=Range("h2"), Order1:=xlAscending
Sınıf1.RowSource = MyRng.Address
Set MyRng = Nothing

Şeklinde bi kod yazdığımda sayfa içinde sıralama yapıyor. Tabii böyle olduğunda da bizim veri tabanı alt-üst oluyor. Kod Bankası' nda bulduğum makroda olmuyor.

Yukarıdaki kodu, sayfada değilde ComboBox içinde sıralama yapacak hale dönüştürmek mümkün mü?
 
Son düzenleme:

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
Userformun General kısmına aşağıdaki kodu
Kod:
Private Function Sirala(Liste As Variant)
Dim i As Integer, j As Integer, x As Variant
    For i = LBound(Liste) To UBound(Liste) - 1
        For j = i + 1 To UBound(Liste)
            If StrComp(Liste(i, 0), Liste(j, 0), vbTextCompare) = 1 Then
                x = Liste(j, 0)
                Liste(j, 0) = Liste(i, 0)
                Liste(i, 0) = x
            End If
        Next j
    Next i
    Sirala = Liste
End Function
Initialize olayına aşağıdaki kodu yazınız.
Kod:
ComboBox1.List = Range("h2:h" & Cells(65536, "H").End(xlUp).Row).Value
Liste = ComboBox1.List
ComboBox1.List = Sirala(Liste)
 
Son düzenleme:

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
Sayın Evren_Gizlen, resimdeki hatayı veriyor.
Benim yazdığım değil sizin yazdığınız kodlardan kaynaklanıyor.Sanırım çakışma var.Liste.RowSource kodu sebebi ile olabilir.
Dosyayı yollayınız.:cool:
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Gerçekten kod mükemmel çalışıyor, sıralamayı güzel yapıyor.. Evren bey şöyle bir şeyde yapılabilir mi? satırlar arası boşluk varsa, bunu comboda listelerken, combonun içindeki boşlukları nasıl ortadan kaldırabiliriz. Bu kod, comboyu üstten boşluk bırakıyor.
 

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
Gerçekten kod mükemmel çalışıyor, sıralamayı güzel yapıyor.. Evren bey şöyle bir şeyde yapılabilir mi? satırlar arası boşluk varsa, bunu comboda listelerken, combonun içindeki boşlukları nasıl ortadan kaldırabiliriz. Bu kod, comboyu üstten boşluk bırakıyor.
O zaman boşluk olan satırları listeye almadan dizi içine almak dağa doğru olacaktır.
Aşağıdaki satırı değiştirip dizi tanımlayıp dizi içine almak ondan sonrada listelemek ve diğer kodu çalıştırmak doğru olacaktır.
Kod:
ComboBox1.List = Range("h2:h" & Cells(65536, "H").End(xlUp).Row).Value
 

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
Sayın Evren_Gizlen, resimdeki hatayı veriyor.
Aşağıdaki şeklide kullanınız.:cool:
Userformun general kısmına
Kod:
Private Function Sirala(Liste2 As Variant)
Dim i As Integer, j As Integer, x As Variant
    For i = LBound(Liste2) To UBound(Liste2) - 1
        For j = i + 1 To UBound(Liste2)
            If StrComp(Liste2(i, 0), Liste2(j, 0), vbTextCompare) = 1 Then
                x = Liste2(j, 0)
                Liste2(j, 0) = Liste2(i, 0)
                Liste2(i, 0) = x
            End If
        Next j
    Next i
    Sirala = Liste2
End Function
Initialize olayına aşağıdaki kodu yazınız.

Kod:
ComboBox1.List = Range("h2:h" & Cells(65536, "H").End(xlUp).Row).Value
Liste2 = ComboBox1.List
ComboBox1.List = Sirala(Liste2)
 
Katılım
24 Şubat 2006
Mesajlar
243
Excel Vers. ve Dili
EXCEL 2003
Sayın Evren_Gizlen, haklıymışsınız, bende Liste adında başka bir nesne var oyüzden olmuş, özür diliyorum.

Ayrıca cevap geciktiği için de özür diliyorum. İlçe Milli Eğitim' de işim vardı o yüzden gecikti.

İlginize teşekkürler, beni büyük bir sıkıntıdan kurtardınız.
 
Son düzenleme:

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
Sayın Evren_Gizlen, haklıymışsınız, bende Liste adında başka bir nesne var oyüzden olmuş, özür diliyorum.

Ayrıca cevap geciktiği için de özür diliyorum. İlçe Milli Eğitim' de işim vardı o yüzden gecikti.

İlginize teşekkürler, beni büyük bir sıkıntıdan kurtardınız.
Estafurullah
İyi çalışmalar.:cool:
 
S

Skorpiyon

Misafir
Bu konuda bir alternatif olabilecek bir bilgi de ben vereyim. Her ne kadar Evren Hocamın verdiği bilginin yerini tutmasa da.

Combobox'ta sıralama yapmak için önce excel sayfası üzerinde sıralama yaptırın ve Combobox'a ondan sonra değer aldırın.

Not : Eğer bu sıralama verilerimi bozuyor derseniz, sıralama yapacağınz alanı başka bir sayfaya aktarın ve orda sıralama yaptırdıktan sonra Combobox'a değer aldırın.

Benim kullandığım yöntem de genelde budur.
 
Üst