Excel VBA ListBox Tekrarsız Verileri Sırala Al

UserForm ve üzerine eklenecek nesneler ile ilgili bilgileri bu alanda bulabilirsiniz.

Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#1)  Tarkan VURAL » 18 Eyl 2008 00:03

Kod: Tümünü seç
Sub Listele()
Dim Hucreler As Range, Hucre As Range, Evn As New Collection
Dim i As Integer, j As Integer, Deger1, Deger2, Nesne
   
    Set Hucreler = Range("A1:A105")
    On Error Resume Next
        For Each Hucre In Hucreler
            Evn.Add Hucre.Value, CStr(Hucre.Value)
        Next Hucre
    On Error GoTo 0
        With UserForm1
            .Label1.Caption = "Toplam : " & Hucreler.Count
            .Label2.Caption = "Benzersiz : " & Evn.Count
        End With
   
    For i = 1 To Evn.Count - 1
        For j = i + 1 To Evn.Count
            If Evn(i) > Evn(j) Then
                Deger1 = Evn(i)
                    Deger2 = Evn(j)
                        Evn.Add Deger1, before:=j
                            Evn.Add Deger2, before:=i
                                Evn.Remove i + 1
                                    Evn.Remove j + 1
            End If
        Next j
    Next i
   
    For Each Nesne In Evn
        UserForm1.ListBox1.AddItem Nesne
    Next Nesne
       
        UserForm1.Show
End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ?
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 18:27
Konum: @tarkanvural73
Meslek: LUU, Database Expert, Senior Software Specialist, Developer
Yaş: 47
İleti: 27385
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#2)  Erkan Akayay » 18 Eyl 2008 00:42

Alternatif olarak UserForm 'daki commandbutton koduna
Kod: Tümünü seç
Private Sub CommandButton1_Click()
Dim Gecici1, Gecici2, Gecici3
For Say = 1 To Range("A65536").End(3).Row
    If WorksheetFunction.CountIf(Range("A1:A" & Say), Range("A" & Say)) = 1 Then
        ListBox1.AddItem Range("A" & Say)
    End If
Next
For Gecici1 = 0 To ListBox1.ListCount - 1
    For Gecici2 = Gecici1 To ListBox1.ListCount - 1
        If ListBox1.List(Gecici2) < ListBox1.List(Gecici1) Then
            Gecici3 = ListBox1.List(Gecici1)
            ListBox1.List(Gecici1) = ListBox1.List(Gecici2)
            ListBox1.List(Gecici2) = Gecici3
        End If
    Next
Next
End Sub
Sorularınızı düzgün bir Türkçe ile, detay vererek ve örnek dosyayla destekleyerek sorunuz.
Örnek dosyalarınızda Application.Visible veya hide gibi sayfa gizlemelerini iptal ediniz.
Kullanıcı avatarı
Erkan Akayay
Site Dostu
 
Kayıt: 20 Ağu 2008 11:59
Konum: YALOVA
Meslek: Bilgi İşlem
Yaş: 50
İleti: 4134
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL

Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#3)  Erhan Yavuz » 18 Eyl 2008 12:13

Her ikinize de [TESEKKÜR]
☾✭ Türkçemizi tam ve doğru kullanmaktan korkmayalım..
Teşekkür etmek Erdemdir. ECYavuz


OSMANLI OYUNU (1402-1566)
http://www.excelvba.net/viewtopic.php?f=41&t=9984

EXCEL-VBA KOD BANKASI PRO.7.0
http://www.excelvba.net/viewtopic.php?f=38&t=3304
Resim
Kullanıcı avatarı
Erhan Yavuz
Site Forum Yöneticisi
 
Adı Soyadı:Erhan Yavuz
Kayıt: 15 Haz 2008 00:13
Konum: Etiler / İstanbul
Meslek: Emekli Sb.
Yaş: 61
İleti: 5695
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul / Etiler

Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#4)  Hakan Behcan » 18 Eyl 2008 12:37

Bir tane de Ado ile ekleyelim.

Modüle AdoDizi Fonksiyonunu ve AdoIle Prosedürünü ekliyoruz. Preference den de Acrivex Object Library işaretliyoruz.


AdoIle Prosedürümüz
Kod: Tümünü seç
Sub AdoIle()
Dim BagXLS$, Sorgu$, Dizi As Variant
BagXLS = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & "Extended Properties=""Excel 8.0;HDR=No"""
Sorgu = "Select F1 from [Sayfa1$] Group By F1"
If AdoDIZI(Dizi, Sorgu, BagXLS) Then
    UserForm1.ListBox1.Column = Dizi
    UserForm1.Label2.Caption = "Benzersiz:" & UserForm1.ListBox1.ListCount
    AdoDIZI Dizi, "Select Count(F1) From [Sayfa1$]", BagXLS
    UserForm1.Label1.Caption = "Toplam :" & Dizi(0, 0)
    UserForm1.Show
End If
End Sub

AdoDizi Fonksyionumuz.
Kod: Tümünü seç
Private Function AdoDIZI(ByRef Dizi As Variant, ByVal Sorgu As String, ByVal BagMetin As String) As Boolean
Set KS = New ADODB.Recordset: Set Bagm = New ADODB.Connection
Bagm.Open BagMetin
Set KS = Bagm.Execute(Sorgu)
On Error GoTo err
If Not KS.EOF Then
    Dizi = KS.GetRows
    AdoDIZI = True
Else
    Dizi = Empty
    AdoDIZI = False
End If
err:
Bagm.Close
    If err Then
        MsgBox "Bir Problem Oluştu! " & vbNewLine & "Hata:" & err.Description & vbNewLine & "Sorgunuz:" & Sorgu
        Debug.Print err.Description & vbNewLine & Sorgu
    End If
Set KS = Nothing: Set Bagm = Nothing
End Function

Gördüğünüz üzere Foksyionda hiç bir değişiklik yapmıyorum, aynen diğer örneklerdeki gibi.

Bir ilave
Kayıt sayılarınız yükseldiğinde ( 5 bin üzeri ), listbox.additem çekilmez bir hal alabilir.
Kullanıcı avatarı
Hakan Behcan
Yönetim Kurulu
 
Adı Soyadı:Hakan BEHCAN
Kayıt: 15 Haz 2008 01:31
Konum: Çerkezköy - Tekirdağ
Meslek: Belli bir meslek yoktur.
Yaş: 50
İleti: 1354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Çerkezköy

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#5)  Tarkan VURAL » 18 Eyl 2008 12:45

Örnek güzel [TESEKKÜR]

Peki "Select F1 from [Sayfa1$] Group By F1" yerine "Select Distinct(F1) from [Sayfa1$]" deseydik olmayacak mıydı ?
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ?
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 18:27
Konum: @tarkanvural73
Meslek: LUU, Database Expert, Senior Software Specialist, Developer
Yaş: 47
İleti: 27385
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#6)  Hakan Behcan » 18 Eyl 2008 13:35

Olur tabiki. Ancak zaten Distinct kullandığımız için ayrıca Group By kullanmaya gerek olmaz.

"Select F1 from [Sayfa1$] Group By F1"
yerine
"Select Distinct(F1) from [Sayfa1$] "
şeklinde kullanabiliriz.

Bu komut ( Distinct ) bu örnek için biçilmiş kaftan oldu. [TESEKKÜR]
Kullanıcı avatarı
Hakan Behcan
Yönetim Kurulu
 
Adı Soyadı:Hakan BEHCAN
Kayıt: 15 Haz 2008 01:31
Konum: Çerkezköy - Tekirdağ
Meslek: Belli bir meslek yoktur.
Yaş: 50
İleti: 1354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Çerkezköy

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#7)  medyum74 » 04 Mar 2009 04:48

Sy Tarkan VURAL

Yapmış olduğunuz çalışma çok güzel ellerinize sağlık. İşime çok yaradı.Yaptığınız bu çalışmaya listelemeyi yaparken alfabetik olarak sıralama yaptırabilirmiyiz.

Saygılarımla
Kullanıcı avatarı
medyum74
Yeni Başlamış
 
Adı Soyadı:ali öztürk
Kayıt: 01 Arl 2008 20:36
Meslek: kamu kurumu
Yaş: 45
İleti: 20
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Trabzon/Merkez

Cevap: Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#8)  Tarkan VURAL » 22 May 2009 15:16

Alican bey merhaba,
Örnek çalışma zaten alfabetik sıralı veri getiriyor. [evet]
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ?
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 18:27
Konum: @tarkanvural73
Meslek: LUU, Database Expert, Senior Software Specialist, Developer
Yaş: 47
İleti: 27385
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#9)  alican60 » 24 Haz 2014 18:34

Efendim
Kullanıcı avatarı
alican60
Siteye Alışmış
 
Adı Soyadı:ali can
Kayıt: 14 Ağu 2011 11:18
Konum: Tokat
Meslek: İnşaat Teknikeri
Yaş: 40
İleti: 393
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Eskişehir

Cevap: Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#10)  truhi » 26 May 2020 12:22

Tarkan VURAL yazdı:
Kod: Tümünü seç
Sub Listele()
Dim Hucreler As Range, Hucre As Range, Evn As New Collection
Dim i As Integer, j As Integer, Deger1, Deger2, Nesne
   
    Set Hucreler = Range("A1:A105")
    On Error Resume Next
        For Each Hucre In Hucreler
            Evn.Add Hucre.Value, CStr(Hucre.Value)
        Next Hucre
    On Error GoTo 0
        With UserForm1
            .Label1.Caption = "Toplam : " & Hucreler.Count
            .Label2.Caption = "Benzersiz : " & Evn.Count
        End With
   
    For i = 1 To Evn.Count - 1
        For j = i + 1 To Evn.Count
            If Evn(i) > Evn(j) Then
                Deger1 = Evn(i)
                    Deger2 = Evn(j)
                        Evn.Add Deger1, before:=j
                            Evn.Add Deger2, before:=i
                                Evn.Remove i + 1
                                    Evn.Remove j + 1
            End If
        Next j
    Next i
   
    For Each Nesne In Evn
        UserForm1.ListBox1.AddItem Nesne
    Next Nesne
       
        UserForm1.Show
End Sub


Merhaba,
öncelikle iyi bayramlar

Burada benzersiz kayıtları ListBox' a alırken tek sütuna göre işlem yapmaktadır.

burada 3 sütunda ( A, B, C) veriler olması durumunda; 3 sütundaki verileri birlikte değerlendirerek, satırdaki benzersiz olanları yine 3 sütun olarak ListBox' a nasıl getirebiliriz?

Örnek:
Belgium X Y
Belgium X Z
Belgium Y T

gibi satırdaki benzersiz kayıtları ListBox' a alacak.

ilginize şimdiden teşekkürler,
Kullanıcı avatarı
truhi
 
Adı Soyadı:tamer ruhioğlu
Kayıt: 15 Ekm 2009 15:46
İleti: 6
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara

Cevap: Excel VBA ListBox Tekrarsız Verileri Sırala Al

İleti#11)  Tarkan VURAL » 26 May 2020 23:13

Merhaba,
Örnek var mı ?
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ?
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 18:27
Konum: @tarkanvural73
Meslek: LUU, Database Expert, Senior Software Specialist, Developer
Yaş: 47
İleti: 27385
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü


Forum UserForm ve Diğer Nesneler

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe