Sub MG13Nov00
Dim Rng As Range, Dn As Range, n As Long, Ray As Variant, Dic As Object
Dim K As Variant, c As Long, Rw As Long, Ac As Integer
Ray = Sheets("Data Entry Sheet").Range("A2").CurrentRegion
ReDim nray(1 To UBound(Ray, 1) * UBound(Ray, 2), 1 To 6)
nray(1, 1) = "Name": nray(1, 2) = "ID": nray(1, 3) = "Quantity": nray(1, 4) = "Item": nray(1, 5) = "Old Score": nray(1, 6) = "New Score"
c = 1
For Rw = 3 To UBound(Ray, 1)
Set Dic = CreateObject("scripting.dictionary")
Dic.CompareMode = vbTextCompare
For Ac = 4 To 8
If Not Dic.Exists(Ray(Rw, Ac) & "," & Ray(Rw, Ac + 5)) Then
Dic.Add Ray(Rw, Ac) & "," & Ray(Rw, Ac + 5), 1
Else
Dic(Ray(Rw, Ac) & "," & Ray(Rw, Ac + 5)) = Dic(Ray(Rw, Ac) & "," & Ray(Rw, Ac + 5)) + 1
End If
Next Ac
For Each K In Dic.keys
If Not K = "," Then
c = c + 1
nray(c, 1) = Ray(Rw, 1): nray(c, 2) = Ray(Rw, 2): nray(c, 3) = Dic(K)
nray(c, 4) = "Challenge": nray(c, 5) = Split(K, ",")(0): nray(c, 6) = Split(K, ",")(1)
End If
Next K
c = c + 1
nray(c, 1) = Ray(Rw, 1): nray(c, 2) = Ray(Rw, 2): nray(c, 3) = Ray(Rw, 3)
nray(c, 4) = "Badge"
Next Rw
With Sheets("Results Sheet").Range("A1").Resize(c, 6)
.Value = nray
.Columns.AutoFit
.Borders.Weight = 2
End With
End Sub
Regards Mick
Bookmarks