Nom de classeur variable dans une formule
Résolu
alex141077
Messages postés
52
Statut
Membre
-
alex141077 Messages postés 52 Statut Membre -
alex141077 Messages postés 52 Statut Membre -
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
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
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:
- Excel référence feuille variable
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Verrouiller cellule excel sans verrouiller la feuille - Guide
- Déplacer colonne excel - Guide
3 réponses
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
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
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
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
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
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
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#"