Sylwester- this should do everything but insert the three rows. Having extra rows at the top of the first sheet will mess up the AutoFilter so would be better kept elsewhere. Code could be amended, but maybe rethink your layout.
Sub Macro2()
Dim rng As Range, rng2 As Range, ws As Worksheet
Application.DisplayAlerts = False
With Sheets("Data")
Sheets.Add().Name = "Temp"
.Range("J5", .Range("J5").End(xlDown)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Temp").Range("A1"), Unique:=True
Set rng = Sheets("Temp").Range("A2", Sheets("Temp").Range("A2").End(xlDown))
For Each rng2 In rng
.Range("A5").AutoFilter field:=10, Criteria1:=rng2
Set ws = Worksheets.Add(After:=Worksheets(Worksheets.Count))
.AutoFilter.Range.Copy ws.Range("A1")
ws.Name = rng2
Next rng2
Sheets("Temp").Delete
.AutoFilterMode = False
End With
Application.DisplayAlerts = True
End Sub
Bookmarks