Arrastrar fórmulas en rango dinámico

Estoy intentando hacer una macro en VBA de excel mediante la cual arrastre la fórmula de la primera celda a la ultíma celda en la que la fila en la columna "c" tiene datos.

Ejemplo. Tengo en la columna "c" datos desde la primera fila a la 15.

Tengo en la celda A1 una fórmula que quiero arrastrar (o pegar fórmulas) hasta la fila 15 que es donde hay datos.

Quiero que lo haga automático porque voy a utilizar esa macro en otras hojas en las que los datos son variable estando en unas rellenas hasta la 15, otras hasta la 20, etc.

1 Respuesta

Respuesta
2

H o l a:

Pon la siguiente macro en los eventos de Thisworkbook

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
'Por.Dante Amor
    Application.EnableEvents = False
    u = Sh.Range("C" & Rows.Count).End(xlUp).Row
    Sh.Range("A1").Copy Sh.Range("A2:A" & u)
    Application.EnableEvents = True
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro

Para que funcione en automático, deberás escribir la fórmula en la celda A1, luego escribir una valor en C1. Después cada que escribas un valor en la columna C, en automático se copiará la fórmula de A1 hasta la última celda de la columna C con datos.


' : )
'S aludos. Dante Amor. R ecuerda valorar la respuesta. G racias
' : )

Gracias pero no sale.

Realmente lo que quiero es una macro que lo haga, que al ejecutarla se arrastren las fórmulas hasta la ultima cuya columna c tenga datos

Ya lo he averiguado. Lo pongo por si a alguien le sirve.

With Range("c1", [c1].End(xlDown))
.Offset(0, -2).Formula = "= c1*2"
End With
End Sub

La macro anterior copia la fórmula si es que ya existe. Lo hice así porque tu comentario dice que la fórmula ya existe en la primera celda:

"

La cual arrastre la fórmula de la primera celda

"

Con la siguiente macro se crea la fórmula:

    With Range("A1:A" & [C1].End(xlDown).Row)
        .Formula = "=C1*2"
    End With

Si lo quieres en automático puedes poner la macro en los eventos de la hoja.

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas