The following code I've written using excel 2013 works on excel 2013, but when trying it on my company's 2010 version of excel it produces an error when I click Cancel button on inputbox dialog box and stops at the line of code:
EntryDate = CDate(InputBox("Insert Date", "Insert Date", vbOKCancel))
says: type Mismatch and the number is: Run-time error'13':
Why?
Sub InsertNewEntry()
'
' InsertNewEntry Macro
' To Insert New Entry for exchange rates
'
Dim LastRow As Integer, EntryDate As Date
Dim EURtoUSD As Double, JODtoUSD As Double, ILStoUSD As Double
' determine the number of the last row entered
LastRow = ThisWorkbook.Worksheets("Exchange Rates Template").Cells(Rows.Count, 2).End(xlUp).Row
'determine if last date is last day of the year
If Cells(LastRow, 2) = #12/31/2014# Then
MsgBox "You are not allowed to insert a date above " & "31/12/ " & Cells(4, 1).Value
Exit Sub
Else
Cells(LastRow, 4).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=False
Cells(LastRow, 8).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=False
Cells(LastRow, 12).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=False
Cells(LastRow + 1, 2).Select
EntryDate = CDate(InputBox("Insert Date", "Insert Date", vbOKCancel))
If EntryDate <> "" Then
Cells(LastRow + 1, 2) = EntryDate
Cells(LastRow + 1, 3) = "EUR to USD"
Cells(LastRow + 1, 6) = EntryDate
Cells(LastRow + 1, 7) = "JOD to USD"
Cells(LastRow + 1, 10) = EntryDate
Cells(LastRow + 1, 11) = "ILS to USD"
Else
Cells(LastRow + 1, 2).Select
Selection.ListObject.ListRows(LastRow - 3).Delete
Cells(LastRow + 1, 6).Select
Selection.ListObject.ListRows(LastRow - 3).Delete
Cells(LastRow + 1, 10).Select
Selection.ListObject.ListRows(LastRow - 3).Delete
Exit Sub
End If
End If
End Sub