Try this. Your sheet was protect and I couldn't try everything I wanted to try. I tried to re-create the situation on Sheet2
a. I removed Data Validation
b. Set PC to UK
c. Changed number format on the cell to m/dd/yyyy
d. Rearranged your WS event code and decided there was no need for _SelectionChange
e. Always good idea to use Application.EnableEvents = False in an event handler
f. Date formats in Excel are slightly persistent; seems like once a cell has a date, it always thinks it has a date
g. You ClearSheet macro does not to .Select a Range in order to act on it .ClearContents
h. Excel is region-aware and if the formats are picked right, just changing the PC location will update the formats
UK.JPG
US.JPG
Option Explicit
Private Sub Worksheet_Activate()
DoWeHaveDates
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
DoWeHaveDates
End Sub
Private Sub DoWeHaveDates()
Dim D As Date
Application.EnableEvents = False
Do While Not IsDate(Cells(18, 9).Value)
D = InputBox("Enter the date for Money", "No Date")
If IsDate(D) Then
Cells(18, 9).NumberFormat = Application.International(xlGeneralFormatName)
Cells(18, 9).Value = DateSerial(Year(D), Month(D), Day(D))
End If
Loop
Do While Not IsDate(Cells(19, 9).Value)
D = InputBox("Enter the date for Lodge", "No Date")
If IsDate(D) Then
Cells(19, 9).NumberFormat = Application.International(xlGeneralFormatName)
Cells(19, 9).Value = DateSerial(Year(D), Month(D), Day(D))
End If
Loop
Application.EnableEvents = True
End Sub
Option Explicit
Sub ClearSheet()
'
Range("B3:B6").ClearContents
Range("B8").ClearContents
Range("C4:C5").ClearContents
Range("B11").ClearContents
Range("B13").ClearContents
Range("B18:D22").ClearContents
Range("I18").ClearContents
Range("I19").ClearContents
Range("I20").ClearContents
End Sub