You appear to have something in the rows between the blocks of data on the All sheet which is making it appear as one huge block.
If select those rows (16,17,26, 27 etc) and then hit the delete key, the macro start to work fine.
The following alternative deduces the range to copy in a different way by looking at cell values in column E and may therefore be more robust.
Sub Test()
Sheets("All").Activate
For N = 2 To Cells(Rows.Count, 5).End(xlUp).Row
If Cells(N, 5) <> "" And Cells(N - 1, 5) = "" Then
Venue = Cells(N, 5)
On Error GoTo NewVenue
For M = N To Cells(Rows.Count, 5).End(xlUp).Row
If Cells(M, 5) = "" Then Exit For
LastRow = M
Next M
Set CopyRange = Range(Cells(N, 5), Cells(LastRow, Cells(N + 1, Columns.Count).End(xlToLeft).Column))
CopyRange.Copy Destination:=Sheets(Venue).Cells(Rows.Count, 5).End(xlUp).Offset(2, 0)
On Error GoTo 0
Sheets(Venue).Columns.AutoFit
End If
Next N
Exit Sub
NewVenue:
Sheets.Add After:=Sheets("All")
ActiveSheet.Name = Venue
Sheets("All").Activate
Resume
End Sub
Bookmarks