for the first option try this macro:

Sub NewDay()
Dim NewName As String, NewDate As Date, LastRow As Long, x As Long
NewName = "New Name"
On Error GoTo nxt
NewDate = DateValue(ActiveSheet.Name & " " & Year(Date)) + 1
NewName = Format(NewDate, "dd mmmm")

nxt:
If NewName = "New Name" Then
    NewName = InputBox(ActiveSheet.Name & " is not recognised as a date. Please enter a name for the new sheet", "new name", NewName)
End If
ActiveSheet.Copy Before:=ActiveSheet
ActiveSheet.Name = NewName
LastRow = Cells(Columns(8).Rows.Count, 8).End(xlUp).Row

For x = LastRow To 11 Step -1
    If Columns(8).Rows(x).Value = "" Then Columns(8).Rows(x).EntireRow.Delete
Next x

End Sub