Quiero pasar datos de una hoja a otra con VBA pero me copia las fórmulas del vinculo más no los valores

Explico la estructura del archivo:

- En la Hoja 1:una celda que tiene un vinculo a la Hoja 2, que es el resultado de una operación lo que me muestra ese resultado en la Hoja 1 actualizado constantemente. Y un botón con macro VBA que me copia y me pega el dato de esa celda en una específica de la Hoja 3

- En la hoja 2: tengo el dato (resultado) que se mostrará vinculado en la celda de la Hoja1 con =ColumnaCelda

- En la hoja 3: Se pega el resultado de la celda copiada con el botón (macro VBA) de la Hoja 1

EL problema esta en que como el valor de la celda de la Hoja 1 proviene de un dato vinculado, al pegarlo en la Hoja 3 me sale 0 (cero) y necesito es que me copie el valor.

1 Respuesta

Respuesta
1

H0la Jesús:

Supongamos que el dato está en la celda A1 de la hoja 1 y lo quieres copiar a la celda D1 de la hoja 3, el código para realizar la copia sería:

Sheets("Hoja3").Range("D1").Value = Sheets("Hoja1").Range("A1").Value

Cométame si eso resuelve tu problema.

S@lu2

Muchas Gracias Isaac! 

en ese punto lo estaba resolviendo de esta manera:

Sheets("Hoja2").Range("J7:J10").Copy Destination:=Sheets("Hoja1").Range("D7")

 sin embargo la que me dices es mejor, pero no me lo actualiza en la hoja 1 cuando el valor cambia en la hoja 2, sabes la manera para que al vincular esas dos celdas al actualizarse la raíz se actualice la celda vinculada en la hoja 1? no se si me explico, quedo atento a tu respuesta. Gracias!!

Intenta de esta manera

Sheets("Hoja3"). Range("D1").Formula = Sheets("Hoja1"). Range("A1"). Formula

S@lu2

Ojo, que tú lo copias de una celda y lo pegar en un rango de celdas, no sé si lo que quieres es que se replique la fórmula en cada celda o que cada celda tome la referencia que corresponde a su fila.

Me comentas!

Gracias Isaac!

Te cuento que el código si pasa el dato pero no se actualiza en la hoja 1 cuando se cambia en las hoja 2. No se como podría hacer para pasarte el archivo de muestra para que veas más la idea.

Listo Isaac!

Ya logre resolverlo para que actualizara antes de copiar, lo hice de la siguiente manera:

Sub programarmacros()
Tiempo = Now + TimeValue("00:00:01")
Application.OnTime Tiempo, "grabar_datos", , True
End Sub

Así los datos se actualizan antes de copiarlos, Gracias por tu tiempo!

Qué bueno que lo hayas resuelto.

Hasta la vista!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas