Il semblerait que plus personne ne soit actif dans cette discussion. Si vous souhaitez reprendre la conversation, posez simplement une nouvelle question.

Comment faire une fonction qui prend en compte toutes les feuilles ?

Comment faire une fonction sur une cellule qui prend en compte une certaine une ou plusieurs cellules de toutes les autres feuilles et futures feuilles ?
Je cherche à trouver une fonction qui me permet par exemple d'additionner automatiquement les cases B5 de toutes les feuilles et feuilles pas encore faite. ( au lieu de rajouter manuellement à chaque nouvelle page.

<Titre Modifié par l’Hôte>

Publiée le 5 janv. 2018 à 10h20

Répondre
Question marquée comme Meilleure réponse

Publiée le 9 févr. 2018 à 19h50

Bonjour Ruben_Dorio


Je pense que nous avons bien « cogité », vous sur le QUOI (la description de votre projet), moi sur le COMMENT (la solution technique). Maintenant il est temps de faire une synthèse afin que vous puissiez progresser dans la réalisation de votre projet. Compte tenu des éléments que vous m’avez décrits, l’outil le plus adapté est certainement l’utilisation d’une base de données (BdD). Comme cette solution BdD nécessite des compétences informatiques que vous ne possédez pas forcément, la solution Tableur est en effet celle qui doit être retenue. Cependant, comme déjà dit, ce choix implique certaines contraintes par rapport à une solution BdD qui sait automatiser l’insertion de données (ici des tournois). L’objectif est donc de rendre ces contraintes « acceptables ».


Le contexte est donc le suivant : avec Numbers, vous créez un fichier MonProjet.numbers dans lequel vous avez une feuille « Résultats » et des feuilles «Tournoi-n ». Les feuilles Tournoi-1, Tournoi-2, etc … sont des duplications d’une feuille modèle « Tournoi ».

Votre question première devient donc :

Comment , dans « Résultats », écrire une formule qui prenne en compte une certaine cellule de toutes les feuilles « Tournoi-n » présentes et à venir et ce sans avoir à la modifier à chaque ajout de feuille tournoi ?

(sachant bien entendu que vous aurez à créer dans « Statistiques » d’autres formules analogues)


Solution proposée


Pour illustrer mon propos, en s’appuyant toujours sur votre post du 04/02/18 et sur une des captures d’écran que je vous ai communiquée, nous appelons « Total Buts » la formule à créer dans la feuille « Résultats » et A1 la cellule « But » de chaque feuille tournoi.

La seule possibilité, dans une solution tableur, pour éviter d’avoir à modifier la formule à chaque ajout de feuille, est que cette formule porte sur une collection de cellules présentes dans la feuille 1, idéalement une colonne d’une Table 2 (dans notre exemple la colonne A du tableau « Performances »). En effet dans ce dernier cas, vous pouvez ajouter dans la colonne autant de valeurs que vous voulez, la formule sera toujours valide.


La contrainte, liée au choix de cette solution Tableur, est que vous devrez recopier chaque cellule A1 de chaque feuille tournoi dans cette colonne, c’est le prix à payer pour éviter la solution BdD.


Bien sûr vous choisirez sans doute de le faire de temps en temps, pas à chaque création de tournoi sinon cela risque d’être en final assez lourd. Mettons que vous prévoyez de réaliser au maximum 50 tournois dans l’année : il faudra alors initialiser 50 recopies de cellules A1 tous les ans. Voilà pour la contrainte. Est-elle acceptable ? je le pense mais c’est à vous d’apprécier. Partant de là, il faut veiller à ce que cette recopie ne génère pas d’erreur lorsque la feuille tournoi n’existe pas encore, sinon la formule sera elle aussi en erreur (cf. « De plus si tournoi-4 n’existe pas … » de mon post précédent).


Après quelques tests je vous propose donc le canevas suivant (à vous de l’adapter à votre projet) :


Fichier chargé par un client


J’ai appelé la feuille 1 Résultats. Elle comporte 2 tableaux Statistiques et Performances. Dans Statistiques, la cellule B3 contient la formule correspondant à « Total Buts » et dans Performances, la colonne A est la colonne où sont dupliquées les cellules A1 de chaque feuille tournoi.


La feuille Tournoi est le « modèle » : elle est complète mais ne comporte encore aucun résultat. C’est elle que vous copiez et que vous collez après avoir sélectionné la dernière feuille tournoi créée. Son nom devient automatiquement Tournoi-n (ici dans notre exemple ce sera Tournoi-5).

Dans les feuilles tournoi, j’ai saisi 5 dans Tournoi-1 Table 1 A1, 3 dans Tournoi-2 Table 1 A1, 23 dans Tournoi-3 Table 1 A1, 10 dans Tournoi-4 Table 1 A1


La formule « Total Buts » est toujours SOMME(Performances::A1) quel que soit le nombre de feuilles tournoi


Dans la colonne A du tableau Performances, la formule de « recopie » est

Pour la ligne 2 : SI.ERREUR(INDIRECT("Tournoi-1::Tableau 1::A1" ); "" )

Pour la ligne 3 : SI.ERREUR(INDIRECT("Tournoi-2::Tableau 1::A1" ); "" )

Pour la ligne 4 : SI.ERREUR(INDIRECT("Tournoi-3::Tableau 1::A1" ); "" )

Pour la ligne 5 : SI.ERREUR(INDIRECT("Tournoi-4::Tableau 1::A1" ); "" )

……………………………………………………………………………………

Pour la ligne 51 : SI.ERREUR(INDIRECT("Tournoi-50::Tableau 1::A1" ); "" )


C’est là la contrainte pour anticiper la création des 50 premières feuilles « Tournoi-n ».

Examinons cette formule :

- le SI.ERREUR permet de gérer l’erreur en cas d’absence de la feuille tournoi correspondante (ici Tournoi-5 n’existe pas mais je n’ai plus de panneau rouge, remplacé par chaîne vide "" )

- INDIRECT permet de renseigner une adresse sous forme de chaîne


Est-ce vraiment une contrainte lourde ? Vous faites un copier de la ligne suivante :

SI.ERREUR(INDIRECT("Tournoi-1::Tableau 1::A1" ); "" )

dans la ligne 2 de la colonne A du tableau Performances, puis ligne 3 etc … jusqu’à la ligne 51. Il suffit ensuite de remplacer -1 par -2, -3 etc … pour cibler les feuilles tournois correspondantes. Durée 5’ (bien sûr à recommencer pour les autres formules SOMME analogues).


Dès lors vous êtes tranquille pour un an (si vous ne faites pas plus de 50 tournois par an). Votre feuille se comporte « comme » une solution BdD : insertion de tournoi ? mise à jour de tournoi ? suppression de tournoi ? : Pas de problème (vous pouvez faire tous les tests en reproduisant ce canevas).


Maintenant à vous de jouer, en espérant vous avoir aidé


Bonne continuation !


PS : N’hésitez pas à solliciter la communautés iWork si une formule de calcul vous crée des soucis.

Pour ce qui est de votre formule :

SOMME.SI(A43:A54;"*Def";B43:B54)+ SOMME.SI(A25:A36;"*Def";B25:B36)+ SOMME.SI(A7:A18;"*Def";B7:B18) + SOMME.SI(D43:D54;"*Def";C43:C54)+ SOMME.SI(D25:D36;"*Def";C25:C36)+ SOMME.SI(D7:D18;"*Def";C7:C18)

elle me semble correcte. Je suppose que le critère *Def correspond à une somme des points dans les colonnes G et D sur les lignes du deck « def » uniquement. Je n’ai pas compris pourquoi vous faisiez la somme des G et des D (mais je suppose que vous êtes en phase de test).

Peut-être que vous pourriez simplifier votre formule de la façon suivante :

SOMME.SI(A1:A54;"def";B1:B54)+ SOMME.SI(D1:D54;"def";C1:C54)

c.a.d utiliser comme critère uniquement le nom du deck et éviter de saucissonner la somme par phase. Cela reste cependant à vérifier …

12 réponses

Il n’y a aucune réponse.

Comment faire une fonction qui prend en compte toutes les feuilles ?

Bienvenue dans la Communauté d’assistance Apple
Un forum où les clients Apple s’entraident avec leurs produits. Faites vos premiers pas avec votre identifiant Apple.