Combobox farklı sayfadan benzersiz veri listeleme

Katılım
3 Nisan 2014
Mesajlar
395
Excel Vers. ve Dili
Excel 2019 - Türkçe
Altın Üyelik Bitiş Tarihi
14-04-2021
Merhaba,

Userform'a eklediğim bir combobx'ta benzersiz bir listenin gelmesi için aşağıdaki kodu buldum internetten. Fakat ben verileri GEÇMİŞ adında farklı bir sayfadan çekiyorum,
o sayfaya gitmeden nasıl getirtebilirim?

Yani Userform Talep girişi sayfasında olacak, verileri Geçmiş adlı sayfadan gelecek.

Kod:
Private Sub UserForm_Initialize()
For x = 2 To Sheets("Talep Geçmişi").Cells(65536, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Range("a2:a" & x), Cells(x, 1)) = 1 Then
ComboBox1.AddItem Cells(x, 1).Value
End If
Next
End Sub
 

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
Buyurun.:cool:
Kod:
Private Sub UserForm_Initialize()
Dim sh As Worksheet
Set sh = Sheets("Talep Geçmişi")
For x = 2 To sh.Cells(65536, 1).End(xlUp).Row
If WorksheetFunction.CountIf(sh.Range("a2:a" & x), sh.Cells(x, 1)) = 1 Then
ComboBox1.AddItem sh.Cells(x, 1).Value
End If
Next
End Sub
 
Katılım
3 Nisan 2014
Mesajlar
395
Excel Vers. ve Dili
Excel 2019 - Türkçe
Altın Üyelik Bitiş Tarihi
14-04-2021
Teşekkürler Evren bey
 
Katılım
24 Şubat 2009
Mesajlar
1,077
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Sayın hocam 2 nolu mesajınızdaki kod işime yaradı çok güzel ancak bunu alfabetik ve benzersiz olabilir mi? Teşekkürler.
 

Korhan Ayhan

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

Kullandığım nesnenin hata vermemesi için sisteminizde .NET Frame 3.5 sürümünün yüklü olması gerekiyor. Daha üst versiyonların olması sorunu çözmüyor.

Bu sürüm eğer sizde yoksa linkten indirip kurabilirsiniz.



C++:
Option Explicit

Private Sub UserForm_Initialize()
    Dim S1 As Worksheet, Son As Long, Veri As Variant, X As Long
    
    Set S1 = Sheets("Sayfa1")
    Son = S1.Cells(S1.Rows.Count, "A").End(xlUp).Row
    
    With VBA.CreateObject("System.Collections.ArrayList")
        Veri = S1.Range("A2:A" & Son).Value
        
        For X = LBound(Veri, 1) To UBound(Veri, 1)
            If Veri(X, 1) <> "" Then
                If Not .Contains(Veri(X, 1)) Then .Add Veri(X, 1)
            End If
        Next
        If .Count > 0 Then
            .Sort
            ComboBox1.List = .ToArray
        End If
    End With

    Set S1 = Nothing
End Sub
 
Katılım
24 Şubat 2009
Mesajlar
1,077
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Sayın Hocam ben bunu H sütunu için yaptım ve HARCAMA sayfası için doğrumu acaba;
Dim S1 As Worksheet, Son As Long, Veri As Variant, X As Long

Set S1 = Sheets("HARCAMA")
Son = S1.Cells(S1.Rows.Count, "A").End(xlUp).Row

With VBA.CreateObject("System.Collections.ArrayList")
Veri = S1.Range("H2:H" & Son).Value

For X = LBound(Veri, 8) To UBound(Veri, 8)
If Veri(X, 8) <> "" Then
If Not .Contains(Veri(X, 8)) Then .Add Veri(X, 8)
End If
Next
If .Count > 0 Then
.Sort
ComboBox4.List = .ToArray
End If
End With

Set S1 = Nothing
o değiniz linkten NET Frame 3.5 sürümünüde kurdum
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,258
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Veri, 8 yazan yerleri Veri, 1 olarak düzeltiniz.

Ayrıca son satırı tespit eden bölümde "A" yazan kısmı "H" olarak değiştirebilirsiniz.
 
Katılım
24 Şubat 2009
Mesajlar
1,077
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Teşekkür ederim sayın hocam hayırlı sahurlar. allaha emanet olun.
 
Üst