19/10/2020, 12:38
feraz
Diğer açtığınız konuyu buraya taşıdım örnek dosyayı.10-Ekim adındaki dosya soru dosyası.
Diğer konu mükerrer olduğu için silinmiştir.
E1 sayfasında E1 den itibaren girilen verilere göre arama yapılıp veriler gelir.
Çözümlerde eklerde.
Buda dictionary yöntemi ile.
Diğer konu mükerrer olduğu için silinmiştir.
E1 sayfasında E1 den itibaren girilen verilere göre arama yapılıp veriler gelir.
Çözümlerde eklerde.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bul As Range
With ThisWorkbook.Sheets("T1")
If Target.Column = 5 And Target.Row >= 3 Then
If Target.Cells.Count = 1 Then
Set bul = .Range("E:E").Find(Target.Value, , , 1)
Target.Offset(, 1).Value = Empty
If Not bul Is Nothing Then Target.Offset(, 1).Value = bul.Offset(, 1).Value
End If
End If
End With
Set bul = Nothing
End Sub
Buda dictionary yöntemi ile.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dict As Object, veri(), i As Long
Set dict = CreateObject("Scripting.dictionary")
dict.comparemode = 1 '1 kücük büyük harf icin
With ThisWorkbook.Sheets("T1")
veri = .Range("E1:F" & .Range("E" & Rows.Count).End(3).Row).Value
If Target.Column = 5 And Target.Row >= 3 Then
If Target.Cells.Count = 1 Then
For i = LBound(veri) To UBound(veri)
If Not dict.exists(veri(i, 1)) Then dict.Add veri(i, 1), veri(i, 2)
Next
Target.Offset(0, 1).Value = dict(Target.Value)
End If
End If
End With
Set dict = Nothing: Erase veri
End Sub