Instrucción para varios TextBox de un formulario ejecutable con Enter
Buenas tardes, llevo varios meses tratando de resolver este problema, pero me ha superado y opte por pedir ayuda.
Diseñe un formulario tal como se aprecia en la imagen (desarrollado en Excel 2007) dicho formulario se usa como cotizador, se ingresan datos de clientes, Realiza algunos cálculos y entrega valores dependiendo de ciertas condiciones, después dichos valores se capturan en tres hojas diferentes al dar click al botón "grabar".
Mi problema es el siguiente: en el Frame "Examenes" (ver imagen) tengo varios TextBox agrupados en 6 columnas identificadas con la etiqueta codigo, cant, examen, copago, part e indicacion respectivamente. La idea es ingresar un código de 4 dígitos en cada uno de los textbox que se agrupan en la columna etiquetada como código, y al hacer Enter este código es buscado y capturado por el textbox, capturando de paso el contenido de los otros textbox adyacentes de la misma fila (la información de captura se extrae de una hoja que funciona como base de datos llamada "examen". La búsqueda la tengo resuelta de dos maneras:
Método 1
'Private Sub id_examen1_AfterUpdate()
'On Error Resume Next
'exam1.Value = WorksheetFunction.VLookup((id_examen1.Value), Sheets("examen").Range("A2:K485"), 2, False)
'copago1.Value = WorksheetFunction.VLookup((id_examen1.Value), Sheets("examen").Range("A2:K485"), 10, False)
'part1.Value = WorksheetFunction.VLookup((id_examen1.Value), Sheets("examen").Range("A2:K485"), 8, False)
'End Sub
Método 2
'Private Sub id_examen1_AfterUpdate()
'
'Set h = Sheets("examen")
'Set b = h.Columns("A").Find(id_examen1)
' If Not b Is Nothing Then
' exam1 = h.Cells(b.Row, "B")
' copago1 = h.Cells(b.Row, "J")
' part1 = h.Cells(b.Row, "H")
' End If
'End Sub
El inconveniente, radica en que tal como tengo el código visual basic, me veo obligado a programar los textbox de la primera columna uno por uno quedando un código de programación muy extenso que me arroja un error por superar el numero de lineas del editor VBA. Intente programar con un bucle For To al inicializar el formulario pero no hace nada, les dejo el código de todos modos:
'Dim codigo As Controls
'Dim cantidad As Controls
'Dim examen As Controls
'Dim copago As Controls
'Dim particular As Controls
'Dim i As Integer
'
'For i = 1 To 18
'
'cantidad = Me.Controls("cant" & i).Text
'examen = Me.Controls("exam" & i).Text
'copago = Me.Controls("copago" & i).Text
'particular = Me.Controls("part" & i).Text
'
'On Error Resume Next
'examen.Value = WorksheetFunction.VLookup((codigo.Value), Sheets("examen").Range("A2:K485"), 2, False)
'copago.Value = WorksheetFunction.VLookup((id_examen1.Value), Sheets("examen").Range("A2:K485"), 10, False)
'particular.Value = WorksheetFunction.VLookup((id_examen1.Value), Sheets("examen").Range("A2:K485"), 8, False)
'
'Next
Quería solicitar si alguien mas experto me puede ayudar indicándome que estoy haciendo mal o si la idea que tengo es muy marciana.
Des afortunadamente, NO soy del área de programación y todo lo que he logrado aprender a sido a punta de foros y tutoriales de la web.
Agradezco infinitamente vuestra atención y quedo atento a los comentarios.