Nombre de la hoja variable en una fórmula

Resuelto
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

 =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

  1. Vaucluse Mensajes publicados 27336 Fecha de registro   Estado Colaborador Última intervención   6 453
     
    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!
    1
    1. alex141077 Mensajes publicados 52 Estado Miembro 2
       
      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#"

      0
  2. Vaucluse Mensajes publicados 27336 Fecha de registro   Estado Colaborador Última intervención   6 453
     
    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!
    1
  3. Patrice33740 Mensajes publicados 8400 Fecha de registro   Estado Miembro Última intervención   1 783
     
    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.
    1
    1. alex141077 Mensajes publicados 52 Estado Miembro 2
       
      Muchas gracias por tu ayuda

      Esto supera con creces mis competencias, pero he visto que por macro es posible...

      Pero, desgraciadamente, no tengo ni idea...
      0