UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

Esrogoz


Hola a todos. Soy nuevo en el foro. Espero que esta sea solo mi primera participación.

He estado buscando en este mismo foro y en internet, y no he encontrado solución para un problema que tengo en un libro de Excel que he creado.

Lo resumo:

Se trata de un libro de Excel 2010, con los doce meses del año (cada hoja es un mes). En la última hoja del libro tengo una tabla de datos para hacer estadísticas, con fórmulas que están vinculadas a cada una de las hojas del libro (de cada uno de los meses) y de donde toman los datos.

Lo que pretendo hacer es sustituir una hoja cualquiera del libro (cualquier mes como por ejemplo Agosto) por otra hoja que se llame exactamente igual, pero cuyo formato cambia un poco, de modo que no tenga que volver a escribir las fórmulas de la última hoja del libro, donde tengo el resumen de los datos, para referenciarlas de nuevo a esta nueva hoja que incorporo al libro con el mismo nombre de la que elimino.

He probado a hacerlo y aunque la nueva hoja se llame igual que la sustituida (ej: Agosto), las fórmulas de la hoja donde están los datos siguen queriendo buscar la que elimino y claro, al ya no estar da ERROR #¡REF!.

Alguna idea de como conseguirlo?

Muchas gracias a todos.

Sldos.

tyno


Hola Esrogoz, bien venido.
Creo que no vas evitar el hecho de que se rompan las referencias de las formulas porque justamente las estas eliminando. Una idea que se me ocurre es que copies las formulas y las pegues en una Hoja Auxiliar como texto o sin el signo =(igual) a modo de respaldo, de esta manera después de eliminar una Hoja e insertar la nueva  Hoja lo único que tendrías que hacer  es copiar y pegar las formulas de respaldo en lugar que corresponde. 
Por ejemplo supongamos que ne la Hoja2 tenemos esta formula: =SUMA(Hoja1!B3:B7), como se puede ver suma el rango B3:B7 de la Hoja1, entonces lo que se puede hacer es copiar y guardar esta formula de esta manera: SUMA(Hoja1!B3:B7), sin el signo igual, luego eliminamos la Hoja1 por lo que se genera el error ERROR #¡REF!,  entonces cuando necesitemos restaurar la formula que se daño, copiamos SUMA(Hoja1!B3:B7) y le anteponemos el signo igual. Esto hace que el procedimiento sea un poco mas rápido que acordarse cuales eran las referencias correctas y el hecho de ir a la formula y escribir cada una de las  referencias dañadas nuevamente. 
Como lo mencioné esto es una idea que tengo, otra alternativa mas compleja es obtener los resultados con macros en lugar de formulas. Las macros tienen la ventaja de que no hay formulas que se puedan dañar o borrar accidentalmente, una vez que se crean ya quedan funcionando.
Saludos.

Esrogoz


Hola tyno. Gracias por tu pronta respuesta. Eso que comentas de copiar en algún otro lado la fórmula y luego, una vez añadida la nueva hoja, volverla a poner en su sitio es precisamente lo que hago y es lo que no quiero hacer, ya que son muchísimas fórmulas a copiar y algunas de ellas muy grandes. Tarde mucho rato en restaurarlas todas. De ahí precisamente mi consulta. 

Te pongo un ejemplo. Esto que pego es solo  UNA FORMULA de una celda, y como estas hay muchísimas. 

=SUMAR.SI(AGOSTO!F9:F70;A128;AGOSTO!D9:D70)+SUMAR.SI(AGOSTO!I9:I70;A128;AGOSTO!G9:G70)
+SUMAR.SI(AGOSTO!L9:L70;A128;AGOSTO!J9:J70)+SUMAR.SI(AGOSTO!O9:O70;A128;AGOSTO!M9:M70)
+SUMAR.SI(AGOSTO!R9:R70;A128;AGOSTO!P9:P70)+SUMAR.SI(AGOSTO!U9:U70;A128;AGOSTO!S9:S70)
+SUMAR.SI(AGOSTO!X9:X70;A128;AGOSTO!V9:V70)+SUMAR.SI(AGOSTO!AA9:AA70;A128;AGOSTO!Y9:Y70)
+SUMAR.SI(AGOSTO!AD9:AD70;A128;AGOSTO!AB9:AB70)+SUMAR.SI(AGOSTO!AG9:AG70;A128;AGOSTO!AE9:AE70)
+SUMAR.SI(AGOSTO!AJ9:AJ70;A128;AGOSTO!AH9:AH70)+SUMAR.SI(AGOSTO!AM9:AM70;A128;AGOSTO!AK9:AK70)
+SUMAR.SI(AGOSTO!AP9:AP70;A128;AGOSTO!AN9:AN70)+SUMAR.SI(AGOSTO!AS9:AS70;A128;AGOSTO!AQ9:AQ70)
+SUMAR.SI(AGOSTO!AV9:AV70;A128;AGOSTO!AT9:AT70)+SUMAR.SI(AGOSTO!AY9:AY70;A128;AGOSTO!AW9:AW70)
+SUMAR.SI(AGOSTO!BB9:BB70;A128;AGOSTO!AZ9:AZ70)+SUMAR.SI(AGOSTO!BE9:BE70;A128;AGOSTO!BC9:BC70)
+SUMAR.SI(AGOSTO!BH9:BH70;A128;AGOSTO!BF9:BF70)+SUMAR.SI(AGOSTO!BK9:BK70;A128;AGOSTO!BI9:BI70)
+SUMAR.SI(AGOSTO!BN9:BN70;A128;AGOSTO!BL9:BL70)+SUMAR.SI(AGOSTO!BQ9:BQ70;A128;AGOSTO!BO9:BO70)
+SUMAR.SI(AGOSTO!BT9:BT70;A128;AGOSTO!BR9:BR70)+SUMAR.SI(AGOSTO!BW9:BW70;A128;AGOSTO!BU9:BU70)
+SUMAR.SI(AGOSTO!BZ9:BZ70;A128;AGOSTO!BX9:BX70)+SUMAR.SI(AGOSTO!CC9:CC70;A128;AGOSTO!CA9:CA70)
+SUMAR.SI(AGOSTO!CF9:CF70;A128;AGOSTO!CD9:CD70)+SUMAR.SI(AGOSTO!CI9:CI70;A128;AGOSTO!CG9:CG70)
+SUMAR.SI(AGOSTO!CL9:CL70;A128;AGOSTO!CJ9:CJ70)+SUMAR.SI(AGOSTO!CO9:CO70;A128;AGOSTO!CM9:CM70)
+SUMAR.SI(AGOSTO!CR9:CR70;A128;AGOSTO!CP9:CP70)+SUMAR.SI(AGOSTO!CU9:CU70;A128;AGOSTO!CS9:CS70)
+SUMAR.SI(AGOSTO!CX9:CX70;A128;AGOSTO!CV9:CV70)+SUMAR.SI(AGOSTO!DA9:DA70;A128;AGOSTO!CY9:CY70)
+SUMAR.SI(AGOSTO!DD9:DD70;A128;AGOSTO!DB9:DB70), fin

Como comprenderás, tener que andar copiando pegando no es lo suyo. Yo pensaba que si desactivaba el cálculo de fórmulas automático, quitaba la hoja que quería eliminar, la sustituía por la nueva con el mismo nombre, al volver a hacer el cálculo de las fórmulas, la referencia, por tratarse de una hoja con el mismo nombre, no cambiarían, pero se ve que las fórmulas están vinculadas a algo más que el nombre de las hojas. De este modo te da error y hay que introducir manualmente el nombre de cada hoja (en este caso de cada mes) en cada fórmula de nuevo... una lata. 

Lo de sustituir por una macro que se ejecute en tiempo real  y haga aparecer el resultado equivalente a la fórmula anterior en cada celda donde tengo las fórmulas, no se como se hace, aunque alguna cosilla si he hecho con macros. Me podrías poner un ejemplo?

Sldos y gracias otra vez.

tyno


Ta paso un archivo con un ejemplo simple, donde una macro suma el rango A1:A100 de la Hoja AGOSTO.

Ejecuta el boton de la Hoja1 y tendras un resultado. Luego elimina la Hoja AGOSTO y cuando ejecutes el boton obviamente no va a dar ningun resultado porque no hay mas Hoja AGOSTO, inserta una nueva Hoja AGOSTO y agregale algunos valores en la columna A mas precisamente entre la fila 1 y 100, ejecuta el boton de la Hoja1 y nuevamente se obtienen los resultados.

Si utilizas Excel 2003 quizás hay que habilitar el uso de macro.
Archivos
macro x formula.xls
No tienes los permisos para descargar los archivos.
(28 KB)

Esrogoz


Gracias. Probaré a hacerme una macro a ver si lo consigo. 

Muchas gracias de nuevo.

Sldos.

tyno


Ok, cualquier cosa si te resulta muy complicado entonces podrías pasarme el archivo tal cual lo estarías utilizando, no es necesario que tenga datos privados pero si parecidos a los que vas a utilizar. Tendrías que explicar bien como quieres que funcione todo. El archivo no debe pesar mas de 195kb, sino comprimirlo como ZIP, y si aun queda muy pesado lo puedes subir a Dropbox y pasar el link o sino me lo envías a mi correo. Saludos

tornez2


Buen día
si quieres una copia igual a la que vas a sustituir por que no usas la opción que que te da poniendo el mouse visualizar el menú flotante y seleccionar mover o copiar y le das copiar en el mismo libro si tu hoja se llama agosto te va aparecer otra con agosto1 no se si es lo que buscas

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.