Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Not Intersect([D4:Q29], Target) Is Nothing And Not Target.HasFormula Then
S$ = UCase$(Left$(Target.Value2, 1))
If S > "" Then
Application.EnableEvents = False
If S <> "H" Then Beep: Target.ClearContents Else Target.Value2 = S: Sheet2.Range(Target.Address).Value2 = S
Application.EnableEvents = True
End If
End If
End Sub