En este grupo En todos

Foro de Excel

Copiar daos de un fichero excel a otro

chus
Cantabria, España
Escrito por Chus Vaque Perez
el 16/04/2009

Buenas noches a todos

Tengo un problema y me gustarçia que alguien me pudiese ayudar con ello.

Necesito copiar los datos de diferentes celdas de un fichero excel a otro, pero llamando al fichero de los datos desde la hoja destino. Es decir:

Fichero con datos a copiar se llama Ficha1, pero tenemos n ficheros, Ficha2, Ficha3... Fichan

Ahora estamos en el fichero destino Resumen de fichas y en la columna A ponemos los nombres de todos los ficheros de los cuales queemos copiar los datos, Ficha1, Ficha2, Ficha3.. Fichan, de manera que en la columna B del fichero resumen nos copie el contenido de las celdas A1 de los diferentes ficheros origen. He intentado con B1="[concatenar(a1;". Xls")]Hoja1"! $a$1, pero no hay forma.

Gracias por adelantado

Saludos

Antonio G
Ingeniería civil informática u. de con...
Escrito por Antonio G
el 17/04/2009

Hola Chus. Usa la función INDIRECTO:
=INDIRECTO(CONCATENAR("[";A1;". XLS";"]"; "HOJA1! "; "$A$1"))

Mira en este enlace que proponen una solución a través de un complemento:
http://www.ddtrada.cl/Modulo5. Htm

Espero te sirva.

Chus Vaque Perez
Cantabria, España
Escrito por Chus Vaque Perez
el 17/04/2009

Gracias por la respuesta. Algo estoy haciendo mal porque me da error. Nop obstante seguire intentando con el enlace propuesta.

Saludos

Antonio G
Ingeniería civil informática u. de con...
Escrito por Antonio G
el 17/04/2009

Chus. La función INDIRECTO devuelve una referencia especificada como una cadena de texto (busca la definición exacta en la misma ayuda de excel), por lo que lo que tienes que hacer es armar la cadena completa dentro de los paréntesis de la función.

Debes observar, además, que Excel necesita apostrofos para algunos nombres de hojas o libros (generalmente los que tienen espacios en blanco).

Para verificar si la cadena contiene una ref correcta, escribe en otra celda la misma fórmula pero sin la función INDIRECTO, esto te debiera devolver sólo la cadena.

Chus Vaque Perez
Cantabria, España
Escrito por Chus Vaque Perez
el 19/04/2009
" Chus. La función INDIRECTO devuelve una referencia especificada como una cadena de texto (busca la definición exacta en la misma ayuda de excel), por lo que lo que tienes que hacer es armar la cadena completa dentro de los paréntesis de la función.

Debes observar, además, que Excel necesita apostrofos para algunos nombres de hojas o libros (generalmente los que tienen espacios en blanco).

Para verificar si la cadena contiene una ref correcta, escribe en otra celda la misma fórmula pero sin la función INDIRECTO, esto te debiera devolver sólo la cadena.


"

por Antonio G. (Abril 2009)

Buenos días Antonio G.

Los pasos que me indicas los he realizado pero sin obtener el resultado esperado, continua dando error. He intentado realizar estos pasos de forma directa y lo que no entiendo es como poniendo entre corchetes el nombre del fichero con la función concatenar, me da también error, igual resultado que usando la función indirecto. Estoy pensando según te escribo en utilizar el grabador de macros y sustituier el nombre de la variable fichero por el valor de una celda a ver que ocurre, método de ensayo y error, que poco avanza la técnica.

Espero tus comentarios.

Saludos

Antonio G
Ingeniería civil informática u. de con...
Escrito por Antonio G
el 19/04/2009

Chus, asegúrate que los Libros Ficha1,... FichaN estén abiertos. En el Libro de Resumen en la celda A1 escribe el nombre Ficha1 y en la celda B1 pega esta fórmula:

=INDIRECTO(CONCATENAR("[";A1;". Xls]";"Hoja1! $A$1"))

Sin la función INDIRECTO, es decir, =CONCATENAR("[";A3;". Xls]";"Hoja1! $A$1"), nos da como resultado la siguiente cadena, que corresponde a la ruta completa de la celda del libro Ficha1:

[Ficha1. Xls]Hoja1! $A$1

Nos cuentas si tue funciona.

Chus Vaque Perez
Cantabria, España
Escrito por Chus Vaque Perez
el 21/04/2009
" Chus, asegúrate que los Libros Ficha1,... FichaN estén abiertos. En el Libro de Resumen en la celda A1 escribe el nombre Ficha1 y en la celda B1 pega esta fórmula:

=INDIRECTO(CONCATENAR("[";A1;". Xls]";"Hoja1! $A$1"))

Sin la función INDIRECTO, es decir, =CONCATENAR("[";A3;". Xls]";"Hoja1! $A$1"), nos da como resultado la siguiente cadena, que corresponde a la ruta completa de la celda del libro Ficha1:

[Ficha1. Xls]Hoja1! $A$1

Nos cuentas si tue funciona.
"

por Antonio G. (Abril 2009)


Buenas tardes

Sencillamente perfecto. Como se suele decir, "despues de verle los... Al toro, macho seguro". El problema estaba en que no consideré tener los ficheros abiertos, en cuanto los cierras aparece el error.

Gracias de nuevo

Antonio G
Ingeniería civil informática u. de con...
Escrito por Antonio G
el 21/04/2009

Excelente, gracias por avisar.
Saludos.

Responder

Debe cumplir las normas de contenido y normas de conducta

Al escribir en el debate:

  1. Repasa la ortografía y no escribas en formato SMS.
  2. Lee el texto dos veces antes de publicar.
  3. No escribas todo en mayúsculas o negritas.