Comboboxta benzersiz kayıtlar

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "ilveilce!b2: D" & Cells(65536, 2).End(xlUp).Row
End Sub
kodlarında b sütununda birden fazla yer alan kayıtlar nasıl sadece birkez gösterilir.
Örneğin adana/adana/adana/adana/adıyaman/adıyaman/adıyaman/adıyaman/adıyaman/adıyaman/afyon/afyon/afyon/afyon/afyon/afyon/afyon
satırları comboboxta
adana/adıyaman/afyon.........
şeklinde devam edecek
yardımlarınız için peşinen teşekkür ederim.
 
Katılım
10 Kasım 2006
Mesajlar
22
Excel Vers. ve Dili
2000 Tr - 2003 Eng
slm

Eğer bilgi düzeneği verdiğin örnekteki gibi ardışık ise ;
-----------------------
Private Sub UserForm_Activate()
tur = WorksheetFunction.CountA(Sheets("Sheet1").Range("A:A"))
ComboBox1.AddItem Range("A1").Value
For x = 2 To tur
If Range("A" & x - 1).Value <> Range("A" & x) Then
ComboBox1.AddItem Range("A" & x).Value
End If
Next
End Sub
------------------------
bu kod işini görecektir. Burada alacağın değerlerin A sütununda ve ilk satırdan başladığı göz önüne alınmıştır.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub UserForm_Initialize()
sonsat = Sheets("ilveilce").Cells(65536, 2).End(xlUp).Row
For X = 2 To sonsat
    If WorksheetFunction.CountIf(Range("b2:b" & X), Cells(X, 2)) = 1 Then
        ComboBox1.AddItem Cells(X, 2).Value
    End If
Next
End Sub
&#231;&#246;zmesine &#231;&#246;zd&#252;mde eksiklerim var
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Yanıt

Alternatif.
Kod:
Private Sub UserForm_Initialize()
For SUTB = 1 To Cells(65536, "B").End(3).Row
If WorksheetFunction.CountIf(Range("B1:B" & SUTB), Range("B" & SUTB)) = 1 Then
ComboBox1.AddItem Cells(SUTB, "b").Value
End If
Next
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam eksi&#287;im &#351;u b s&#252;tunu ilveilce sayfas&#305;nda Cells(65536, "B").End(3).Row sat&#305;rlar&#305;n&#305;n &#246;n&#252;ne sayfaad&#305;n&#305; yazml&#305;y&#305;m ki sayfa2 de iken formu &#231;al&#305;&#351;t&#305;rd&#305;&#287;&#305;mda hata vermesin.
onun yerine kodun ba&#351;&#305;na shets(ilveilce).select yazmkata var ama ben onu yapmak istemiyorum.
sayg&#305;lar&#305;mla
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Yanıt

Kod:
Private Sub UserForm_Initialize()
For SUTB = 1 To Sheets("Sayfa1").Cells(65536, "B").End(3).Row
If WorksheetFunction.CountIf(Sheets("Sayfa1").Range("B1:B" & SUTB), Sheets("Sayfa1").Range("B" & SUTB)) = 1 Then
ComboBox1.AddItem Sheets("Sayfa1").Cells(SUTB, "b").Value
End If
Next
End Sub
 
Katılım
10 Kasım 2006
Mesajlar
22
Excel Vers. ve Dili
2000 Tr - 2003 Eng
Küçük bir not...

yazdığınız kodda

combobox.additem range("B1").value

eklentisini yapınız

eğer ilk ile ikinci satır değeri farklı ise ilk değeri combobox'a ekleyemessiniz.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub UserForm_Initialize()
Dim sfMB As Worksheet: Set sfMB = Sheets("ilveilce")
sonsat = sfMB.Cells(65536, "b").End(xlUp).Row
    For SUTB = 1 To sonsat
        If WorksheetFunction.CountIf(sfMB.Range("B1:B" & SUTB), sfMB.Range("B" & SUTB)) = 1 Then
            ComboBox1.AddItem sfMB.Cells(SUTB, "b").Value
        End If
    Next
End Sub
yard&#305;mlar&#305;n&#305;zdan &#246;t&#252;r&#252; te&#351;ekk&#252;r ederim
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Alternatif olarak a&#351;a&#287;&#305;daki kodlar&#305; deneyiniz.

Kod:
Private Sub UserForm_Initialize()
Dim a, i
Set s1 = Sheets("VER&#304;")
'*******************************************
a = s1.Range("b2:b" & s1.[b65536].End(3).Row).Value
With CreateObject("Scripting.Dictionary")
    .CompareMode = vbTextCompare
    For i = 1 To UBound(a, 1)
        If Not IsEmpty(a(i, 1)) And Not .exists(a(i, 1)) Then .Add a(i, 1), Nothing
    Next
ComboBox1.Clear
ComboBox1.List = .keys
ComboBox1.ListIndex = 0
End With
Set s1 = Nothing
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam dosyamı ekte gönderiyorum sizin yönteminiz daha hızlıya benziyor
combobox1 de il seçilince combobox2 de ona bağlı ilçeler
combobox2 de ilçe seçilince combobox3 de ona bağlı mh/köy veya bucaklar listelenecek
ben sizin yönteminizle combobox1 de illeri getirdim ama devamını yapamadım ilgilenirseniz sevinirim.
saygılarımla

http://rapidshare.com/files/81019351/POSTAKOD2.rar.html
 
Üst