• DİKKAT

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

Forma birden fazla combobox ilavesi

Katılım
10 Kasım 2006
Mesajlar
1,288
Excel Vers. ve Dili
Excel-2016
İyi Akşamlar Arkadaşlar..! Ekteki örnekte Evren bey'in bir çalışmasını uyarlıyorum, Ancak birden fazla combobox uyarlarken hata alıyorum, sütun verilerini tekrarsız alarak süzme yapabilecek combobox ilavesi nasıl nasıl yaparız..
 

Ekli dosyalar

Dosyanız ektedir.:cool:
Kod:
Private Sub suz59(ByVal sut As Integer, cmb As Object)
Dim i As Long, sat As Long, sh As Worksheet
Set sh = Sheets("Sayfa2")
sat = sh.Cells(Rows.Count, sut).End(xlUp).Row
cmb.Clear
For i = 2 To sat
    If WorksheetFunction.CountIf(sh.Range(sh.Cells(2, sut), sh.Cells(i, sut)), sh.Cells(i, sut)) = 1 Then
        cmb.AddItem sh.Cells(i, sut).Value
    End If
Next i
End Sub
 

Ekli dosyalar

Hocam, teşekkürler, elinize sağlık..
 
Son düzenleme:
Evren hocam..! Ellerinize sağlık çok güzel olmuş, lakin birde combo'dan seçilen veriyi listview satırlarına bırakmıyor.. Ben onu da halledememiştim. (sadece combobox1 istediğim gibi..(sizin önceden yaptığınız)
Dosyanız ektedir.:cool:
Kod:
Private Sub lvsuz(ByVal sut As Integer, ByVal cmb As Object)
Dim sat As Long, i As Long, sh As Worksheet, k As Range, s As Long, adr As String
Dim deg As String
If cmb.Value = "" Then
    deg = "*"
    Else
    deg = cmb.Value
End If
ListView1.ListItems.Clear
'ListView1.ColumnHeaders(1).Width = 100
With Sheets("Sayfa2")
    sat = .Cells(65536, "A").End(xlUp).Row
    If sat < 2 Then Exit Sub
    Set k = .Range(.Cells(2, sut), .Cells(sat, sut)).Find(deg, , xlValues, xlWhole)
    If Not k Is Nothing Then
        adr = k.Address
        Do
            say = say + 1
            
            ListView1.ListItems.Add , , .Cells(k.Row, "A").Value
            ListView1.ListItems(say).SubItems(1) = .Cells(k.Row, "B").Value
            ListView1.ListItems(say).SubItems(2) = .Cells(k.Row, "C").Value
            ListView1.ListItems(say).SubItems(3) = .Cells(k.Row, "D").Value
            ListView1.ListItems(say).SubItems(4) = .Cells(k.Row, "E").Value
            ListView1.ListItems(say).SubItems(5) = .Cells(k.Row, "F").Value
            ListView1.ListItems(say).SubItems(6) = .Cells(k.Row, "G").Value
            ListView1.ListItems(say).SubItems(7) = .Cells(k.Row, "H").Value
            ListView1.ListItems(say).SubItems(8) = .Cells(k.Row, "I").Value
            ListView1.ListItems(say).SubItems(9) = .Cells(k.Row, "J").Value
            ListView1.ListItems(say).SubItems(10) = .Cells(k.Row, "K").Value
            ListView1.ListItems(say).SubItems(11) = .Cells(k.Row, "L").Value
            'ListView1.ListItems(say).SubItems(12) = k.Offset(0, 11).Value
                    
            Set k = .Range(.Cells(2, sut), .Cells(sat, sut)).FindNext(k)
        Loop While Not k Is Nothing And k.Address <> adr
    End If
  End With
End Sub
 

Ekli dosyalar

Hocam tamam.. Ben de son anda işin farkına vardım, sizi tekrar rahatsız etmemek için istek mesajını sildim, fakat benden önce cevapladınız.. Evren hocam eksik olmayın, sağlık ve afiyet dilerim..

Fakat yinde de benim düzenleyeceğimden, elbet ki daha kusursuz olduğu için emeğiniz yerini buldu..
 
Hocam tamam.. Ben de son anda işin farkına vardım, sizi tekrar rahatsız etmemek için istek mesajını sildim, fakat benden önce cevapladınız.. Evren hocam eksik olmayın, sağlık ve afiyet dilerim..
Rica ederim.
Bilmukabele.:cool:
 
Saygıdeğer Evren hocam..! Yüzümü kızartarak da olsa hoş görünüze binaen, konu ile ilintili olduğu için, bulunduğum yerde tartışma konusu olan bir hususu sormam gerekiyor.. Şöyleki;
Birden fazla sütunda (5 sütun) değişik satırlarda bulunan aynı veriyi, combobox6 ile seçmek suretiyle listview'de aynı anda gösterebilirmiyiz..
Olacağını zannetmediğime rağmen sordum ki başka yöntemler araştırayım.. Konuyu daha iyi anlaştırabilmem için dosya üzerinde gösterdim..
 

Ekli dosyalar

Saygıdeğer Evren hocam..! Yüzümü kızartarak da olsa hoş görünüze binaen, konu ile ilintili olduğu için, bulunduğum yerde tartışma konusu olan bir hususu sormam gerekiyor.. Şöyleki;
Birden fazla sütunda (5 sütun) değişik satırlarda bulunan aynı veriyi, combobox6 ile seçmek suretiyle listview'de aynı anda gösterebilirmiyiz..
Olacağını zannetmediğime rağmen sordum ki başka yöntemler araştırayım.. Konuyu daha iyi anlaştırabilmem için dosya üzerinde gösterdim..
Dosyanız ektedir.:cool:
Kod:
Private Sub cmb6_list()
Dim sat As Long, deg As Range, sh As Worksheet, z As Object
Set sh = Sheets("Sayfa2")
sat = sh.Cells(Rows.Count, "A").End(xlUp).Row
ComboBox6.Clear
Set z = CreateObject("Scripting.Dictionary")
For Each deg In sh.Range("F2:J" & sat)
    If Not z.exists(deg.Value) Then
        z.Add deg.Value, Nothing
    End If
Next
ComboBox6.List = Application.Transpose(Array(z.keys))
End Sub
 

Ekli dosyalar

Evren hocam..! Tek bir şey söylüyorum.. ALLAH nazar ettirmesin.. Bana hayal olan bir şeydi ve büyük bir yükten kurtulduk.. Tekrar teşekkürler ve yolun açık olsun..
 
Evren hocam..! Tek bir şey söylüyorum.. ALLAH nazar ettirmesin.. Bana hayal olan bir şeydi, ve büyük bir yükten kurtulduk.. Tekrar teşekkürler ve yolun açık olsun..
İyi çalışmalar.
 
Hocam..! Yukarıdaki dün yapmış olduğumuz listview örneğinde 1.satır en son satır olarak duruyor ve bir türlü de düzeltemedim..
 
Hocam..! Yukarıdaki dün yapmış olduğumuz listview örneğinde 1.satır en son satır olarak duruyor ve bir türlü de düzeltemedim..
Terciğlerin hepsi seçildiğinde bir gariplik oluyor.şimdilik eklediğim dosyayı deneyiniz.:cool:
 

Ekli dosyalar

Hocam her şey için tekrar tekrar teşekkürler.. Eğer sıkıntı vermemiş isem uğraşıp durduğum son bir pürüz kaldı. Malüm ki bizim uğraşmamızla bu olmayacak.. Aşağıdaki kodu kullanırken, buna bir "If .." şartı eklemem lazım geldi..
Private Sub ListView1_DblClick()
If (ActiveCell.Column >= 8 And ActiveCell.Column <= 10) And (ActiveCell.Row >= 2 And ActiveCell.Row <= 2000) Then
ActiveCell.Value = ListView1.SelectedItem.SubItems(1)
End If
Unload Me
End Sub
Listview satırına çift tıklayınca 1.sütuna ait veriyi aktif hücreye yapıştırıyor.
Ancak userform showmodal pozisyonunda iken 1.ve 2.sayfalar arası git gel yapıyorum. Yanlışlıkla 2.Sayfaya yapıştırılmaması için bir sınırlama getirebilirmiyiz. Yani yukarıdaki kod sadece 1.sayfanın belirlenen sütunlarında çalışacak.
 
Kodun en başına alttaki kodu yazınız.:cool:
Kod:
sheets("Sayfa1").select
 
Hocam, onu denedim de, fakat Sayfa1'e gittiğinde, o sayfada önceden neresi seçili ise oraya veriyi yapıştırıyor, yani kontolün dışında gerçekleşiyor.
Halbuki ben 2.sayfadan listview'e aldığım bilgilerin satırını belirledikten sonra, 1.sayfaya gidip önce hücresini seçtikten sonra listview'e çift tıklayıp yapıştırıyorum. 1.Sayfaya gittikten sonra Evet-Hayır mesajı koyabilirsek belki olabilir..
Gerçi hocam bu işin ayrıntısı, olmasa da olur, biraz daha dikkat ederiz. Size de yeterince zahmet vermek istemiyorum..
 
Burada bir tasarım hatası var sanırım.
Onu iyice düşünüp ona göre kod yazmak lazım.
Bunuda sizin yapmanız lazım.:cool:
 
Evet doğrudur.. Teşekkür ederim hocam, ve iyi akşamlar dileğiyle..
 
Geri
Üst