You cannot do what you want with cell formatting as you are needing to physically change an entered value. You can do what you want using event code though. A couple of caveats first... one, I am not using a Mac and, two, the natural order of my dates is the reverse of yours... that means I cannot test this for you (it works on my system though and I have reason to believe it should work for you too). Also, you did not tell us the column where you are entering your dates so I assumed Column C (which is why my If..Then test the column against the number 3)... change as necessary. Here is the event code...
VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge = 1 Then
If Target.Column = 3 Then
If Target.Value <= Date Then
Application.EnableEvents = False
Target.Value = DateAdd("yyyy", 1, Target.Value)
Application.EnableEvents = True
End If
End If
End If
End Sub
HOW TO INSTALL Event Code
------------------------------------
If you are new to event code procedures, they are easy to install. To install it, right-click the name tab at the bottom of the worksheet that is to have the functionality to be provided by the event code and select "View Code" from the popup menu that appears. This will open up the code window for that worksheet. Copy/Paste the event code into that code window. That's it... the code will now operate automatically when its particular event procedure is raised by an action you take on the worksheet itself. Note... if you are using XL2007 or above, make sure you save your file as an "Excel Macro-Enabled Workbook (*.xlsm) and answer the "do you want to enable macros" question as "yes" or "OK" (depending on the button label for your version of Excel) the next time you open your workbook.