i need to find the last sunday of the month in macros
Try this. This is based on current date. Change it according to your need.
Sub LastSundayOfCurrentMonth()
’
’ LastSundayOfCurrentMonth Macro
’
Dim today As Date: today = Date
Dim day As Date: day = DateAdd(“d”, -1, DateAdd(“m”, 1, DateValue(Month(today) & " 1, " & Year(today))))
MsgBox (day)While Weekday(day) <> 7
day = DateAdd(“d”, -1, day)
Wend
MsgBox (DateAdd(“d”, 1, day))’
End Sub
i have given the today = “current date”
it hits error in day: =dateadd… as iam new to macros ,sorry for begineer queries
This link may help you, @priyankavivek
iam unable to open the link can you please provide screenshot
Check this codes,
Code 1:
Sub VBA_Find_previous_Sunday_Method1()
Dim dPrevious_Sunday As Date
dPrevious_Sunday = DateAdd("d", -Weekday(Now) + 1, Now)
MsgBox "If today's date is '" & Format(Now, "DD MMM YYYY") & "' then" & vbCrLf & _
" Previous Sunday Date is : " & Format(dPrevious_Sunday, "DD MMM YYYY"), vbInformation, "Previous Sunday Date"
End Sub
Code 2:
'Previous Sunday Date using Excel VBA Functions
Sub VBA_Find_previous_Sunday_Method2()
Dim dPrevious_Sunday As Date
dPrevious_Sunday = DateAdd("ww", -1, Now - (Weekday(Now, vbSunday) - 8))
Debug.Print dPrevious_Sunday
'Or
dPrevious_Sunday = DateAdd("ww", -1, Now - (Weekday(Now, vbMonday) - 7))
Debug.Print dPrevious_Sunday
'Or
dPrevious_Sunday = DateAdd("ww", -1, Now - (Weekday(Now, vbTuesday) - 6))
Debug.Print dPrevious_Sunday
'Or
dPrevious_Sunday = DateAdd("ww", -1, Now - (Weekday(Now, vbWednesday) - 12))
Debug.Print dPrevious_Sunday
'Or
dPrevious_Sunday = DateAdd("ww", -1, Now - (Weekday(Now, vbThursday) - 11))
Debug.Print dPrevious_Sunday
'Or
dPrevious_Sunday = DateAdd("ww", -1, Now - (Weekday(Now, vbFriday) - 10))
Debug.Print dPrevious_Sunday
'Or
dPrevious_Sunday = DateAdd("ww", -1, Now - (Weekday(Now, vbSaturday) - 9))
Debug.Print dPrevious_Sunday
MsgBox "If today's date is 12/03/2018 " & vbCrLf & " then previous Sunday's date is " _
& Format(dPrevious_Sunday, "DD MMMM YYYY"), vbInformation, "Previous_Sunday_Date"
End Sub
These are the codes which I found in that website.
No worries. Keep trying and you will rock
thankyou
you declared today as Date and trying to assign some other value. You should assign as
today = DateValue(3,12,2020) or
today = DateValue(“Mar”,12,2020)
Run macro to reach each Date cell value, split the value to get date month and year through which you can create a date as Date(month, date, year) in the code provided (where current date is referred). At the end instead of MsgBox, write it into the cell.