Copia de Datos

Walker397

New Member
Joined
Aug 29, 2011
Messages
5
<table class="tablevacia"><tbody><tr><tr><td width="5%">
</td><td>Hola a todos!!!

Normalmente yo trabajo con libro de excel (Calc V1.xls). Dentro de ese archivo hay otras hojas, por ejemplo Costos (cargados por otro sector) y una vez terminada la carga de Costos me lo envian a mi para cualcular dentro de la hoja (Riesgo) el valor correspondiente.

Dentro de la hoja Riesgo, hay 4 columnas Riesgo, Tipo, Moneda y Subtotal
En la fila de abajo asociados a las 4 columnas RiesgoCosto un texto común, una lista desplegable (Garantia, Repuesto, Otro), una fórmula asociado a la moneda =0,01*Precio!$C$7 y por ultimo una fómula asociada al Subtotal =0,01*Precio!$B$7

Mi problema aparece cuando tengo un archivo en V1 y por orden superior me dicen que debo migrarlo a V4 digamos, donde hay modificaciones asociadas a los índices de costos.
Entonces yo abro el archivo Calc V1.xls con los datos llenos, me posiciono en la hoja de Riesgo y copio la toda la fila correspodiente.
Luego abro el archivo Calc V4.xls que esta vacio, me posiciono en la hoja de Riesgo de la V4 y pego la fila.

Al pegar RiesgoCosto que es un texto común OK, una lista desplegable (Garantia, Repuesto, Otro) OK.
Pero el problema aparece con las formulas quedan referidas al otro archivo; el campo asociado a la moneda =0,01*'[Calc V1.xls]Precio'!C7 y por ultimo una fómula asociada al Subtotal =0,01*'[Calc V1.xls]Precio'!B7

Quiero saber una forma de evitar que al pegar los datos queden referidos al Calc V1.xls y no tener que editarlos uno por uno.
Creo que esto se llama referencia absoluta a una hoja, y la misma es implicita.

Espero haber sigo claro en mi explicación

Desde ya muchas gracias
Saludos
Walker </td></tr></tr></tbody></table>
 

Excel Facts

Square and cube roots
The =SQRT(25) is a square root. For a cube root, use =125^(1/3). For a fourth root, use =625^(1/4).
Hola Walker397,

Una solución sería hacer lo siguiente:

1-) Copias del libro Calc V1.xls las formulas deseadas en Calc V4.xls, asumiendo son del tipo "0,01*'[Calc V1.xls]Precio'!C7";
2-) Pegar las formulas en la hoja y rango deseado de Calc V4.xls;
3-) Ctrl+B o Ctrl+F dependiendo el idioma, para abrir el cuadro de búsqueda; y,
4-) En "Buscar:" escribir '[Calc V1.xls]' o simplemente [Calc V1.xls] dependiendo el caso, y en "Reemplazar con:" dejar vacio.

Asegurarse que en la opción "Buscar dentro de:" esté seleccionado "Fórmulas"

Espero ayude.

Saludos cordiales.
 
Upvote 0
cgcamal gracias por tu rápida rta.

Asi es la forma en la que lo estoy solucionando cuando son muchas celdas.

Cuando son pocas celdas hago lo siguiente, me posiciono en la celda de
"Calc V1.xls" presiono F2 selecciono el texto que esta en la "Formula bar" (perdón pero el excel lo tengo en inglés :mad:) Ctrl+C para copiar la selección. Luego voy a Calc V4.xls me posiciono en la celda destino y presiono F2 y pego lo tengo Ctrl+V

Esta resuelto... pero me pregunto si se podria hacer con una Macro es decir
Con dos pasos:
1) Seleccione el rango de celdas
2) Indique donde pegar el contenido previamente seleccionado

Y haga el haga el reemplazo de manera automática, en definitiva el nombre del archivo origen tiene que ser una propiedad y/o atributo, que podamos conocer.

Me animo a encarar una solucion con VBA pero necesito ayuda....
Ahora hago un post preguntando por algun tutorial completo... o ayuda para hacerlo con macros.

Saludossss nos vemos
Walker
 
Upvote 0
Hola Walker,

Para poder automatizarlo, habría que saber cuales son los rangos a copiar y el rango donde debe ser pegado,
en qué hoja está y hacia qué hoja va. En pocas palabras, como es la entrada y cual es la salida deseada.

Si pudieras subir un archivo de muestra sería mucho mejor, podés poner el link
de skydrive o algun servidor de compartimiento gratuito de archivos.

Saludos cordiales
 
Upvote 0
Hola Walker,

Asumiendo que los libros esten en la misma carpeta probate colocando el siguiente código en cualquiera de los dos libros.


Code:
Sub Copiar_Fila_Entre_Archivos()
Dim RiesgoCV1 As Worksheet, RiesgoCV4 As Worksheet

Set RiesgoCV1 = Workbooks("Calc V1.xls").Sheets("Riesgo")
Set RiesgoCV4 = Workbooks("Calc V4.xls").Sheets("Riesgo")

RiesgoCV4.Rows("3") = RiesgoCV1.Rows("3").Formula

End Sub
Espero ayude.

Saludos cordiales.
 
Upvote 0
buenísimo !!!

Consulta... Formula es una propiedad de Rows("3")
Como sé que devuelve un tipo de dato que corresponde con RiesgoCV4.Rows("3")???

Me parece que necesito repasar bastante VBA, algun libro o tutorial para recomendar???

Desde ya muchas gracias
Saludos
Walker
 
Upvote 0
Consulta... Formula es una propiedad de Rows("3")
Según la ayuda de Excel, es una propiedad de un objeto tipo Range.

Range.Formula (propiedad) Devuelve o establece un valor de tipo Variant que representa la fórmula del objeto
en notación de estilo A1 y en el lenguaje de la macro. Sintaxis
expresión.Formula
expresión Variable que representa un objeto Range.

Como sé que devuelve un tipo de dato que corresponde con RiesgoCV4.Rows("3")???
Bueno, es algo que se puede comprobar al ver el resultado en "Riesgo" de Calc V4.xls después de ejecutar la línea,
Code:
RiesgoCV4.Rows("3") = RiesgoCV1.Rows("3").Formula
Esta línea iguala el contenido de la línea 3 de Calc V1.xls a la misma línea del Calc V4.xls. Es como copy and paste,
pero pegando o trasladando sólo las fórmulas, por eso el ".Formula" y no ".Value" o ".Address", etc.

Code:
Me parece que necesito repasar bastante VBA, algun libro o tutorial para recomendar???
Realmente no sabría recomendarte uno, la verdad al no disponer de un libro o tutorial lo que me ha servido bastante es buscar temas
especificos cuando los necesito en internet en el sitio que se encuentre, una muy buena es:

http://www.cpearson.com/Excel/MainPage.aspx

y lo que más me ha servido es que he ido aprendiendo de las respuestas de los expertos en este foro o en otros como
este y se aprende más cuando se intenta y no se logra, luego ir viendo cómo es la forma hasta que vas agarrando
fundamentos al ver diferentes formas de resolver una misma situación.

Espero ayude

Saludos cordiales.

<table id="topTable" width="100%"> <tbody><tr id="headerTableRow2"> <td align="left">
</td></tr></tbody></table>
 
Upvote 0
Me parece que tenes razon hay que mandarse y probar.
Por desgracia yo siempre quiero saber todo y despues ponerme a probar. hay que probar y mientras uno prueba aprende

Gracias por los consejos
Abrazo y disculpa la demora
 
Upvote 0

Forum statistics

Threads
1,215,368
Messages
6,124,521
Members
449,169
Latest member
mm424

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top