Como pegar datos de un formulario Vba en la base de datos en Excel 2010

Tengo un formulario de 14 TextBox y necesito pegarlas en una base de datos que tiene 18 columnas.

La idea es que se peguen en la ultima fila con datos pero no siempre todas las columnas terminan en la misma fila por lo que al usar el comando

countult = Cells(Rows.Count, 1).End(xlUp).Offset(1,0).Row
MsgBox countult
Cells(Rows.Count, 1).End(xlUp).Offset(1,0).Select

End Sub

Lógicamente las pegara en la ultima fila de cada columna.

La columna 1 (A) siempre la columna con mas datos en mi base de datos por lo que necesito saber como encontrar la ultima fila con datos en la columna A, luego copiar los datos de mis 14 TextBox a lo largo de esa fila y en sus columnas correspondientes.

Los nombres de los cuadros de las etiquetas no son los mismos que la base de datos. (ej: cuadro de texto =Fecha ingreso; Columna en base de datos=Fecha ingreso de facturas)

1 respuesta

Respuesta
2

Te anexo un ejemplo, deberás adaptarlo a tus datos

Private Sub CommandButton1_Click()
'Por.Dante Amor
    'Pasar datos del form a la hoja
    '
    'Validar que el textbox que va en la columna A siempre tenga un dato
    If TextBox1 = "" Then
        MsgBox "Falta captuar el dato"
        TextBox1.SetFocus
        Exit Sub
    End If
    'Siguiente fila vacía de la columna A
    fila = Range("A" & Rows.Count).End(xlUp).Row
    Cells(fila, "A").Value = TextBox1
    Cells(fila, "D").Value = TextBox2
    Cells(fila, "F").Value = TextBox3
    '
    MsgBox "Se copiaron los datos en la hoja"
End Sub

Cambia Textbox1 por el nombre de tu textbox que va en la columna A

Tienes que indicar cuál textbox va en cuál columna. Te puse 3 ejemplos, pero deberás poner los 14 textbox y a cada uno tienes que escribir en cuál columna va.

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

¡Gracias! 

Me acabo de dar cuenta de un problema, todo este tiempo ha pegado sobre la última fila con datos?

agregué .offset(1,0) antes del ultimo .row y ahora si funciona!

Perdona cambia esta línea

fila = Range("A" & Rows.Count).End(xlUp).Row

Por esta:

fila = Range("A" & Rows.Count).End(xlUp).Row + 1

sal u dos

puede afectar en algo que deje offset(1,0)? 

No, pero no me gusta utilizar esas referencias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas