Cómo podría hacer el Código para este Formulario

Tengo un problema que no he podido resolver. Necesito capturar bastantes datos, he creado un formulario automático en Excel pero creo que para hacer lo que pienso creo que necesito usar código y eso excede mis capacidades.

El ejemplo de la captura es el siguiente:

Ingreso la matrícula (que es cómo identifico a los trabajadores), aquí quisiera que al ingresar una, quedara ahí para poder poner varios conceptos e importes al mismo trabajador, hasta apretar una tecla clave como "Ctrl + Enter" por poner un ejemplo, y sólo entonces se borre la matrícula para ingresar la siguiente. Es decir ingreso la matrícula 155 (Presiono "Tab") y el concepto 1 (Presiono "Tab") por un importe 10 (Presiono "Tab", la matrícula permanece y me lleva al espacio de concepto), concepto 2 importe 20 concepto 3 importe 30 etc, (son bastantes conceptos y por eso es incómodo estar ingresando la matrícula tantas veces), luego cuando ya terminé con todos los conceptos de esa matrícula, presiono "Ctrl + Enter" y ahora sí me lleva al espacio de matrícula y así sucesivamente.

Espero haberme dado a entender y de nuevo muchas gracias por la ayuda.

1 Respuesta

Respuesta
2

H o l a:

Prueba con lo siguiente.

Supongo que ya tienes el código para pasar los datos de los textbox a las celdas, pero como sea te envío un código:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    u = Range("A" & Rows.Count).End(xlUp).Row + 1
    If TextBox1 = "" Then
        MsgBox "Falta capturar la matrícula", vbCritical, "ERROR"
        TextBox1.SetFocus
        Exit Sub
    End If
    Cells(u, "A") = TextBox1
    Cells(u, "B") = TextBox2
    Cells(u, "C") = TextBox3
    TextBox2 = ""
    TextBox3 = ""
    TextBox2.SetFocus
End Sub

La tecla clave será la F4, cada que presiones F4, el textbox1 se limpiará y podrás capturar otra matrícula.

Ahora, también pon el siguiente código dentro de tu formulario, cambia textbox1, textbox2, textbox3, commandbutton1, commandbutton2, commandbutton3, por los nombres que tengas en tus controles, si son los mismo, entonces no los cambies.

'
Sub limpiarmat(KeyCode)
'Por.Dante Amor
    Select Case KeyCode
        Case 115    'F4
            TextBox1 = ""
            TextBox2 = ""
            TextBox3 = ""
            TextBox1.SetFocus
    End Select
End Sub
'
Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    limpiarmat KeyCode
End Sub
Private Sub CommandButton2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    limpiarmat KeyCode
End Sub
Private Sub CommandButton3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    limpiarmat KeyCode
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    limpiarmat KeyCode
End Sub
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    limpiarmat KeyCode
End Sub
Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    limpiarmat KeyCode
End Sub

Prueba y me comentas.


Dante, de nuevo ayudándome, no tengo como agradecerte.

Como te darás cuenta mis conocimientos son muy precarios, te envío detalladamente lo que hice y verás qué salió mal.

Primero, copié ambos códigos en un módulo, me marcó error, use google y pensé que es que no había diseñado el formulario (el que puse de ejemplo lo creó excel en automático), así es que lo cree.

Estoy haciendo la prueba, ya luego puliré cambiar nombres y todo eso.

Luego no sabía cómo hacer para correrlo, de nuevo google y cree otro módulo con el siguiente código.

Así es que ya corrió, apareció el formulario, hice la prueba pero no pasa nada, no inserta los datos, ni dando clic a los botones ni con enter ni con F4.

Es aquí donde ya no sé qué hacer y vengo a pedir tu ayuda.

Cómo ves? Qué me falta? Qué hice mal?

De nuevo muchísimas gracias Dante.

Saludos.

Olvidé la última captura... 

H o l a:

En la imagen no veo el nombre del primer botón, Dale dobleclick al primer botón y te va a llevar a vba y te van a aparecer 2 líneas, algo como esto:

Private Sub CommandButton1_Click()
End Sub

Entre las 2 líneas, pega lo siguiente:

'Por.Dante Amor
    u = Range("A" & Rows.Count).End(xlUp).Row + 1
    If TextBox1 = "" Then
        MsgBox "Falta capturar la matrícula", vbCritical, "ERROR"
        TextBox1.SetFocus
        Exit Sub
    End If
    Cells(u, "A") = TextBox1
    Cells(u, "B") = TextBox2
    Cells(u, "C") = TextBox3
    TextBox2 = ""
    TextBox3 = ""
    TextBox2. SetFocus

Cuando presiones el botón se pasarán los datos a la hoja.


Si tienes dificultades envíame tu archivo para revisarlo.

¿Qué versión de excel tienes?


Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Luis Lopez” y el título de esta pregunta.

Dante

Te envié correo pero por favor ignóralo, creo que ya quedó. Ahora, pregunta....

Sólo es necesario 1 botón? o qué función tendrían los otros dos CommandButton? en el código veo que viene CommandButton2 y CommandButton3

De nuevo, muchísimas gracias. Saludos.


                    

Solamente son un ejemplo, por si tienes más commandbutton en tu formulario, deberás agregarlos, si ya no tienes más commandbutton, entonces puedes eliminar el código.

':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

¡Gracias! 

Como siempre con la respuesta. Muchas gracias por ayudar, lamento haber tardado tanto pero por el fin de semana apenas me encuentro frente a la computadora.

Un abrazo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas