Macro para copiar celdas de un workbook a otro pero no en un rango

02/10/2009 - 17:31 por aima80 | Informe spam
Buenas tardes,

Necesito su ayuda para pegar unas celdas específicas de un workbook a
otro. Los dos libros son exactamente iguales y las celdas origen y
destino son las mismas, sin embargo, el problema que tengo es que
están en diversas filas y en columnas salteadas.
Puedo identificar las mismas a través de la primera columna, porque lo
que tengo que copiar como valores son las líneas que hayan sido
identificadas como "Coste fijo", "Coste Variable", "Beneficio" , etc:
En el ejemplo que agrego aquí (supongan que las columnas C, D y E
tienen datos también, necesito pegar como valores los datos de Coste
fijo, variable y Beneficio, en las mismas líneas de este workbook a
otro workbook sólo de las columnas B, D y E
A B C
D E
1Q 1Q Plan 2Q 2Q
Plan
Coste fijo 100
XX 100
YYY 200
Coste variable 80
XX 10
XX 30
Coste fijo 90
YY 700
Beneficio 7
Beneficio -1

Muchas gracias por su ayuda,

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
03/10/2009 - 03:19 | Informe spam
hola (...), ?????

Necesito... pegar unas celdas especificas de un workbook a otro.
Los dos libros son exactamente iguales y las celdas origen y destino son las mismas
sin embargo, el problema que tengo es que están en diversas filas y en columnas salteadas.



=> esta parte se contradice y es probable que las celdas origen y destino YA NO sean "las mismas"
lo que si es seguro (segun tu propia descripcion) es que ambos libros NO SON "exactamente iguales" (?)

Puedo identificar las mismas a traves de la primera columna
porque lo que tengo que copiar como valores son las lineas que hayan sido identificadas
como "Coste fijo", "Coste Variable", "Beneficio" , etc:



=> y... una vez "identificadas", exactamente de donde y a donde requieres copiarlas (?)

En el ejemplo que agrego aqui (supongan que las columnas C, D y E tienen datos tambien
necesito pegar como valores los datos de Coste fijo, variable y Beneficio
en las mismas lineas de este workbook a otro workbook solo de las columnas B, D y E
A B C
D E
1Q 1Q Plan 2Q 2Q
Plan
Coste fijo 100
XX 100
YYY 200
Coste variable 80
XX 10
XX 30
Coste fijo 90
YY 700
Beneficio 7
Beneficio -1



=> no se si "como pasaron" los datos de tu ejemplo es (exactamente) como "querias que se vieran" (?)
y sigue siendo confuso si ambos libros son (o no) "exactamente iguales" (?)
y/o por que no te sirve simplemente copiar la hoja (o sus datos) de un libro a la hoja del otro libro (?)
y/o cual es la causa, razon o motivo por el que algunos datos no son iguales en ambos libros (?)

saludos,
hector.
Respuesta Responder a este mensaje
#2 aima80
03/10/2009 - 15:02 | Informe spam
On 3 oct, 03:19, "Héctor Miguel"
wrote:
hola (...), ?????

> Necesito... pegar unas celdas especificas de un workbook a otro.
> Los dos libros son exactamente iguales y las celdas origen y destino son las mismas
> sin embargo, el problema que tengo es que están en diversas filas y en columnas salteadas.

=> esta parte se contradice y es probable que las celdas origen y destino YA NO sean "las mismas"
     lo que si es seguro (segun tu propia descripcion) es que ambos libros NO SON "exactamente iguales" (?)

> Puedo identificar las mismas a traves de la primera columna
> porque lo que tengo que copiar como valores son las lineas que hayan sido identificadas
> como "Coste fijo", "Coste Variable", "Beneficio" , etc:

=> y... una vez "identificadas", exactamente de donde y a donde requieres copiarlas (?)



> En el ejemplo que agrego aqui (supongan que las columnas C, D y E tienen datos tambien
> necesito pegar como valores los datos de Coste fijo, variable y Beneficio
> en las mismas lineas de este workbook a otro workbook solo de las columnas B, D y E
> A B C
> D E
>  1Q 1Q Plan 2Q 2Q
> Plan
> Coste fijo 100
> XX 100
> YYY 200
> Coste variable 80
> XX 10
> XX 30
> Coste fijo 90
> YY 700
> Beneficio 7
> Beneficio -1

=> no se si "como pasaron" los datos de tu ejemplo es (exactamente) como "querias que se vieran" (?)
     y sigue siendo confuso si ambos libros son (o no) "exactamente iguales" (?)
     y/o por que no te sirve simplemente copiar la hoja (o sus datos) de un libro a la hoja del otro libro (?)
     y/o cual es la causa, razon o motivo por el que algunos datos no son iguales en ambos libros (?)

saludos,
hector.



Hola, tienes razón en tus comentarios, y mi ejemplo no salió como
pensaba...
Cuando dije que los libros eran iguales me refería al formato, orden
de filas y columnas.
Una vez identificadas las celdas a copiar, debo hacerlas sustituyendo
lo que haya en el libro 2 en la misma celda (de la celda a2 del libro
1 a la celda a2 del libro 2) No puedo copiar la hoja entera porque no
quiero eliminar unos controles y fórmulas que hay en el libro 2
Gracias de antemano
Respuesta Responder a este mensaje
#3 Héctor Miguel
04/10/2009 - 07:05 | Informe spam
hola (...), ?????

Cuando dije que los libros eran iguales me refería al formato, orden de filas y columnas.
Una vez identificadas las celdas a copiar, debo hacerlas sustituyendo lo que haya en el libro 2 en la misma celda
(de la celda a2 del libro 1 a la celda a2 del libro 2)
No puedo copiar la hoja entera porque no quiero eliminar unos controles y fórmulas que hay en el libro 2 ...



suponiendo que "las celdas" (en cada libro) estan en la "hoja1" (de cada libro) -???-
y que donde encuentre en la columna A (del libro1) ya sea: "Coste fijo", "Coste Variable", "Beneficio" (dejo pendiente el "etc.")
lo que necesitas es "pasar" al libro2 las columnas B, D y E (segun tu ejemplo anterior)...

podrias emplear una macro +/- como la siguiente (modifica donde corresponda y/o comenta detalles adicionales):

sub actualiza()
dim fila as integer
with workbooks("libro1.xls").worksheets("hoja1")
for fila = 2 to .range("a65536").end(xlup).row
select case lcase(.range("a" & fila))
case "coste fijo", "coste variable", "beneficio"
workbooks("libro2.xls").worksheets("hoja1").range("b" & fila).value = .range("b" & fila).value
workbooks("libro2.xls").worksheets("hoja1").range("d" & fila).resize(, 2).value = .range("d" & fila).resize(, 2).value
end select
next
end with
end sub

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida