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,
> 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
> 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.