AccessTr.neT

Tam Versiyon: Combobox Vba Kodları Oluşturmak
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3
@feraz hocam dictionary yerine find komutu da kullanılabilirdi bence)
(29/01/2021, 22:50)berduş yazdı: [ -> ]@feraz hocam dictionary yerine find komutu da kullanılabilirdi bence)
Ben dictionaryi daha çok seviyorum abey çünkü hızlı Img-grin
Find yerine findnext kullanılırdı do while ile abey.
ben kast ettiğim g sütunundaki tesis adını getirmekle ilgiliydi
h sütununda tek değer var h sütununda find ile o hücrenin hangi satırda odluğunu bulunca bir önceki sütundan tesis adını alabiliriz döngünün gerisi için o yeterlidir diye düşünüyorum. comboboxa gizli sütun eklemeden find ile o değerin satırı bulunup g den alınabilir o anlamda kullandım

ama fazladan bir sütun eklemenin bir etkisi olur mu işleme, yavaşlatır mı yani?
Sizimi kıracağız Halil hocam yapmışken Find ve Findnext ilede yapalım.
Tabii sizin kod daha kullanışlı gibi.

Private Sub ComboBox1_Change()
    Dim bul As Range, adres As String, aranan As String

    Me.ComboBox3.Clear: Me.ComboBox4.Clear
    With Sayfa3
        Set bul = .Range("H:H").Find(Me.ComboBox1.Value, , xlValues, 1)
        If Not bul Is Nothing Then aranan = bul.Offset(0, -1).Value
        getir "DLol", Me.ComboBox3, .Name, aranan
        getir "A:A", Me.ComboBox4, .Name, aranan
           
    End With
    Set bul = Nothing
End Sub

Sub getir(alan As String, cbo As MSForms.ComboBox, sayfa As String, aranan As String)
    If aranan = "" Then Exit Sub
    With ThisWorkbook.Sheets(sayfa)
        Set bul = .Range(alan).Find(aranan, , xlValues, 1)
        If Not bul Is Nothing Then
            adres = bul.Address
            Do
                cbo.AddItem bul.Offset(0, 1).Value
                Set bul = .Range(alan).FindNext(bul)
            Loop While Not bul Is Nothing And adres <> bul.Address
        End If
    End With
End Sub

Private Sub UserForm_Initialize()
    sonstr = Sayfa3.Cells(Sayfa3.Rows.Count, "h").End(xlUp).Row
    Me.ComboBox1.List = Sayfa3.Range("h2:h" & sonstr).Value
End Sub
Teşekkürler @feraz hocam)))
(29/01/2021, 23:34)berduş yazdı: [ -> ]Teşekkürler @feraz hocam)))
Biz size teşekkür ederiz abey Img-grin
Sayfalar: 1 2 3