Public Sub GPE()
Dim Dic As Object, sArr(), tArr(), Tem As String
Dim I As Long, K As Long, R As Long, Rws As Long
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Sheets("App total").Range("G3", Sheets("App total").Range("G3").End(xlDown)).Resize(, 52).Value
R = UBound(sArr)
ReDim tArr(1 To R, 1 To 4)
For I = 1 To R
Tem = sArr(I, 1)
If Not Dic.exists(Tem) Then
K = K + 1
Dic.Item(Tem) = K
tArr(K, 1) = sArr(I, 1)
tArr(K, 2) = sArr(I, 45)
tArr(K, 3) = sArr(I, 15)
tArr(K, 4) = sArr(I, 52)
Else
Rws = Dic.Item(Tem)
If sArr(I, 45) > tArr(Rws, 2) Then
tArr(Rws, 2) = sArr(I, 45)
tArr(Rws, 3) = sArr(I, 15)
tArr(Rws, 4) = sArr(I, 52)
End If
End If
Next I
'-------------------------------------------'
With Sheets("Details")
sArr = .Range("cq2", .Range("cq2").End(xlDown)).Resize(, 3).Value
R = UBound(sArr)
ReDim Arr1(1 To R, 1 To 1)
ReDim Arr2(1 To R, 1 To 1)
For I = 1 To R
Tem = IIf(sArr(I, 3) <> Empty, sArr(I, 3), sArr(I, 1))
If Dic.exists(Tem) Then
Arr1(I, 1) = tArr(Dic.Item(Tem), 3)
Arr2(I, 1) = tArr(Dic.Item(Tem), 4)
Else
Arr1(I, 1) = "Not Created App"
End If
Next I
.Range("fv2").Resize(R) = Arr1
.Range("fy2").Resize(R) = Arr2
End With
Set Dic = Nothing
End Sub