Hola maxtextla, tenia listo algo desde hace rato, pero cuando entre nuevamente en el foro, me habías cambiado la seña y no tengo libre acceso a la red. Espero aun poder ayudarte como ya lo han hecho conmigo en otras ocasiones.
Este es, prácticamente el código que tenia de principio, pero modificado para que haga todo lo que pedisteis.
Te aconsejo usar el “option explicit”, “comentarios en los códigos” y “trabajar con tabulaciones” de esta manera es mas fácil solucionar problemas.
Suponiendo que tu textbox se llama text1, este seria el algoritmo:
Option Explicit
Private Sub Form_Load()
'Configuramos el TextBox para que acepte máximo 2 caracteres.
Text1.MaxLength = 2
'Tambien puedes hacerlo desde las propiedades del TextBox directamente.
End Sub
'Con este procedimiento evitamos el copy & paste
Private Sub Text1_Change()
'Control de errores por si se pega otra cosa que no sean números
On Error Resume Next
'Lo no permitido ¡pa' fuera!
If Val(Text1.Text) >= 60 Or Text1.Text < 0 Then Text1.Text = ""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
'Este procedimiento permite que se incerten, solo las teclas deseadas usando la Ascii.
Dim Tecla As String
Tecla = Chr(KeyAscii)
If KeyAscii <> 8 Then 'Verifica si se presionó las teclas de direcciones.
Select Case Tecla
'Controlamos, cuando se permitirá insertar números del 6 al 9 y cuando no.
Case "6" To "9": If Text1.Text = "" Then KeyAscii = 0
'Metemos a números del 0 al 5 en paquete de permitidos permanentes.
Case "0" To "5"
'Si Tecla obtiene un valor diferente a números del 0 al 9 ó cualquier otro caracter, lo borra.
Case Else: KeyAscii = 0
End Select
End If
End Sub
Espero haber sido de ayuda, a pesar de la tardanza.