DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Option Explicit
Sub Last_Route_Code()
Dim S1 As Worksheet, S2 As Worksheet, S3 As Worksheet
Dim Son_A As Long, Son_B As Long, Son_C As Long, Dizi As Object
Dim X As Long, Liste_A As Variant, Liste_B As Variant, Zaman As Double
Dim Y As Long, Z As Long, Rota As Variant, Veri As Double, Route_Code As String
Zaman = Timer
Set S1 = Sheets("Sheet1")
Set S2 = Sheets("Sheet2")
Set S3 = Sheets("Sheet3")
S1.Range("L3:L" & Rows.Count).ClearContents
Set Dizi = CreateObject("Scripting.Dictionary")
Son_A = S1.Cells(S1.Rows.Count, 2).End(3).Row
Liste_A = S1.Range("B3:L" & Son_A).Value
For X = LBound(Liste_A) To UBound(Liste_A)
If Liste_A(X, 3) <> "" Then
Son_B = S2.Cells(S2.Rows.Count, 2).End(3).Row
For Y = 2 To Son_B
If S2.Cells(Y, 2) <> "" Then
If Liste_A(X, 3) = S2.Cells(Y, 2) Then
Dizi(S2.Cells(Y, 5).Value) = 1
End If
End If
Next
Son_C = S3.Cells(S3.Rows.Count, 3).End(3).Row
Liste_B = S3.Range("C2:D" & Son_C).Value
For Z = 1 To UBound(Liste_B)
For Each Rota In Dizi.Keys
If Liste_B(Z, 1) = Rota Then
If Liste_B(Z, 2) > Veri Then
Veri = Liste_B(Z, 2)
Route_Code = Liste_B(Z, 1)
End If
End If
Next
Next
If Route_Code <> "" Then
Liste_A(X, 11) = Route_Code
Route_Code = ""
End If
Veri = 0
End If
Next
S1.Range("B3").Resize(UBound(Liste_A), 11) = Liste_A
MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
"İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub