I think the problem lies in the meaning of "once cell value R50 (which is in another sheet) changes". The code you have posted will run if you select and change the value in cell R50, the target cell. It will not be triggered if this is changed because it contains a formula. The following tweak to your code will correct this, but in this case it relies on the sheet containing R50 to be activated and some change made causing the value in R50 to change. If this is not the case, please let us know the formula in cell R50.
Option Explicit
Dim Monitored
Private Sub Worksheet_Activate()
Monitored = [R50].Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ws_exit:
Application.EnableEvents = False
If [R50].Value <> Monitored Then
Worksheets("Sheet9").Range("T7:T33, X7:X33").ClearContents
End If
ws_exit:
Application.EnableEvents = True
End Sub