Problema con inserta fórmula desde otra hoja

Vengo realizando una macro donde me inserta fórmulas en un rango dinámico usando las siguientes líneas en un hoja funciona sin problemas.

With Range(H2).CurrentRegion
UltimaFila = .Rows(.Rows.Count).Row
Range("C4:C" & UltimaFila).Formula = "=OFFSET(H$2;ROUNDDOWN((ROW(H3)-3)/3;0);0)"
Range("C4:C" & UltimaFila).Value = Range("C4:C" & UltimaFila).Value
End With

Pero ahora necesito realizar la misma fórmula pero usando como referencia otra hoja con valores, coloco la siguiente fórmula pero no resulta dando error donde se resalta con negro, tengo 2 hojas una de ellas se llama consolidado en donde se tiene los valores no siempre son el mismo rango por eso utilizo currentregion; seguido tengo otra hoja concar en donde utilizo esta macro para que inserte las fórmulas basando en los datos de la hoja consolidado pero da error marcándome en negro.

With Worksheets("consolidado").Range(H2).CurrentRegion

UltimaFila = .Rows(.Rows.Count).Row

Worksheets("concar").Range("C4:C" & UltimaFila).Formula = "=OFFSET(Consolidado!H$2;ROUNDDOWN((ROW(Consolidado!H3)-3)/3;0);0)"
'Worksheets("concar").Range("C4:C" & UltimaFila).Value = Worksheets("concar").Range("C4:C" & UltimaFila).Value
End With

1 Respuesta

Respuesta
1

¿Ya intentaste poner el h2 entre comillas?, es decir range("h2"). Currentregion

¡Gracias! Tenias razón no me percate de las comillas pero me he dado cuenta que la fórmula que utilizo debería de repetir el valor de la hoja consolidado 3 veces cada celda pero sin embargo solo lo repite la misma cantidad de valores ejemplo: en la hoja consolidado tengo 6 valores y en la hoja concar se repetí 3 veces los valores pero solo hasta llevar la misma cantidad de valores 6 y luego los demás y no los cuenta y debería de darme 18 resultado ya que se debe de repetir 3 veces cada valor en la otra hoja, colo la fórmula que utilizo y una imagen donde esta los valores de la hoja consolidado y el resultado con la fórmula y lo el valor que se desea obtener.

With Worksheets("consolidado").Range("H2").CurrentRegion

UltimaFila = .Rows(.Rows.Count).Row
Range("C4:C" & UltimaFila).Formula = "=OFFSET(Consolidado!H$2,ROUNDDOWN((ROW(Consolidado!H3)-3)/3,0),0)"
Range("C4:C" & UltimaFila).Value = Range("C4:C" & UltimaFila).Value
End With

Prueba esta macro

Sub test2()
Set h1 = Worksheets("consolidado")
Set H2 = Worksheets("concar")
FILAS = h1.Range("h2").CurrentRegion.Rows.Count * 3
With H2.Range("C4")
    .Resize(FILAS, 1).Formula = "=OFFSET(Consolidado!H$2,ROUNDDOWN((ROW(Consolidado!H3)-3)/3,0),0)"
    .Rows(FILAS + 1) = WorksheetFunction.Count(H2.Range("C4").Resize(FILAS, 1))
End With
End Sub

¡Gracias! si funciona bien con esta macro estoy obviando la parte de .Rows ya que no es necesario por ahora pero no se si te pasara a ti pero cuando termina de hacer el conteo al final agrega 3 ceros consecutivos pero no hay valor ejemplo según la imagen termina en 6 agrega 3 veces 6 al final como se desea pero al final también agrega 3 ceros no se porque.

6

6

6

0

0

0

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas