Nom de classeur variable dans une formule

Résolu/Fermé
alex141077 Messages postés 52 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 8 février 2022 - Modifié le 1 mai 2020 à 10:05
alex141077 Messages postés 52 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 8 février 2022 - 1 mai 2020 à 12:16
Bonjour,

Je vous sollicite pour un petit coup de pouce car malgré mes tentatives je ne trouve pas la solution...

Je souhaiterais faire évolue mon logiciel et pouvoir changer de nom du classeur ou créer une nouvelle feuille avec un nouveau classeur sans recopier et modifier toutes les formules car il y en a vraiment beaucoup.
Jusqu'à present je reprenais cellule par cellule pour modifier les formules ce qui me prends énormement de temps.



Par exemple avec cette formule :

Nom du classeur : [Caravelles.xls]CAR 3

Nom du nouveau classeur : [Grillons.xls]Grillons D1

Comment pouvoir changer de nom sans à l'avenir devoir modifier toutes les formules manuellement?

=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


J'ai également essayer cette formule "INDIRECT" en insérant le nom du classeur dans une cellule mais cela me donne "Ref#"...
Ce qui donne ca avec le nom du classeur en "N2" mais ne fonctionne pas:
=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)

Merci d'avance pour votre aide




Configuration: Windows / Chrome 81.0.4044.129
A voir également:

3 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
1 mai 2020 à 10:22
Bonjour
avec INDIRECT, veillez bien à ce que votre cellule de référence contienne bien le nom du classeur avec tous les signes qui doivent l'encadrer dans la formule et que le texte traduise bien l'adresse complète
par exemple si vous voulez remplacer
'[Caravelles.xls]CAR 3'
par un fichier zzzz.xls, écrivez bien en N2
'[zzzz.xls]CAR 3'!
ou alors si vous ne mettez que zzzz en N2 utilisez dans la formule:
INDIRECT("'["&N2&".xls]CAR3'!F11")
crdlmnt
1
alex141077 Messages postés 52 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 8 février 2022 2
Modifié le 1 mai 2020 à 10:59
Merci de votre aide...

ok ca fonctionne avec "'[Caravelles.xls]CAR 3'"... mais probleme si mon classeur n'est pas ouvert ca ne fonctionne pas!
Peut t on contourner le probleme avec "INDEX" ou ("IndirectExt" mais par macro) mais l'adresse complete peut changer aussi si je travaille sur un autre pc par exemple?

Avec INDIRECT(N2&"!F$22") j'ai toujours "Ref#"

0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
1 mai 2020 à 10:59
pour INDIRECT: qu'avez vous exactement en N2?
pour le classeur fermé, moi je n'ai pas lé réponse, ça ne veut pas dire qu'il n'y en a pas!
crdlmnt
1
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 1 mai 2020 à 11:14
Bonjour,

La fonction INDIRECT() ne fonctionne qu'avec des classeurs ouverts, elle renvoie #Ref! quand le classeur est fermé.

Avec Excel 2013 ou plus je pense qu'il est plus simple de passer par Power Query.

Ou avec une macro, voir ce post :
https://forums.commentcamarche.net/forum/affich-27800356-equivalent-de-indirect-pour-un-fichier-ferme-sans-macro

1
alex141077 Messages postés 52 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 8 février 2022 2
1 mai 2020 à 12:16
Merci beaucoup pour votre aide

Cela dépasse largement mes compétences mais j 'ai vu que par macro c'est possible...

Mais je n' y connais rien malheureusement...
0