AccessTr.neT
Combobox Vba Kodları Oluşturmak - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html)
+--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Combobox Vba Kodları Oluşturmak (/konu-combobox-vba-kodlari-olusturmak.html)

Sayfalar: 1 2 3


RE: Combobox Vba Kodları Oluşturmak - berduş - 29/01/2021

@feraz hocam dictionary yerine find komutu da kullanılabilirdi bence)


RE: Combobox Vba Kodları Oluşturmak - feraz - 29/01/2021

(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.


RE: Combobox Vba Kodları Oluşturmak - berduş - 29/01/2021

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?


RE: Combobox Vba Kodları Oluşturmak - feraz - 29/01/2021

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



RE: Combobox Vba Kodları Oluşturmak - berduş - 29/01/2021

Teşekkürler @feraz hocam)))


RE: Combobox Vba Kodları Oluşturmak - feraz - 29/01/2021

(29/01/2021, 23:34)berduş yazdı: Teşekkürler @feraz hocam)))
Biz size teşekkür ederiz abey Img-grin