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

3 réponses

Vaucluse
Messages postés
26495
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
8 avril 2022
6 261
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
26495
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
8 avril 2022
6 261
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
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 753
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

Cordialement
Patrice

Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
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