The clue was in the error message, you can't have / in a filename, because your file name field G9 was a date, and it picked up that value. Use text instead
[vba]
Dim filename As Variant
filename = Range("D3").Value
filename = Mid(filename, InStr(filename, " ") + 1) & Left(filename, InStr(filename, " ") - 1) & ", Contract, " & Range("G9").Text
filename = Application.GetSaveAsFilename(filename, "Microsoft Excel Files (*.xls), *.xls")
If filename <> False Then
ActiveWorkbook.SaveAs filename
End If
[/vba]