Option Explicit
Sub splitSheets()
Dim i As Long, aData, aHeadings, nome As String, ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "WL1C FINAL REPORT" Then
ws.Cells.ClearContents
End If
Next
With Sheets("WL1C FINAL REPORT")
aHeadings = .Cells(6, 2).Resize(, 20).Value
aData = .Range(.Cells(7, 2), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, .Cells(6, .Columns.Count).End(xlToLeft).Column)).Value
End With
For i = 1 To UBound(aData, 1)
nome = Trim(aData(i, 1))
If nome <> vbNullString Then
If Not Evaluate("ISREF('" & nome & "'!A6)") Then
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = nome
With Worksheets(nome)
Union(.Columns("F"), .Columns("I:J"), .Columns("L:M"), .Columns("O")).NumberFormat = "dd-mmm-yy"
End With
End If
With Worksheets(nome)
.Cells(6, 2).Resize(, 18).Value = aHeadings
.Cells(.Cells(.Rows.Count, 2).End(xlUp).Row + 1, 2).Resize(, 18).Value = _
Array(aData(i, 1), aData(i, 2), aData(i, 3), aData(i, 4), aData(i, 5), aData(i, 6), aData(i, 7), _
aData(i, 8), aData(i, 9), aData(i, 10), aData(i, 11), aData(i, 12), aData(i, 13), aData(i, 14), _
aData(i, 15), aData(i, 16), aData(i, 17), aData(i, 18))
End With
End If
Next i
Application.ScreenUpdating = True
End Sub
Bookmarks