Module de classe:
Public WithEvents GrSaisie As MSForms.TextBox
Private Sub GrSaisie_Change()
If Len(GrSaisie.Value) = 3 Then
x = GrSaisie.Name
y = ""
For i = 1 To Len(x)
If IsNumeric(Mid(x, i, 1)) Then y = y & Mid(x, i, 1)
Next i
If Val(y) = 12 Then y = 0
UserForm1("textbox" & y + 1).SetFocus
End If
End Sub
Formulaire:
Dim Txt(1 To 12) As New ClasseSaisie
Private Sub UserForm_Initialize()
For b = 1 To 12: Set Txt(b).GrSaisie = Me("textbox" & b): Next b
End Sub