Copiar mediante macro una formula toda la columna

En una hoja de un libro tengo el la fila 3 columna f una fórmula que hace referencia a las celda b3-b2, necesito crear una macro que me copie esa fórmula en toda la columna hasta la ultima fila que contenga datos y que me haga lo mismo en la siguiente hoja hasta la ultima.

Si alguien puede ayudarme...

1 Respuesta

Respuesta
3

H o l a:

Te anexo la macro.

Cambia en la macro "Hoja1" por el nombre de la hoja que contiene la fórmula.

Sub CopiarFormula()
'Por.Dante Amo
    Set h1 = Sheets("Hoja1")
    h1.Range("F3").Copy
    For Each h In Sheets
        u = h.Range("B" & Rows.Count).End(xlUp).Row
        h.Range("F3:F" & u).PasteSpecial xlAll
    Next
    MsgBox "Fin"
End Sub

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

Muchísimas gracias Dante Amor, no puedo probrarla aun por que tengo problemas con el archivo a la hora de insertar hojas para filtrar datos, te lo voy a exponer a ti por si pudieras ayudarme ya que me he quedado bloqueada y no consigo salir para delante. El libro del que te hablo es una hoja principal que la llamo yo donde tondo todos los datos y a partir de ahí tengo que sacar tantas hojas como necesito según el nombre de habitación para que me vuleque después cada fila a su habitación correspondiente y hacer un estudio del numero de rondas que se pasan en cada habitación, para esto tengo en la hoja principal tal y como te comento, en la columna A ya filtrados y ordenados una lista de habitaciones de la cual y hasta que se encuentre con una celda vacía, me inserte tantas hojas como datos hay en esa fila, respetando la A1 que es el titulo de la lista y no quiero que lo cambie. Lo tengo hecho en dos macros diferentes, en la primera inserto 80 hojas (cosa que tendré que cambiar cada mes ya que no siempre habrá 80 datos, algunas veces habrá menos) y dos una vez creadas les cambio el nombre tan y como te comento, el problema que me surge es que me cambia también el nombre de la hoja en la que tengo los datos, es decir en la primera hoja y necesito dejar esa hoja tal y como esta y empiece a renombrar con el nombre que encuentre en la celda A2 a la vez que me crea la hoja, después otra hoja con el nombre que haya en la celda A3 de la hoja principal, después otra hoja con el nombre que haya en la A4... y así hasta que no encuentre datos, evitando crear más hojas de las necesarias,¿podrías ayudarme? Si es necesario te mando la macro que tengo y me dices que estoy haciendo mal, porque estoy atascada ahí y no puedo seguir... mil gracias

Te vuelvo a escribir para comentarte sobre la macro que me dijiste para copiar una fórmula a toda la columna y posteriormente a todas las hojas. La macro que me adjuntas efectivamente me copia la fórmula a todas las hojas pero no se copia en la misma hoja hasta el ultimo valor que encuentre y en las hojas restante solo se copia en las tres primera filas no a partir de la tercera, ¿si no me explico dime y te mando el archivo... mil gracias de nuevo... sabes que es lo que tendría que cambiar? La columna en cuestión después de hacer algunas modificaciones seria la J3, ahí es donde inserto la fórmula y quiero que me arrastre a fórmula hasta el ultimo valor que encuentre en fila y arrastre en la misma columna claro, y que haga lo mismo en el resto de hojas...

Envíame tu archivo y dime en dónde está tu fórmula.

Mi correo [email protected]

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

Te acabo de mandar el archivo, muchas gracias de antemano por toda tu ayuda, soy bastante principiante en esto y cualquier ayuda es más que grata.

Un saludo

Macro actualizada:

Sub CopiarFormula()
'Por.Dante Amor
    Set h1 = Sheets("A01")
    h1.Range("I3").Copy
    For Each h In Sheets
        u = h.Range("B" & Rows.Count).End(xlUp).Row
        h.Range("I3:I" & u).PasteSpecial xlAll
    Next
    MsgBox "Fin"
End Sub

Para 3 fórmulas

Sub CopiarFormula()
'Por.Dante Amor
    Set h1 = Sheets("A01")
    h1.Range("G3:I3").Copy
    For Each h In Sheets
        u = h.Range("B" & Rows.Count).End(xlUp).Row
        h.Range("G3:G" & u).PasteSpecial xlAll
    Next
    MsgBox "Fin"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas