If the code is the same on all 80 sheets in the workbook, it could have been placed in a Workbook_SheetChange sub in the ThisWorkbook code pane. You then would not need to have any subs at all on the code panes for the individual worksheets. Following Ken's lead:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Call MyWsChange(Target)
End Sub
Given that the code is installed in just one place, I would have not bothered with the MyWsChange sub in a module sheet. If so, the Workbook_SheetChange sub becomes:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
'Define the range where you want the code to work (our example is "H:Q").
'Change within the " marks
If Intersect(Target, Range("H:Q")) Is Nothing Then Exit Sub
On Error GoTo errHandler:
With Target
If IsNumeric(.Value) Then
Application.EnableEvents = False
Select Case .Value
Case 0
.NumberFormat = "[h]:mm"
Case 1 To 99
.Value = TimeSerial(0, .Value, 0)
.NumberFormat = "[h]:mm"
Case 100 To 9999
.Value = TimeSerial(Int(.Value / 100), .Value Mod 100, 0)
.NumberFormat = "[h]:mm"
Case Else
End Select
End If
End With
errHandler:
Application.EnableEvents = True
End Sub