I've been using this "forced upper case" code for the last 3 months and haven't had any problems out of it.

Now, it won't run.

I did set up the workbook to track changes, which shared the workbook. I went back and took off tracked changes and un-shared it, but I'm still getting nothing.

What am I missing?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim tmpRng As Range, cl As Range
Set tmpRng = Intersect(Me.Range("a5:z1000"), Target)
If tmpRng Is Nothing Then Exit Sub
With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With
For Each cl In tmpRng
    With cl
        If VarType(.Value) = vbString Then _
            .Value = UCase$(.Value)
    End With
Next
With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With
Set tmpRng = Nothing
End Sub