Combobox a benzersiz ve alfabetik veri aldırma

Katılım
29 Kasım 2007
Mesajlar
82
Excel Vers. ve Dili
2010 Türkçe İngilizce
Merhaba,
73 bine yaklaşan ve artarak devam eden bir datadan Combobox'a Sayfa1 B:B sütunundan verileri aldırmak istiyorum, ama benzersiz kayıtları ve alfabetik sıralama yaparak yaptırılabilirmi?
aynı kayıtlardan sadece birinin adı gözüksün ve sıralı olsun gibi.

Teşekkürler
 

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
Verilerinizin yedeğini almayı unutmayın.
Buyurun.:cool:
Kod:
Dim z As Object, i As Long, liste(), sonsat As Long
ComboBox1.Clear
Application.ScreenUpdating = False
sonsat = Cells(Rows.Count, "B").End(xlUp).Row
Range("B1:B" & sonsat).Sort Range("B1")
liste = Range("B1:B" & sonsat).Value
Set z = CreateObject("scripting.dictionary")
For i = 1 To UBound(liste)
    If Not z.exists(liste(i, 1)) Then
        z.Add liste(i, 1), Nothing
    End If
Next i
Erase liste
ComboBox1.List = Application.Transpose(z.keys)
Set z = Nothing
Application.ScreenUpdating = True
 
Katılım
29 Kasım 2007
Mesajlar
82
Excel Vers. ve Dili
2010 Türkçe İngilizce
Öncelikle teşekkürler yalnız nedense hata alıyorum
Compile Error
İnvalid Outside Procedure diyor
2.satırdaki ComboBox1 i seçiyor, orayı devre dışı bırakınca bu sefer aynı hata ile bir alt satırdaki False yazan yeri seçiyor
excel versiyon farklılıklarından kaynaklı olabilirmi yoksa sorun başka bir durummudur?
 

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
Öncelikle teşekkürler yalnız nedense hata alıyorum
Compile Error
İnvalid Outside Procedure diyor
2.satırdaki ComboBox1 i seçiyor, orayı devre dışı bırakınca bu sefer aynı hata ile bir alt satırdaki False yazan yeri seçiyor
excel versiyon farklılıklarından kaynaklı olabilirmi yoksa sorun başka bir durummudur?
Dosyanızdan az veri kalacak gibi verilerinizi silip buraya link verin bakayım.: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
Kodları prosedür içine yazmamışsınız.
Kodları oradan silip , userform_initialize olayı içine yazmalısınız.
 
Katılım
29 Kasım 2007
Mesajlar
82
Excel Vers. ve Dili
2010 Türkçe İngilizce
Teşekkürler bende diyorum bir eksiklik var bu işte :) hem acemilik hem yorgunluk anca
Çok teşekkür ettim.
 
Katılım
29 Kasım 2007
Mesajlar
82
Excel Vers. ve Dili
2010 Türkçe İngilizce
Tekrar selam farketmemişim ama bu şekilde B:B sütunu alfabetik sıralamaya uğruyor, yani verilerin yerleri değişiyor bu veriler birden çok rakamlarla ilişki halinde, yani liste sağına doğruda devam eden bir liste, bu sıralama işlemini sayfa içeriğine dokunmadan sadece combobox ta yaptıramazmıyız?
 

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
Tekrar selam farketmemişim ama bu şekilde B:B sütunu alfabetik sıralamaya uğruyor, yani verilerin yerleri değişiyor bu veriler birden çok rakamlarla ilişki halinde, yani liste sağına doğruda devam eden bir liste, bu sıralama işlemini sayfa içeriğine dokunmadan sadece combobox ta yaptıramazmıyız?
Hızda biraz yavaşlama olabilir.
Kodlarınız aşağıdadır.:cool:
Kod:
Dim z As Object, i As Long, liste(), sonsat As Long
Dim x As Variant, j As Long
ComboBox1.Clear
sonsat = Cells(Rows.Count, "B").End(xlUp).Row
liste = Range("B1:B" & sonsat).Value
For i = LBound(liste) To UBound(liste) - 1
    For j = i + 1 To UBound(liste)
        If StrComp(liste(i, 1), liste(j, 1), vbTextCompare) = 1 Then
            x = liste(j, 1)
            liste(j, 1) = liste(i, 1)
            liste(i, 1) = x
        End If
    Next j
Next i
i = 0
Set z = CreateObject("scripting.dictionary")
For i = 1 To UBound(liste)
    If Not z.exists(liste(i, 1)) Then
        z.Add liste(i, 1), Nothing
    End If
Next i
Erase liste
ComboBox1.List = Application.Transpose(z.keys)
Set z = Nothing
 
Katılım
29 Kasım 2007
Mesajlar
82
Excel Vers. ve Dili
2010 Türkçe İngilizce
evet böylede hiç kullanışlı olmuyor çok ağırlaştı, ben en iyisi benzersiz kayıtları bir yere toplayım ordan listeleme yaptırayım, herhalde en kolay ve hızlı yöntem böyle olacak.Hem diğer verileri bozmamış olurum.
 

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
evet böylede hiç kullanışlı olmuyor çok ağırlaştı, ben en iyisi benzersiz kayıtları bir yere toplayım ordan listeleme yaptırayım, herhalde en kolay ve hızlı yöntem böyle olacak.Hem diğer verileri bozmamış olurum.
Aslında diğer verilerle birlikte B sütununu sıralayabiliriz.Veriler hangi sütun aralığında siz onu söyleyin,yapayım.:cool:
 
Katılım
29 Kasım 2007
Mesajlar
82
Excel Vers. ve Dili
2010 Türkçe İngilizce
Aslında diğer verilerle birlikte B sütununu sıralayabiliriz.Veriler hangi sütun aralığında siz onu söyleyin,yapayım.:cool:
Sağol, ama orayı çokta bozmak istemiyorum tarih sırasına göre ve düzenli bir görünümü var ben diğer türlü deneyim takılırsam destek isterim yardımın için teşekkür ederim.
 

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
Sağol, ama orayı çokta bozmak istemiyorum tarih sırasına göre ve düzenli bir görünümü var ben diğer türlü deneyim takılırsam destek isterim yardımın için teşekkür ederim.
Tamam.
Kolay gelsin.:cool:
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,263
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ekteki dosyayı inceleyiniz.

Link
 

Ekli dosyalar

Üst