The problem you get when you press cancel is at the line:
[vba]If cmtText = "" Then Exit Sub[/vba]
Since you are unprotecting the sheet before the Input box and you are re-protecting it at the end of the code, if the user presses cancel then it leaves the sub BEFORE it is re-protected. Try changing this:
[vba]If cmtText = "" Then Exit Sub[/vba]
To this:
[vba]If cmtText = "" Then
ActiveWorksheet.Protect Password:="MyPassword"
Exit Sub
End If[/vba]
That should help. Let us know