Macro de Excel que guarda un registro debajo del anterior

Hice una macro que guarda registro desde un formulario, hacia una hoja del mismo libro pero cuando grabo para que me los ordene uno d bajo del otro, no lo hace. Yo grabe la secuencia parándome en el título "fecha" y le di CTRL fin para que la macro vaya al ultimo registro cargado y baje a la fila siguiente (en blanco), probe bajando con la flechita y con intro pero al ejecutar la macro esta va a misma fila (siempre a la misma) en donde me pare con el CTRL a fin y no baja una mas con lo que me sobre-escribe el nuevo registro sobre el que ya esta en dicha fila. ¿Cómo hago para que busque siempre el ultimo y baje una mas ( es decir a la que esta inmediatamente debajo de la última?)

1

1 respuesta

Respuesta

H o l a :

Esta es una opción, en la variable u se almacena la última fila con datos de la columna "A" + 1, es decir, la siguiente fila estará vacía; cambia la letra "A" en esta instrucción, por la columna en la que quieres encontrar la última fila con datos.

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

Sub macro()
'Por.Dante Amor
    u = Range("A" & Rows.Count).End(xlUp).Row + 1
    Cells(u, "A") = "dato1"
    Cells(u, "B") = "dato2"
End Sub

Esta es otra alternativa, igualmente en la variable u se almacena la primer fila vacía que encuentra de la columna "A"

Sub macro2()
'Por.Dante Amor
    u = 1
    Do While Cells(u, "A") <> ""
        u = u + 1
    Loop
    Cells(u, "A") = "dato1"
    Cells(u, "B") = "dato2"
End Sub

Dependiendo de la situación que tengas, podrás ocupar una opción o la otra. Existen otras alternativas, pero estas 2 son las que más ocupo, de hecho, la primera opción es la más efectiva.


Muchas gracias, si bien no soy experto en el tema y no programo ya que hago las macros solo grabando, se como entrar a ver el código de una. Mi pregunta seria en donde de todo el código meto lo que me enviaste o es indistinto. Gracias de nuevo!!!

No veo tu código, no sé para qué quieres encontrar la primera celda vacía.

Si pones tu código y me explicas qué quieres hacer con tu macro, te adapto el código o creo una macro nueva.

Si tienes un formulario y quieres guardar los valores de unos textbox en la hoja, puede ser así:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    u = Range("A" & Rows.Count).End(xlUp).Row + 1
    Cells(u, "A") = TextBox1
    Cells(u, "B") = TextBox2
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas