Hola, aqui tengo un codigoq hise q te puede servir:
Private Sub Text1_Change()
'para q el textbox no acepte mas de 4
' esto se puede establecer en la propiedad MaxLength
Text1.MaxLength = 4
'solo acepte numeros
For i = 1 To Len(Text1.Text)
a = Mid(Text1.Text, i, 1)
If a = "1" Or a = "2" Or a = "3" Or a = "4" Or a = "5" Or a = "6" Or a = "7" Or a = "8" Or a = "9" Or a = "0" Then
Else
'borrar la letra escrita si este no es un numero
SendKeys "{BACKSPACE}"
End If
Next
End Sub
Private Sub Text1_LostFocus()
'si en el textbox hay menos de 4 digitos
If Len(Text1.Text) <> 4 Then
MsgBox "se debe ingresar un numero de 4 digitos"
Text1.SetFocus
SendKeys "{Home}+{End}"
End If
End Sub
Bueno espero q te sirva, saludos