@feraz hocam dictionary yerine find komutu da kullanılabilirdi bence)
Combobox Vba Kodları Oluşturmak
(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ı
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?
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.
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 "D", 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
Konuyu Okuyanlar: 2 Ziyaretçi