Fichier Excel : Besoin d'aide

Résolu/Fermé
Chri - 26 juil. 2010 à 11:49
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 - 26 juil. 2010 à 18:17
Bonjour,

Il s'agit d'un fichier pour la gestion des repas chauds dans mon école.

J'ai un petit problème et je ne vois pas comment le résoudre.

Les enfants peuvent prendre un repas chaud (2.8€) ou un potage (0.30€)
Je voudrais qu'en fonction de ce qu'ils commandent (colonnes D et E) , des repas ou des potages soient crédités (colonnes G et H) et j'ai donc un problème avec ma formule de calcul de l'argent à rendre.

J'espère m'être fait comprendre...

Merci pour votre aide

Christophe

http://www.cijoint.fr/cjlink.php?file=cj201007/cijjFd7Z5h.xlsx

A voir également:

10 réponses

Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
Modifié par Leahkim le 26/07/2010 à 11:58
J'ai corrigé ton fichier Excel, la formule était, pour la premiere case de la colonne argent a rendre:

=SI(E5=1;F5-0,3;SI(D5=1;F5-2,8;F5))

et voila:

http://www.cijoint.fr/cjlink.php?file=cj201007/cijnY0gOHq.xlsx

Et, au passage, la prochaine fois enleve le nom des enfants du fichiers, ça t'évitera de probables problèmes avec les parents s'ils le trouvent :)

Imagine si j'avais été parent d'un des gamins dont le nom est la dedans !


Si vous n'y arrivez pas du premier coup, appelez ça la version 1.0
0
Merci beaucoup pour la correction et pour le conseil.
J'avais ajouté les noms pour tester en réel...

Encore un petit problème cependant... Si l'enfant me donne 50€, ça lui donne un crédit de 17 repas moins celui du jour, il en reste 16 et je lui dois 2,40€. Comment faire pour ne pas qu'ils me créditent aussi des potages et inversément ?

Merci beaucoup

http://www.cijoint.fr/cjlink.php?file=cj201007/cijxrzKpF2.xlsx
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 12:32
La, j'ai juste besoin d'un explication complémentaire:

Un enfant se pointe à la cantine de l'école avec 50€.

il mange, donc -2,80€
puis on crédite des repas, donc résultat entier de: (50-2,80)/2,80
et on lui rend le reste: (((50-2,80)/2,80)-resultat_entier)*2,80


J'ai bien compris, c'est ça ?

Et s'il prend un potage, on lui crédite que des potages ?

Je serai de retour à 14h :)
0
Ben moi j'avais fait

Un enfant se pointe avec 50€
Je lui crédite 17 repas. Il en prend 1, il en reste 16
Je lui rends 50-(17*2.80) ---> Ce qui me permettait de créditer des repas à un enfant absent mais plutôt rare comme cas d figure ^^

Mais le résultat à l'air d'être le même :-)

S'il prend un potage, je crédite un potage

Mais il y a aussi des enfant qui arrivent avec 50 euros et dont les parents attendent la monnaie. --> Pas de crédits de repas !

Ca fait beaucoup de cas de figure et je suis complètement perdu là ^^
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 14:12
Faut avoir l'esprit tourné Algorithmie voila tout :)

On a donc les cas de figure suivants:

1: prise d'1 repas + rendu de monnaie complet
2: prise d'un potage + rendu de monnaie complet
3: prise d'un repas + crédit de repas + rendu de monnaie
4: prise d'un potage + crédit de potage + rendu de monnaie

il y a autres cas, sont-ils possibles ?
5: prise d'un potage + crédit de repas + rendu de monnaie
6: prise d'un repas + crédit de potage + rendu de monnaie

Peut-il y avoir la possibilité que l'enfant veuille x repas, et non pas le maximum possible pour l'argent qu'il a ?

Exemple: il arrive avec 50€, il veut manger aujourd'hui et prendre 10 repas, puis prendre la monnaie restante ?
donc 1 repas + 10 crédits repas = 50€-11*2,80€ = 19,20€ de monnaie à rendre ?
0
Les cas 5 et 6 sont possibles aussi bien que rares.

Oui un enfant peut commander 10 repas et venir avec 50 euros

Ces cas sont possibles ...

C'est compliqué ou c'est faisable ?
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 14:19
tout est possible voyons :)
Ca va compliquer un poil(gros poil) le tableau, mais c'est possible.

Ca vaudrais presque le coup de develloper un petit logiciel simple pour le faire xD
Bon, on va rester à Excel.

Vous avez des notions d'algorithmie ? Juste pour savoir jusqu'à quel niveau vous avez besoin d'aide :)
0
Euh non, aucune notion.

Je suis depuis un an sur ce fichier... J'ai fait beaucoup d'essais seuls et pour le moment j'essaie de résoudre un problème à la fois grâce à l'aide des forumeurs !

Mais c'est chaud... Je comprends pas grand chose à part les sommes ^^

J'avais demandé un devis pour un petit logiciel simple. On me demandait 800 euros que je n'ai pas à investir pour l'école. Je suis instit et je gère les repas mais ça me prends trop de temps de faire la liste des RC , des potages, des absents, et des retours à la maison...
0
J'aimerais aussi si c'est possible que Excel garde en mémoire les repas ou potages crédités et que mon tableau s'ouvre "vierge" pour ne pas avoir a effacé le contenu des champs chaque jour avant d'avoir à les rempli à nouveau. Mais je ne sais pas non plus si c'est faisable...
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 14:41
Ca commence à faire beaucoup juste pour Excel et pour un bénévole :)

Je suis prêt a y passer du temps avec vous, mais je ne suis pas Chuck Norris.

Pour qu'on puisse gérer tout ça simplement, il faudrait une base de données, et un logiciel complet...

Au niveau de la sauvegarde, je peux vous proposer de faire un tableau vierge, et que chaques midi/soir, vous copiiez un tableau vierge pour le remplir, un ainsi ne pas avoir a effacer vous données de la veille, et pour les garder.

Pour les repas restants d'un enfant, vous n'aurez d'autre choix que de regarder dans le tableau de la veille pour savoir.

Dans la théorie, ça serait possible, mais pas au niveau que vous semblez avoir, et l'année prochaine il faudrait modifier le système, car il y aurait des enfants en moins ou en plus ...

Au cas où: quand j'allais à l'école, (oh le coup de vieux !) j'avais des tickets oranges que j'achetait a l'acceuil. Chacun d'entre nous venait avec son ticket, c'était simple :)

Je suis prêt à vous aider dans ce sens la:
Je vous écrit l'alhorithme, je vous explique comment le lire, et ensuite on le met ensemble dans Excel.
Vous verrez qu'en passant par l'algorithmie, tout va s'éclairer dans votre tête; c'est une méthode droite, carrée, et elle aide à y voir clair dans la conception d'un logiciel qui aux premiers abords parait monstrueux :)

Vous êtes partant(e) ?
0
Oui bien sûr, avec plaisir :-)

Le problème des tickets est que nous sommes une école d'enseignement spécialisé et que c'est vite le carnage avec les tickets. de plus les enfants prennent le repas dans l'école voisine ce qui les compliquent encore un peu, les choses...

Quoiqu'il en soit, merci déjà pour votre aide et votre disponibilité
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 14:53
Super :) Laissez moi un peu de temps pour ecrire l'algorithme de ce que nous voulons, je vous l'enverrai, et on pourra y bosser ensemble.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 15:26
Voila voila, nous y sommes :)

j'ai écrit l'algorithme dans un fichier ici:

http://www.cijoint.fr/cjlink.php?file=cj201007/cijYeoJkkV.txt

Aussi, je pense partir d'un fichier Excel vide,que vous pourrez bien sûr compléter par la suite avec l'internat et les autres termes que je ne comprend pas forcément sur votre précédent fichier.

L'algorithme est un schéma, sous forme de texte mis en forme écrit avec des termes génériques et ayant du sens, mais se rapprochant d'un langage de programmation. C'est une suite logique d'évènements avec condition simple permettant de comprendre un enchaînement complexe (j'en reviens d'avoir écrit une aussi belle phrase !)

Au début, vous allez voir les DONNEES, donc, ce que vous allez entrer dans votre tableau pour qu'il puisse calculer.

Ensuite, notre unique VARIABLE, la donnée que nous cherchons à calculer, donc la monnaie rendue.

vient ensuite l'algorithme de calcul. Le "SI" représente la condition, qui est écrite juste à côté.
On a donc bien SI la condition est remplie, ce qui est entre accolades {} s'executera, sinon on passe à la suite.

J'ai fait 2 conditions "SI", une dans le cas ou l'enfant prend du potage, une dans le cas ou il prend un repas.

Et voila, vous avez compris le raisonnement ? Enfin, le raisonnement vous l'aviez, la question c'est avez-vous compris cette façon de l'écrire ?

Passons à Excel !

Voila le tableau en question:
http://www.cijoint.fr/cjlink.php?file=cj201007/cijbdWWAYt.xlsx

Les cases ne calculent rien pour le moment, je vous explique comment je vois les choses, comme ça vous pourrez me dire si ça vous convient:

B2 et B3: les prix
G2 et G3: le crédit maximum qui pourra être accordé en fonction de l'argent reçu, noté en I3

Dans le tableau, les colonnes parlent d'elles-même. Vous rentrerez les données dans les colonnes A à F, et en G se calculera l'argent à rendre.


Une fois qu'on aura fait ça, si vous êtes encore motvé(e), on pourra l'améliorer :)
0
Merci, je vais voir de ce pas :-)
0
Voilà !

Je pense comprendre la façon d'écrire, de là à l'appliquer, c'est une autre histoire. Merci beaucoup :-)

Sera-t-il possible d'intégrer cet algorithme dans mon tableau précédent ?

Les enfants qui relèvent de l'internat ou du cpas, ne paient pas les repas mais je dois lister ceux qui le prennent par classe. Je dois aussi lister ceux qui prennent un potage, ceux qui sont absents et la manière dont les efts retournent à 15h30 (Garderie, rang piétons ou avec leurs parents)
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 15:53
Je pense que l'on va d'abord faire la gestion des repas, ensuite, on ajoutera le reste, qui ne nécéssite pas forcément de calculs.

Le calcul est à inscrire dans la case "monnaie", et il est assez long vous allez voir. Je l'ai fait, il est dans mon tableau.

Vous voulez que je vous l'envoie, ou vous voulez que je vous apprenne à le faire ?

Il utilise simplement 2 conditions SI, comme dans l'algorithme.
0
Ben, ce serait chouette que j'apprenne à le faire mais j'ai peur d'abuser :-)
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 16:11
Au contraire, ça me ferait plaisir de vous apprendre :)

Alors, la condition SI dans Excel:

elle se présente sous cette forme:

SI(CONDITION;valeur si vrai;valeur si faux)

donc, par exemple:

SI(A1=34;45;56)
Dans cet exemple, on teste la valeur de la case A1: SI elle fait 34, la case dans laquelle on a écrit la formule pendra la valeur 45, et SINON elle fera 56

dans cet exemple on ne fait qu'utiliser la fonction SI dans son simple effet.

Dans notre cas à nous, il va falloir écrire 2 conditions imbriquées, voila notre calcul réécrit pour excel:

Si l'enfant prend un repas (cas 1):

SI (repas_consommé=1) ALORS argent_reçu-(credit_potage*prix_potage)-(credit_repas*prix_repas)-prix_repas


Si l'enfant prend un potage (cas 2):

SINON SI (potage_consommé=1) ALORS argent_reçu-(credit_potage*prix_potage)-(credit_repas*prix_repas)-prix_potage

Si l'enfant ne fait qu'acheter des crédits(cas 3):

SINON argent_reçu-(credit_potage*prix_potage)-(credit_repas*prix_repas)


Voila donc, comment en passant par l'algorithmie, on a reussi a partir de 6 cas, voir même 7 ou 8, à 3 cas dans 2 conditions pour la même chose :) fantastique non ?

Evidemment, ce ne sont pas ces calculs que l'on va inscrire dans excel, la seule différence qu'il y aura c'est que l'on va remplacer le nom des données par les coordonnées des cases dans lesquelles elles sont.

Vous me suivez ?

Faites moi une proposition de formule pour Excel que vous pensez bonne d'après ce que je vous ai écrit la.
0
J'ai ajouté une formule pour le cas 1

=SI(E7=1;B7-(D7*B2)-(C7*B2)-B2)

dans la case G7 (Monnaie).

J'y vois de plus en plus clair. Merci beaucoup.
Cependant, je ne sais pas comme mettre le reste de la formule pour les cas 2 et 3

Et oui, c'est fantastique...

http://www.cijoint.fr/cjlink.php?file=cj201007/cijYLC5E9y.xlsx
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 16:55
Alors, petite erreur de parcours, mais je trouve que c'est déjà pas mal.

Tout d'abord, mea culpa, j'ai oublié une précision, mais c'est pas grand chose:
Quand on va étendre cette formule aux cases suivantes, vous savez (je suppose) que toutes les cases que nous avons spécifié dans ce calcul vont suivre cette étendue, et donc prendre, dans notre cas la case en dessous.

Le probleme, c'est que nos cases ou se situent les prix ne doivent pas changer.
Donc, au lieu de spécifier B2 ou B3 dans le calcul, on va rajouter le symbole $ devant les coordonées:
B2 devient $B$2, et B3 devient $B$3, sinon elles vont bouger aussi, et ça n'est pas le but.

Pour votre erreur, voila le début de ma formule:

SI(E7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$2;


Vous n'êtes pas tombé loin ! Outre le "$" que vous ne pouviez pas inventer, vous avez appliqué le même prix aux repas qu'aux potages ;)
Je connais des parents qui vont râler !

Il faut multiplier C7 (crédit repas) par le prix du repas (B2), et D7 (crédit potage) par le prix du potage (B3).

C'était votre seule erreur.

Pour la suite, si on se réfère à la forme de la formule que je vous ai fourni avant:

SI(CONDITION;valeur si vrai;valeur si faux)

vous avez parfaitement compris le principe de la condition, et de la valeur si vrai, mais ou est passée la valeur si faux ?
Eh oui, c'est la que ça se complique un petit peu.

la valeurs si faux doit correspondre la condition numéro 2, n'est-ce pas ? Elle sera appliquée si la condition numéro 1 n'est pas vraie.

Donc, voila la condition numéro 2 (vous avez compris le principe, je vous épargne de chercher):

SI(F7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$3

Donc, au lieu d'entrer un calcul dans la "valeur si faux", on va entrer cette condition !
On utilise donc la forme algorithmique de la condition imbriquée, un SI dans un SI :)

voila donc ce que vous aviez:

SI(E7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$2;

on ajoute le cas numéro 2:

SI(E7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$2;SI(F7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$3;

ça commence à être long, je le reconnais, et ça n'est pas fini.

Nous avons donc un premier SI, un second SI, et il va falloir rajouter le dernier element, le "sinon", cas où l'enfant ne fait qu'acheter des crédits.

Le schéma que nous venons d'appliquer est:

SI(condition;valeur si vrai;SI(condition;valeur si vrai;

le second SI sert de "valeur si faux" au premier, et donc notre 3° cas va servir de "valeur si faux" au second SI

Vous suivez ?

Ecrivez la "valeur si faux" du second "SI", correspondant au cas 3.
0
J'ai noté

=SI(E7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$2;SI(F7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$3));SI(B7-(D7*B3)-(C7*B2))

Mais j'avais un message d'erreur.
J'ai supprimer le dernier SI mais ça ne va pas non plus

=SI(E7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$2;SI(F7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$3));B7-(D7*B3)-(C7*B2)

Alors, j'ai ajouté un = devant le SI

=SI(E7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$2;SI(F7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$3));=Si(B7-(D7*B3)-(C7*B2)

Je crois que j'ai de fameux problèmes de nomanclatures...
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 17:33
Super !

En fait, pour la derniere condition, le piège est qu'il n'y avait pas de condition :)

Implicitement il y en a une, mais, elle résulte du fait que les 2 précédentes ne sont pas appliquées, donc on ne la note pas.

On le voit bien dans mon algorithme que j'ai écris pour Excel:

Si l'enfant prend un repas (cas 1):

SI (repas_consommé=1) ALORS argent_reçu-(credit_potage*prix_potage)-(credit_repas*prix_repas)-prix_repas



Si l'enfant prend un potage (cas 2):

SINON SI (potage_consommé=1) ALORS argent_reçu-(credit_potage*prix_potage)-(credit_repas*prix_repas)-prix_potage

Si l'enfant ne fait qu'acheter des crédits(cas 3):

SINON argent_reçu-(credit_potage*prix_potage)-(credit_repas*prix_repas)


J'écris SINON, mais pas de SI après, donc c'est juste une application du calcul.
En quelque sorte, la condition qui appliquée au cas n°3 est que les 2 premieres ne sont pas appliquées.

Il suffit donc d'écrire le dernier calcul à l'emplacement de "valeur si faux" de la seconde condition :)

Voila le calcul entier que vous pouvez mettre dans la premiere case de la colonne monnaie:

=SI(E7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$2;SI(F7=1;B7-(C7*$B$2)-(D7*$B$3)-$B$3;B7-(C7*$B$2)-(D7*$B$3)))

Sinon, votre calcul était juste !

Et voila, il suffit d'étendre maintenant cette cellule à toutes les autres de la colonne, et le tour est joué :)

Vous pouvez tester en entrant une valeur dans chacune des case des lignes :)

Il reste une petite étape avant que l'on rajoute les colonnes pour que votre tableau aie autant d'infos qu'avant:

J'ai mis en haut du tableau, 2 cases, qui affichent le nombre maximum de crédits que pourra acheter l'enfant avec l'argent qu'il a, simplement pour éviter d'avoir à le calculer de tête.

pour cela, dans la case G2, on va entrer:

=ENT(I3/B3)

et dans la case G3:

=ENT(I3/B2)

la fonction ENT() d'Excel permet de faire une troncature du résultat du calcul qu'on lui donne.

Donc, G2 va contenir le résultat entier (comme une division Euclidienne) de la division argent_recu/prix repas ou prix potage.

Vous avez donc maintenant un tableau fonctionnel pour la gestion de vos repas !

Pour rajouter les autres colonne, je peux les rajouter dans le mien et vous envoyer mon tableau, ou vous laisser les rajouter dans le votre et me dire si vous avez des soucis :)
0
Magnifique, je ne sais comment vous remercier. J'ai appris plus aujourd'hui qu'en un an de recherche.

Je vais essayer de modifier mon tableau avec ces nouvelles informations.

Je reviens rapidement vers la communauté... Chaque fois que je touche à mon tableau, ça fait des dégats.

Il me reste un mois pour affiner ce fichier.

Merci 10000 fois

Christôphe
0
Leahkim Messages postés 3081 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 281
26 juil. 2010 à 18:17
Aucun souci Christophe !


Je met une alerte mail sur cette discussion, comme ça dès que tu reviens me demander un conseil, je le saurai :)

Je dois partir pour le moment, mais je ne tarderai pas à revenir si vous avez un souci !

Pour me remercier, le plus simple est de mettre ce topic du forum en "résolu" (en haut de votre premier message), et de faire une publicité positive pour CommentCaMarche :)

0