Option Explicit
Sub SummeryPAKL()
Application.ScreenUpdating = False
Dim ActvSheetNumb As Integer
Dim AddedSheetNumb As Integer
ActvSheetNumb = ActiveSheet.Index
AddedSheetNumb = ActvSheetNumb + 1
Dim StyleAreaSt As Range
Dim StyleIdStrt As String
Dim StyleStarts As String
Dim StyleStartsRowNum As Integer
Set StyleAreaSt = Range("A:A").Find(What:=("Style"), LookIn:=xlValues, lookat:=xlWhole)
StyleIdStrt = StyleAreaSt.Address(0, 0)
StyleStarts = StyleAreaSt.Offset(2, 0).Address(0, 0)
StyleStartsRowNum = Range(StyleAreaSt.Offset(2, 0).Address).row
Dim StyleAreaEnd As Range
Dim StyleIdEnd As String
Dim StyleEnd As String
Dim StyleEndRowNum As Integer
Set StyleAreaEnd = Range("A:A").Find(What:=("Total="), LookIn:=xlValues, lookat:=xlWhole)
StyleIdEnd = StyleAreaEnd.Address(0, 0)
StyleEnd = StyleAreaEnd.Offset(-1, 0).Address(0, 0)
StyleEndRowNum = Range(StyleAreaEnd.Offset(-1, 0).Address).row
Dim h1 As Worksheet
Set h1 = ActiveSheet
Dim h2 As Worksheet
Set h2 = ActiveWorkbook.Sheets.Add(Type:=xlWorksheet, After:=Application.ActiveSheet)
Dim row As Long
Dim col As Long
Dim x As Long
ActiveSheet.Select
x = 2
'Headers Sheet2
Sheets(AddedSheetNumb).Cells(1, 1).Value = "Style"
Sheets(AddedSheetNumb).Cells(1, 2).Value = "Order Id"
Sheets(AddedSheetNumb).Cells(1, 3).Value = "Ref"
Sheets(AddedSheetNumb).Cells(1, 4).Value = "Color"
Sheets(AddedSheetNumb).Cells(1, 5).Value = "Size"
Sheets(AddedSheetNumb).Cells(1, 6).Value = "Qty"
Sheets(AddedSheetNumb).Cells(1, 7).Value = "Ctn Qty"
Sheets(AddedSheetNumb).Cells(1, 8).Value = "Total Qty"
For row = StyleStartsRowNum To StyleEndRowNum
For col = 8 To 19 ' sizes column
Sheets(AddedSheetNumb).Cells(x, 1).Value = Sheets(ActvSheetNumb).Cells(row, 1).Value 'style
Sheets(AddedSheetNumb).Cells(x, 2).Value = Sheets(ActvSheetNumb).Cells(row, 2).Value 'order no
Sheets(AddedSheetNumb).Cells(x, 3).Value = Sheets(ActvSheetNumb).Cells(row, 3).Value ' ref no
Sheets(AddedSheetNumb).Cells(x, 4).Value = Sheets(ActvSheetNumb).Cells(row, 7).Value 'color
Sheets(AddedSheetNumb).Cells(x, 5).Value = Sheets(ActvSheetNumb).Cells(9, col).Value 'sizes from pkl sheet
Sheets(AddedSheetNumb).Cells(x, 6).Value = Sheets(ActvSheetNumb).Cells(row, col).Value 'size wise qty
Sheets(AddedSheetNumb).Cells(x, 7).Value = Sheets(ActvSheetNumb).Cells(row, 20).Value 'ctn qty
Sheets(AddedSheetNumb).Cells(x, 8).Value = Sheets(AddedSheetNumb).Cells(x, 6).Value * Sheets(AddedSheetNumb).Cells(x, 7).Value
x = x + 1
Next
Next
Sheets(AddedSheetNumb).Columns("F:F").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
'2nd part finding duplicate value a-e
Dim lr As Long, i As Long
lr = Cells(Rows.Count, 1).End(xlUp).row
With Sheets(AddedSheetNumb).Sort
.Header = xlYes
.SortFields.Clear
.SetRange Range(Cells(1, 1), Cells(lr, 8))
'.SetRange Range(Cells(1, 1), Cells(DataRows, 8))
.SortFields.Add Key:=Range("B:B"), Order:=xlAscending
.SortFields.Add Key:=Range("C:C"), Order:=xlAscending
.SortFields.Add Key:=Range("D:D"), Order:=xlAscending
.SortFields.Add Key:=Range("E:E"), Order:=xlAscending
.Apply
.SortFields.Clear
End With
For i = lr To 2 Step -1
If Cells(i, 1) = Cells(i - 1, 1) And _
Cells(i, 2) = Cells(i - 1, 2) And _
Cells(i, 3) = Cells(i - 1, 3) And _
Cells(i, 4) = Cells(i - 1, 4) And _
Cells(i, 5) = Cells(i - 1, 5) Then
Cells(i - 1, 6) = Cells(i - 1, 6) + Cells(i, 6)
Cells(i - 1, 7) = Cells(i - 1, 7) + Cells(i, 7)
Cells(i - 1, 8) = Cells(i - 1, 8) + Cells(i, 8)
Range("A" & i & ":h" & i).Delete shift:=xlUp
End If
Next i
Application.ScreenUpdating = True
End Sub