Nombre de la hoja variable en una fórmula
Resuelto
alex141077
Mensajes publicados
52
Estado
Miembro
-
alex141077 Mensajes publicados 52 Estado Miembro -
alex141077 Mensajes publicados 52 Estado Miembro -
Hola,
Le solicito un pequeño empujón porque, a pesar de mis intentos, no encuentro la solución...
Me gustaría hacer evolucionar mi software y poder cambiar el nombre del libro o crear una nueva hoja con un nuevo libro sin tener que copiar y modificar todas las fórmulas, ya que hay realmente muchas. Hasta ahora, tomaba celda por celda para modificar las fórmulas, lo que me lleva muchísimo tiempo.
Por ejemplo, con esta fórmula:
Nombre del libro: [Caravelles.xls]CAR 3
Nombre del nuevo libro: [Grillons.xls]Grillons D1
¿Cómo puedo cambiar el nombre sin tener que modificar todas las fórmulas manualmente en el futuro?
=SI(OU(NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Régime'!$B$6)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Régime'!$B$7)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Régime'!$B$8)=1);'[Caravelles.xls]CAR 3'!F$11;'[Caravelles.xls]CAR 3'!F$11+'[Caravelles.xls]CAR 3'!F$24)+F45+F49
También he intentado con esta fórmula "INDIRECT" insertando el nombre del libro en una celda, pero me da "Ref#"...
Lo que da esto con el nombre del libro en "N2", pero no funciona:
=SI(OU(NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$6)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$7)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$8)=1);INDIRECT(N2&"!F$10");INDIRECT(N2&"!F$10")+INDIRECT(N2&"!F$16")+SI(OU(NB.SI(Base_SPoisson;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$6)=1;NB.SI(Base_SPoisson;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$7)=1;NB.SI(Base_SPoisson;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$8)=1);0;INDIRECT(N2&"!F$22"))+F47+F51)
Gracias de antemano por su ayuda
Configuración: Windows / Chrome 81.0.4044.129
Le solicito un pequeño empujón porque, a pesar de mis intentos, no encuentro la solución...
Me gustaría hacer evolucionar mi software y poder cambiar el nombre del libro o crear una nueva hoja con un nuevo libro sin tener que copiar y modificar todas las fórmulas, ya que hay realmente muchas. Hasta ahora, tomaba celda por celda para modificar las fórmulas, lo que me lleva muchísimo tiempo.
Por ejemplo, con esta fórmula:
Nombre del libro: [Caravelles.xls]CAR 3
Nombre del nuevo libro: [Grillons.xls]Grillons D1
¿Cómo puedo cambiar el nombre sin tener que modificar todas las fórmulas manualmente en el futuro?
=SI(OU(NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Régime'!$B$6)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Régime'!$B$7)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Régime'!$B$8)=1);'[Caravelles.xls]CAR 3'!F$11;'[Caravelles.xls]CAR 3'!F$11+'[Caravelles.xls]CAR 3'!F$24)+F45+F49
=SI(OU(NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$6)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$7)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$8)=1);'[Caravelles.xls]CAR 3'!F$10;'[Caravelles.xls]CAR 3'!F$10+'[Caravelles.xls]CAR 3'!$F$16)+SI(OU(NB.SI(Base_SPoisson;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$6)=1;NB.SI(Base_SPoisson;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$7)=1;NB.SI(Base_SPoisson;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$8)=1);0;'[Caravelles.xls]CAR 3'!$F$22)+F47+F51
También he intentado con esta fórmula "INDIRECT" insertando el nombre del libro en una celda, pero me da "Ref#"...
Lo que da esto con el nombre del libro en "N2", pero no funciona:
=SI(OU(NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$6)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$7)=1;NB.SI(BSP1;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$8)=1);INDIRECT(N2&"!F$10");INDIRECT(N2&"!F$10")+INDIRECT(N2&"!F$16")+SI(OU(NB.SI(Base_SPoisson;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$6)=1;NB.SI(Base_SPoisson;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$7)=1;NB.SI(Base_SPoisson;'C:\Users\Alex\Desktop\SEMAINE 16\[Menu.xls]Menu Normal'!$B$8)=1);0;INDIRECT(N2&"!F$22"))+F47+F51)
Gracias de antemano por su ayuda
Configuración: Windows / Chrome 81.0.4044.129
3 respuestas
-
Hola
con INDIRECTO, asegúrese de que su celda de referencia contenga correctamente el nombre del libro con todos los signos que deben rodearlo en la fórmula y que el texto traduzca bien la dirección completa
por ejemplo, si desea reemplazar
'[Caravelles.xls]CAR 3'
por un archivo zzzz.xls, escriba bien en N2
'[zzzz.xls]CAR 3'!
o si solo pone zzzz en N2 utilice en la fórmula:
INDIRECTO("'["&N2&".xls]CAR3'!F11")
crdlmnt
--
La calidad de la respuesta depende sobre todo de la claridad de la pregunta, ¡gracias!-
Gracias por tu ayuda...
ok, funciona con "'[Caravelles.xls]CAR 3'"... pero el problema es que si mi libro no está abierto, no funciona!
¿Se puede eludir el problema con "ÍNDICE" o ("IndirectExt" pero por macro) aunque la dirección completa también puede cambiar si trabajo en otro ordenador, por ejemplo?
Con INDIRECTO(N2&"!F$22") siempre obtengo "Ref#"
-
-
para INDIRECT: ¿qué tenéis exactamente en N2?
para el libro cerrado, yo no tengo la respuesta, ¡eso no significa que no la haya!
saludos
--
La calidad de la respuesta depende sobre todo de la claridad de la pregunta, ¡gracias! -
Hola,
La función INDIRECTO() solo funciona con libros abiertos, devuelve #Ref! cuando el libro está cerrado.
Con Excel 2013 o más, creo que es más fácil usar Power Query.
O con una macro, consulta esta publicación:
https://forums.commentcamarche.net/forum/affich-27800356-equivalent-de-indirect-pour-un-fichier-ferme-sans-macro
Atentamente
Patrice
Nadie puede poseer todo el conocimiento, por eso lo compartimos.