• DİKKAT

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

4 Combobox yinelenenleri tekrarlamasın

Katılım
3 Temmuz 2009
Mesajlar
42
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba arkadaşlar.. Benim sormak istediğim konu normal filtrelerde nasıl tekrarlama sorunu yoksa comboboxlarda da olmaması için ne yapmalıyım.. ekteki resim dosyasında userformda 1. combo süzülü iken ikinci comboda yinelenen değerler görülmekte.. ben 4 combo için de yinelenen değer olmasın istiyorum ama çıkamadım işin içinden..

ilginize şimdiden teşekkür ediyorum.
 

Ekli dosyalar

Dosyanız ekte.:cool:
Kod:
Private Sub UserForm_Initialize()
    ComboBox1.Column = listele(1)
    ComboBox2.Column = listele(2)
    ComboBox3.Column = listele(3)
    ComboBox4.Column = listele(4)
End Sub
Function listele(sut As Byte)
Dim hcr As Range, i As Long, a As Long
ReDim myarr(1 To 1, 1 To 1)
For i = 2 To Cells(65536, "A").End(xlUp).Row
    If WorksheetFunction.CountIf(Range(Cells(2, sut), _
    Cells(i, sut)), Cells(i, sut).Value) = 1 Then
        a = a + 1
        ReDim Preserve myarr(1 To 1, 1 To a)
        myarr(1, a) = Cells(i, sut).Value
    End If
Next i
listele = myarr
        
        
End Function
 

Ekli dosyalar

ellerine emeğine sağlık kardeşim..

Saolasın.. :) Ama İlk Combo süzüldüğünde yani AA süzüldüğünde ikinci comboda yine değerler yineleniyor..(4 tane 11, 4 tane 22) Buna nasıl birşey yapabiliriz?
 
Son düzenleme:
Hayır gözükmüyor benim yolladığım dosyada gayet güzel çalışıyor.Mükerrer kayıt göstermiyor combolar.Gösteremezde.
 
Sürüm farkından kaynaklanan bir durum olabilir mi acaba? 2007 kullanıcısıyım.. ilk comboda AA süzdüğümde ikinci comboda 4 tane 11 4 tane de 22 görüyorum..
 
Sürüm farkından kaynaklanan bir durum olabilir mi acaba? 2007 kullanıcısıyım.. ilk comboda AA süzdüğümde ikinci comboda 4 tane 11 4 tane de 22 görüyorum..
Olamaz.
O dosyayı Hani mükerer göstern dosyayı siz hele bana bir yollayın,Bakalım ne imiş
 
Comboboxın changed olayına combo2 nin içini boşaltıp yeniden dolduran kodlar yazmışsınız.Ondan kaynaklanıyor.İçindeki additem kodlarını kaldırısanız düzelir.
 
saolasın ustam..
sorun çözülmüştür.
 
Son düzenleme:
Selamlar,

Alternatif olarak ekteki örnek dosyada Collection özelliği kullanılarak ComboBox nesnelerine veriler yüklenmektedir. İncelermisiniz.


Kullanılan kodlar; (UserFormun kod bölümüne uygulayınız.)

Kod:
Option Explicit
 
Private Sub ComboBox1_Change()
    Dim DİZİB As New Collection, HÜCRE As Range, VERİ As Variant
    
    On Error Resume Next
    
    For Each HÜCRE In Range("A2:A" & Range("A65536").End(3).Row)
        If HÜCRE.Value = ComboBox1 Then
        DİZİB.Add HÜCRE.Offset(0, 1).Value, CStr(HÜCRE.Offset(0, 1).Value)
        End If
    Next
    
    On Error GoTo 0
    
    ComboBox2.Clear
    
    For Each VERİ In DİZİB
        ComboBox2.AddItem VERİ
    Next
End Sub
 
Private Sub ComboBox2_Change()
    Dim DİZİC As New Collection, HÜCRE As Range, VERİ As Variant
    
    On Error Resume Next
    
    For Each HÜCRE In Range("A2:A" & Range("A65536").End(3).Row)
        If HÜCRE.Value = ComboBox1 And CStr(HÜCRE.Offset(0, 1).Value) = ComboBox2 Then
        DİZİC.Add HÜCRE.Offset(0, 2).Value, CStr(HÜCRE.Offset(0, 2).Value)
        End If
    Next
    
    On Error GoTo 0
    
    ComboBox3.Clear
    
    For Each VERİ In DİZİC
        ComboBox3.AddItem VERİ
    Next
End Sub
 
Private Sub ComboBox3_Change()
    Dim DİZİD As New Collection, HÜCRE As Range, VERİ As Variant
    
    On Error Resume Next
    
    For Each HÜCRE In Range("A2:A" & Range("A65536").End(3).Row)
        If HÜCRE.Value = ComboBox1 And CStr(HÜCRE.Offset(0, 1).Value) = ComboBox2 And CStr(HÜCRE.Offset(0, 2).Value) = ComboBox3 Then
        DİZİD.Add HÜCRE.Offset(0, 3).Value, CStr(HÜCRE.Offset(0, 3).Value)
        End If
    Next
    
    On Error GoTo 0
    
    ComboBox4.Clear
    
    For Each VERİ In DİZİD
        ComboBox4.AddItem VERİ
    Next
End Sub
 
Private Sub UserForm_Initialize()
    Dim DİZİA As New Collection, HÜCRE As Range, VERİ As Variant
    
    On Error Resume Next
    
    For Each HÜCRE In Range("A2:A" & Range("A65536").End(3).Row)
        DİZİA.Add HÜCRE.Value, CStr(HÜCRE.Value)
    Next
    
    On Error GoTo 0
    
    For Each VERİ In DİZİA
        ComboBox1.AddItem VERİ
    Next
End Sub
 

Ekli dosyalar

alternatif için teşekkür ederim..
birçok çalışmada dizi tanımlama ve geri yükleme kullanıyoruz, emeğinize sağlık..
 
Geri
Üst