Macro para insertar dato en últimas celdas simultaneamente

Suponemos:

        A            B                    C                  D              E              F              G

1     4       ENERO          FEBRERO      MARZO      ABRIL

2     3       FEBRERO      MARZO         ABRIL

3     2       MARZO         ABRIL

4     1       ABRIL

5

6

Saludos.-

Necesito un código que llene la última celda (fila y columna) y que aumente la selección conforme se insertan los meses.

Explico mejor:

Tengo este código:

Sheets("Datos").Range("B:B").End(xlDown).Offset(1, 0).Value = UserForm1.TextBox1.Value

con el cual lleno la última celda de abajo de la columna B hasta la E y este otro:

Sheets("Datos").Range("A1:A4").End(xlToRight).Offset(0, 1).Value = UserForm1.TextBox1.Value

Para la última celda vacía al lado derecho de la fila.

El problema es que usándolos siempre me queda una celda vacía, ya que estos códigos están limitados hasta cierta fila y columna, por lo que siempre debo editar el código para que siga funcionando, pero no es la idea.

Por eso solicito su valiosa ayuda con un código que llene constantemente fila y columna de manera infinita.

1 respuesta

Respuesta
2

Prueba con la siguiente macro, lo que hace la macro es recrear lo que pusiste como ejemplo.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h = Sheets("Datos")
    If UserForm1.TextBox1.Value = "" Then
        Exit Sub
    End If
    '
    uf = h.Range("B" & Rows.Count).End(xlUp).Row
    n = uf
    If h.Cells(uf, "B") <> "" Then
        uf = uf + 1
        n = n + 1
    End If
    For i = 1 To uf
        j = h.Cells(i, Columns.Count).End(xlToLeft).Column + 1
        h.Cells(i, j) = UserForm1.TextBox1.Value
        h.Cells(i, "A") = n
        n = n - 1
    Next
End Sub

Puedes borrar todos los datos y ejecutar la macro, verás como te va poniendo los meses.

Si es lo que necesitas, r ecuerda valorar la respuesta.

Caramba! Gracias, que fácil! ja ja ja!! Excelente! Sólo que en el ejemplo olvidé colocar que era desde la Columna G y H. Es decir, en lugar de A poner G y H en lugar de B. Intenté cambiarlo en el código que me diste, pero no me funcionó.  Del resto, es justo lo que buscaba!

Mil Gracias!

Te anexo la macro actualizada

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h = Sheets("Datos")
    If UserForm1.TextBox1.Value = "" Then
        Exit Sub
    End If
    '
    uf = h.Range("H" & Rows.Count).End(xlUp).Row
    n = uf
    If h.Cells(uf, "H") <> "" Then
        uf = uf + 1
        n = n + 1
    End If
    For i = 1 To uf
        j = h.Cells(i, Columns.Count).End(xlToLeft).Column + 1
        If j < Columns("H").Column Then j = Columns("H").Column
        h.Cells(i, j) = UserForm1.TextBox1.Value
        h.Cells(i, "G") = n
        n = n - 1
    Next
End Sub

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas