Microsoft 365 Obtenir par formule/champs nommés … ? la valeur d'une cellule de la feuille active que récupère une feuille non active … possible ? (sans vba)

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Bonjour le forum,

Imaginons que nous avons 4 feuilles (Réceptrice, Feuil1, Feuil2, Feuil3)
Sur la Feuil1 en A1 on a toto
Sur la Feuil2 en A1 on a tutu
Sur la Feuil3 en A1 on a tata

j'aimerai récupérer l'une de ces valeur dans la feuille Réceptrice selon la feuille active en B2 par exemple.
Exemple :
Si la feuille active est la Feuil1, la feuille Réceptrice en B2 doit récupérer toto
Si la feuille active est la Feuil2, la feuille Réceptrice en B2 doit récupérer tutu
Si la feuille active est la Feuil3, la feuille Réceptrice en B2 doit récupérer tata
Etc …

Y a t-il une solution, ou ce n'est pas possible ?
 

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Bonjour Job,

Merci pour la réponse
je pense avoir bien fait mais la formule renvoi VRAI et pas la valeur de la feuille active en A1.
j'ai peut être mal fait qq ch
en tout cas c'est une égalité donc normalement ca ne peut que renvoyer vrai ou faux
je joint le fichier test
 

Pièces jointes

  • Test ReceptValue.xlsx
    11.9 KB · Affichages: 6

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Bonjour le Forum, @job75

La solution donnée par job75 est parfaite sur Excel, mais je me suis rendu compte qu'en partageant le fichier online la formule :
CELLULE("nomfichier")
ne marche pas :(

j'ai voulu contourné le problème avec un champ nommé AN dont la formule est :
=INDIRECT("'"&INDIRECT(ADRESSE(2;1;1;1))&"'!"&ADRESSE(2;1;1;1))
car j'ai rentré en dur l'année en A2 (de la feuille active) qui est aussi le nom de feuille,
mais la feuille non active réceptrice n'a pas l'air de le prendre en compte

avez vous une solution pour contourner le pb ??

Merci d'avance
 

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Bonjour Job,

oui je l'ai fait avec le F9 pour tester manuellement et aussi quand je sélectionne ma liste de validation qui change la valeur de ma cellule, ce qui fait que la formule CELLULE marche.
Donc mon fichier sur mon bureau est ok

Le problème est que je dois partager ce fichier online via Sharepoint, et apparement Excel online dans sharepoint ne gère pas la fonction CELLULE("nomfichier")
Ce qui fait que le mécanisme m'y au point n'est plus valide online :(
 

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Il y a surement qq chose que j'ai mal compris avec les formules excel …

Si on utilise la formule INDIRECT avec ADRESSE dans un champ nommé TOTO par exemple
  • doit on récupérer la valeur de la feuille active sur la cellule désigné dans TOTO ? au quel cas la feuille non active prendra aussi la valeur de TOTO
  • ou que la feuille soit active ou non, désignera pour TOTO, la valeur de la cellule désigné pour chaque feuille ?
 

job75

XLDnaute Barbatruc
Ne vous cassez pas la tête, SharePoint ce n'est pas Excel, c'est tout.

Voici une autre solution en utilisant la fonction macro Excel 4.0 CELLULE.ACTIVE().

Et le nom défini Cible :
Code:
=DECALER(CELLULE.ACTIVE();1-LIGNE(CELLULE.ACTIVE());1-COLONNE(CELLULE.ACTIVE()))
Utilisez la touche F9 pour forcer son recalcul.

Le fichier est enregistré avec l'extension .xlsm, je doute qu'il fonctionne sur SharePoint.
 

Pièces jointes

  • Test ReceptValue(1).xlsm
    11.6 KB · Affichages: 1

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Merci
je ne l'avais jamais utilisé de cette manière, cela me fait une solution supplémentaire dans Excel ;)
Le fichier est enregistré avec l'extension .xlsm, je doute qu'il fonctionne sur SharePoint.
oui je confirme

Ne vous cassez pas la tête, SharePoint ce n'est pas Excel, c'est tout.
C'est clair

Merci beaucoup pour l'aide
Bonne journée ;)
 

RyuAutodidacte

XLDnaute Impliqué
Supporter XLD
Bonjour @job75, … le forum,

J'ai résolu une partie du problème par contournement …

je m'explique :
  • Sur les feuilles nommées de l'année (ex : 2023, etc …) la cellule A2 récupère le nom avec :
    VB:
    =STXT(CELLULE("nomfichier");CHERCHE("]";CELLULE("nomfichier"))+1;100)

  • sur la feuille réceptrice qui s'appelle en fait LIST, je dois récupérer en F1 le nom de la feuille active
    qui se trouve aussi dans la cellule A2 (ex : 2023, etc …) ce que j'ai fait avec la formule :
    VB:
    =INDIRECT("'"&CELLULE("nomfichier")&"'!A2")
    Ce qui me permet de calculer automatiquement les jours fériés pour chaque feuille active nommée de l'année voulu (marche parfaitement dans l'application Excel)

    1694675049927.png
    Cela m'évite de multiplier le calcul des jours fériés pour chaque feuille nommée d'une année

  • Le contournement se fait pour l'instant sur le nom de la feuille comportant l'année à récupérer en A2
    - Comme je ne peux pas utiliser CELLULE("nomfichier") qd le fichier est dans Sharepoint,
    j'ai créé un tableau avec le nom des feuille directement dans la feuille LIST

    1694675598695.png

    Ce qui me permet de récupérer en A2 (feuille nommée de l'année - même ordre que le tableau) via :
    INDEX / EQUIV et pour la ligne j'utilise FEUILLE() (récupération de 2023 ou 2024 … etc)
    Je m'en sers pour que les jours de chaque mois se fasse automatiquement ds chaque feuille dupliquée
    (dupli de la feuille 2023 par exemple pour 2024)
    VB:
    =INDEX(LIST_F;FEUILLE();1)
Comme j'ai avancé en résolvant une partie du pb avec la récupération de l'année en A2 qui est aussi le nom de la feuille :
VB:
=STXT(CELLULE("nomfichier");CHERCHE("]";CELLULE("nomfichier"))+1;100)
remplacé par un tableau dans LIST et :
VB:
=INDEX(LIST_F;FEUILLE();1)


De quel manière je pourrai récupéré l'année en A2 (feuille active)
pour l'avoir en F1 de la feuille LIST
OU
de quel façon je pourrai réorganiser le fichier afin que l'année de chaque feuille active mette à jour les jours pour chaque mois en calculant bien sur les jours fériés ??

Ici l'année de la feuille active est la variable de base mettant à jour les mois :
1694677170386.png

etc …
 
Dernière édition:

Discussions similaires

Réponses
16
Affichages
1 K

Statistiques des forums

Discussions
312 207
Messages
2 086 228
Membres
103 160
dernier inscrit
Torto