2
votes

(Excel 2010 VBA) I have a cell (A1) containing a date in the format of mmm-yy ("Custom" category). Foe example, if I enter 1/6/13 the cell shows June-13. That's fine. In my VB macro I need to check this date whether the month is the current month and whether the year is the current year. I don't care about the day.

3

3 Answers

5
votes

Does this help you:

Public Sub test()
    d = Sheet1.Range("A1")
    n = Now()
    If Year(d) = Year(n) And Month(d) = Month(n) Then
        MsgBox "It works"
    End If
End Sub
2
votes

Thanks to Dave and MiVoth I did :

Dim xdate As Date  
xdate = Worksheets("sheet1").Range("A1")  
   If Month(Date) = Month(xdate) And Year(Date) = Year(xdate) Then  
      MsgBox "OK"  
   Else  
      MsgBox "not OK"  
   End If  

That did the job!
Thank a lot to everyone,
Gadi

1
votes

How about this:

Function MonthYear() As Boolean
MonthYear = False
If Not IsDate(Cells(1, 1)) Then Exit Function
If Month(Date) = Month(Cells(1, 1)) And Year(Date) = Year(Cells(1, 1)) Then
    MonthYear = True
End If
End Function

The function returns true if month and year are the same as current date. If not it returns false.