Hi ,You could try this.
Create a new sheet in your workbook called "Combine"
Run this code from there.
Result from all worksheets (Except "Combine") shown in New sheet "Combine" Columns "A" & "B"
Dim wksh1 As Worksheet, cl As Range, cl2 As Range, rng1 As Range, rng2 As Range
Dim wksh2 As Worksheet, oSet As Double, dic As Object
Set dic = CreateObject("Scripting.Dictionary")
With dic
For Each wksh1 In ActiveWorkbook.Worksheets
If wksh1.Name <> "Combine" Then
Set rng1 = Sheets(wksh1.Name).Range("a1", Sheets(wksh1.Name) _
.Range("A" & Rows.Count).End(xlUp))
For Each cl In rng1
For Each wksh2 In ActiveWorkbook.Worksheets
If wksh2.Name <> "Combine" Then
Set rng2 = Sheets(wksh2.Name).Range("a1", Sheets(wksh2.Name) _
.Range("A" & Rows.Count).End(xlUp))
For Each cl2 In rng2
If cl2.Value = cl.Value Then
oSet = oSet + cl2.Offset(, 1).Value
End If
Next cl2
End If
Next wksh2
If Not .exists(cl.Value) Then
.Add cl.Value, oSet
End If
oSet = 0
Next cl
End If
Next wksh1
End With
Dim Nu, a As Integer
For Each Nu In dic.keys
a = a + 1
Cells(a, "A").Value = Nu
Cells(a, "B").Value = dic.Item(Nu)
Next Nu
Set dic = Nothing
Regards Mick
Bookmarks