Hi, Try this , Post Code as before, Results in column "E",
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Rng As Range, Dn As Range, n As Long, Twn As String, Sunq
Dim num As String, Q, U As Long
If Target.Address(0, 0) = "A1" Then
Set Rng = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp))
ReDim ray(1 To Rng.Count)
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For Each Dn In Rng
Twn = Dn & "," & Dn.Next
If Not .Exists(Twn) Then
n = n + 1
.Add Twn, Nothing
End If
Next Dn
Sunq = .keys
n = 0
End With
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For U = 0 To UBound(Sunq)
If Not .Exists(Split(Sunq(U), ",")(0)) Then
n = n + 1
num = Split(Sunq(U), ",")(0)
.Add num, Array(n, 1)
ray(n) = num & " " & 1
Else
Q = .Item(num)
Q(1) = Q(1) + 1
ray(Q(0)) = num & " " & Q(1)
.Item(num) = Q
End If
Next U
End With
With Range("E1")
.Value = "Product - (RepairDate)"
.Offset(1).Resize(n) = Application.Transpose(ray)
.Columns.AutoFit
End With
End If
End Sub
Regards Mick
Bookmarks