Here's the answer to the date fill part of your question. And, you need to place this in a regular module, NOT in a worksheet module.
Sub myDates()
Dim Sht As Worksheet
Dim intDaysInMonth As Integer
Dim i As Integer
Dim Target As Range
Set Sht = Worksheets("MAR") 'change to suit
intDaysInMonth = Day(DateSerial(Year(Now()), Month(Now()) + 1, 0))
Set Target = Sht.Range("f14").Resize(, intDaysInMonth) 'set target to days count
Target(1).Resize(, 31).ClearContents 'clear all previous
For i = 1 To intDaysInMonth
Target(i).Value = DateSerial(Year(Now()), Month(Now()), i)
Next i
Set Sht = Nothing
End Sub
But to make this more useful, you should call this from another sub, with the worksheet name as an argument, so you can access the correct month's worksheet. Then it would look like this:
Sub myDates(ShtName As String)
Dim Sht As Worksheet
Dim intDaysInMonth As Integer
Dim i As Integer
Dim Target As Range
Set Sht = Worksheets(ShtName) 'change to suit
intDaysInMonth = Day(DateSerial(Year(Now()), Month(Now()) + 1, 0))
Set Target = Sht.Range("f14").Resize(, intDaysInMonth) 'set target to days count
Target(1).Resize(, 31).ClearContents 'clear all previous
For i = 1 To intDaysInMonth
Target(i).Value = DateSerial(Year(Now()), Month(Now()), i)
Next i
Set Sht = Nothing
End Sub