Try this:-
Sub MG18Jul13
Dim Rng As Range
Dim Dn As Range
Dim Q As Variant
Dim Twn As String
Dim Dt1 As Date
Dim Dt2 As Date
Set Rng = Range(Range("L2"), Range("L" & Rows.Count).End(xlUp))
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For Each Dn In Rng
If Application.CountA(Dn.Resize(, 4)) = 4 Then
Twn = Dn & Dn.Offset(, 1)
Dt1 = Format(Dn(, 3), "dd/mm/yyyy")
Dt2 = Format(Dn(, 4), "dd/mm/yyyy")
If Not .Exists(Twn) Then
.Add Twn, Array(Dn, Dn(, 2), Dt1, Dt2)
Else
Q = .Item(Twn)
If Dt1 < DateValue(Q(2)) Then Q(2) = Dt1
If Dt1 > DateValue(Q(3)) Then Q(3) = Dt2
.Item(Twn) = Q
End If
End If
Next
Sheets("sheet2").Range("A1").Resize(.Count, 4) = Application.Index(.items, Evaluate("row(" & 1 & ":" & .Count & " )"), Array(1, 2, 3, 4))
End With
End Sub
Regards Mick
Bookmarks