• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Comboboxta benzersiz kayıtlar

  • Konbuyu başlatan Konbuyu başlatan hsayar
  • Başlangıç tarihi Başlangıç tarihi
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.
 
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.
 
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
 
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
 
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
 
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
 
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.
 
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
 
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
 
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
 
Geri
Üst