Up to now I've been detecting when a textbox value changes by subroutines like this
Sub tbox_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, _
        ByVal Shift As Integer)
    [some code that does something]
End Sub
But now I've learnt to restrict users to entering integers only, using
Private Sub tbox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
    Case Asc("0") To Asc("9")
   [some code that does something]
    Case Else
        KeyAscii = 0
End Select

End Sub
Now, if I just use the second of these, it detects when user enters numbers, but not when user deletes something. If I use both the routines, then pressing alphabetic keys makes the system think that tbox.value has changed, when it hasn't. What I want is to detect when the text changes, or to detect keypresses for delete and backspace as well as numbers, but to ignore keypresses for the characters that don't do anything because of the second subroutine above.

Basically, I don't really understand how to use these keyup and keypress subroutines. Any help would be appreciated.