Feuille shSaisieMJ
RésoluBUDGETS Messages postés 1704 Date d'inscription Statut Membre Dernière intervention -
Comment procéder pour remplir la cellule B12 selon le contenu de la cellule B10 ou B11 de la feuille shSaisieMJ ?
D'avance merci pour votre aide.
https://cjoint.com/c/IIAicMhP5E6
- Feuille shSaisieMJ
- Feuille de pointage excel - Télécharger - Tableur
- Feuille a5 - Guide
- Bruler feuille de laurier - Guide
- Feuille d'aluminium - Guide
- Verrouiller cellule excel sans verrouiller la feuille - Guide
84 réponses
Le problème porte sur le remplissage de la cellule B12 de la feuille shSaisieMJ selon le contenu de B10 ou B11.
Une approche utilise la macro ModuleMJ_SupprimerMJ qui fonctionne pour certaines opérations, mais la génération ne marche plus pour les modules MMR, MVWE et MJ, avec un fichier joint pour diagnostic.
Des solutions complémentaires évoquées combinent des ajustements VBA (Remplacer MMR par MJ via Édition > Remplacer, en cochant le module en cours et en testant sur diverses dates) et des modifications de données, notamment la création d’un nom défini pour les desserts et l’emploi d’une formule identique à celle de B10 pour les codes catégorie des viandes soirées, avec validation des données sur Liste_Code_VS et préparation d’une feuille Menus MJ.
Une demande de clarification précise de vérifier l’existence de la feuille shSaisieMJ dans le fichier et de préciser l’argument qui permet de choisir B11 ou B10 pour alimenter BV12.
précisez?
.. sauf erreur il n'y a pas de feuille SaisieMJ dans le fichier?
et si besoin précisez l'argument qui permet de choisir B11 ou B10, pour remplir BV12
à vous lire
crdlmnt
La cellule B10 se remplit par une validation des données. La cellule B11 se remplit automatiquement grâce à la formule qui y figure selon le choix fait en B10.
https://cjoint.com/c/IIAiA6P20w6
Effectivement, vaucluse, qui a dégainé très vite, a raison, je pense que c'est un ancien fichier que tu as posté.
Peu importe, j'ai les éléments. On va commencer doucement.
Comme tu l'as dit la cellule B12 doit dépendre de la cellule B10 (ou B11).
Tu as mis une liste de validation pour B10 comprenant toutes les catégories, je ne crois pas que ce soit la meilleure solution car B10 ne doit pouvoir prendre que certaines valeurs dans cette liste, qui correspondent,si j'ai bien compris, à LSLM, LSMJ, LSV, LWES, LWED qui sont fonction du jour de la semaine.
Comment modifier B10 pour prendre en compte celà ?
Dans l'attente de ta réponse
Tu peux proposer une formule ou tout au moins le début avec juste un code ou deux ?
Sinon je peux te la donner mais, pour que tu comprennes bien, il vaut mieux l'ébaucher toi-même !
Bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionLa date est en $B$7, la fonction JOURSEM($B$7;2) donne le n° du jour de la semaine de 1 (Lundi) à 7 (dimanche).
La fonction SI permet de tester cette valeur et d'affecter une catégorie.
La formule en B10 peut donc être écrite comme ceci en imbriquant plusieurs fonctions :
=SI(JOURSEM($B$7;2)<=2;"CC05";SI(JOURSEM($B$7;2)<=4;"CC06";SI(JOURSEM($B$7;2)=5;"CC07";SI(JOURSEM($B$7;2)=6;"CC09";SI(JOURSEM($B$7;2)=7;"CC08";"")))))
Tu testes si c'est ok en faisant varier la date.
Pour la viande, toujours si j'ai bien compris, il n'y a qu'une seule catégorie. Pour le dessert il faudrait avoir la même chose mais en plus simple. D'ailleurs dans la feuille Référentiels il vaudrait mieux avoir un tableau pour DS et un tableau pour DW.
Bon courage
J'ai fait un copier coller de ta formule dans ma feuille shSaisieMJ, cellule B10. Je n'ai rien compris mais cela ne donne pas le résultat souhaité. Cellule B10 : d'après la liste déroulante, je choisis CC05 (pour légume soirs lundi mardi). La Cellule B12 devra alors me donner la liste des codes LSLM telle qu'elle a été définie dans la feuille shRéférentiels (cellules AU2:AU15). Le contenu de la cellule B12 est indépendant de la date.
Voir fichier avec ta formule en B10 et la modification apportée dans la feuille shRéférentiels (deux tableaux, l'un pour DSLV, l'autre pour DWE).
https://cjoint.com/c/IIAng17pYw6
Je n'ai pas dit que tout était fait, mais qu'on allait y aller par étapes.
Pour le moment, on a juste codé en B10, B11 le code te le nom catégorie en fonction du jour de la semaine, il n'y a encore rien dans B12.
J'ai corrigé la procédure CréerMJ qui va chercher les valeurs pour la date sur AccueilMenus en I7, J7 et K7 (et non pas C, D, E comme pour MMR)
Au passage, j'ai corrigé dans Référentiels, tes tableaux DS et DWE pour les titres et supprimer DS01 de DWE, il faut créer les noms correspondants pour DWE
Tu peux faire quelque chose de similaire pour la partie Dessert (Viande c'est simple)
https://www.cjoint.com/c/IIAnGZO413l
On verra pour B12 après, mais si tu as des idées pour le traiter, n'hésite pas
Pour les desserts : du lundi au vendredi inclus : ce sera toujours Pomme (DS01); Pour le samedi et le dimanche : ce sera un DWE, le même le samedi et le dimanche.
Regarde la formule de la cellule H10. J'ai testé et chez moi aucun problème. J'ai essayé avec weekday mais aucun résultat satisfaisant.
https://cjoint.com/c/IIAub0Hp6z6
Dans la fonction JOURSEM($B$7;2), le paramètre 2 signifie que la semaine commence un lundi. Le numéro renvoyé par JOURSEM pour la date saisie en B7 va de 1 (lundi) à 7 (dimanche).
Voir :
https://support.microsoft.com/fr-fr/office/joursem-fonction-60e44483-2ed1-439f-8bd0-e404c190949a?ui=fr-fr&rs=fr-fr&ad=fr
A rapprocher de la fonction vba Weekday :
https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/weekday-function
Donc quand on écrit SI(JOURSEM($B$7;2) <=5 (par exemple), cela veut dire : si le jour de la semaine est un lundi, mardi, mercredi, jeudi ou vendredi.
Ta fonction en H10 est erronée, il faut écrire
=SI(JOURSEM($B$7;2)<=5;"CC02";CC03") qui veut dire
si le jour de la semaine est un lundi, mardi, mercredi, jeudi ou vendredi alors on met "CC02"
sinon (c'est donc forcément un samedi ou dimanche) on met "CC03"
Voilà, bonne continuation
Pour les viandes, le jour de la semaine n'aura aucune incidence, je vais donc faire une validation des données pour le code catégorie.
Dimanche 29 septembre, je ne travaillerai pas sur Excel (ou ce sera le soir) car je roulerais mes cigarettes pour le mois d'octobre et repasserai mon linge.
Mardi 01 octobre, je ne travaillerai pas sur Excel (ou ce sera le soir) car je ferai mes comptes du mois de septembre et mes courses pour acheter ma nourriture du mois d'octobre.
Compte tenu des indications du précédent message, j'ai créé dans la feuille shRéférentiels un nom défini Liste_Code_Produit faisant référence à Code LSLM et à Code LSMJ. Dans la feuille shMJ, j'ai créé une validation des données autorisant une liste et dont la source est =Liste_Code_Produit. Dans la feuille shAccueilMenus, j'ai choisi une date concernant un lundi, puis une autre concernant un mercredi, dans la feuille shSaisieMJ, j'ai choisi respectivement un produit du lundi puis un produit du mercredi et tout a fonctionné correctement. Ce n'est peut-être pas la solution la plus simple. Merci de me dire si j'ai bien compris ton indication du précédent message. Pour l'instant, aucun enregistrement n'est encore codifié.
https://cjoint.com/c/IIBohrqwBr6
C'est exactement le principe que je te suggérais.
Mais, Ouh la la , que ta formule pour Liste_Code_Produit est compliquée !
Tu peux faire plus simple sans passer par DECALER et NBVAL et en utilisant les noms de listes déjà définis :
=SI('Saisie MJ'!$B$10="CC05";Liste_Code_LSLM;SI('Saisie MJ'!$B$10="CC06";Liste_Code_LSMJ))
Formule à compléter , bien sûr, pour vendredi, samedi et dimanche
Même principe pour les desserts avec seulement deux listes
Bon courage
https://cjoint.com/c/IIBrwQCw2e6
Pour les viandes, j'ai l’impression que le test que tu as fait est inutile, il n'y a qu'une seule valeur "CC14" que tu mets directement dans la cellule. De toutes façons si tu testes JOURSEM($B$7;2) <= 8 c'est toujours vrai car JOURSEM renvoie un nombre de 1 à 7 et pas autre chose.
Bonne continuation pour la suite, tu progresses bien.
Pour les desserts, si tu utilises la même formule de validation de données que pour les légumes il est logique que le résultat corresponde aux légumes et pas aux desserts. Ce n'est pas une question de mélanges. A la même formule correspond le même résultat.
Bonne continuation
Ah désolé, je n'avais pas vu ta formule complète pour Liste_Code_Produit et je n'avais pas imaginé que tu puisses le faire comme cela !
En fait tel qu'elle est écrite, il est impossible d'atteindre le test de la cellule H10, car les fonctions SI testent d'abord la cellule B10. Ce test de H10 n'est possible que si la cellule B10 est vide (ce qui est exclu normalement). Tu peux t'amuser à vérifier.
Donc la bonne solution est de faire deux formules, une pour les légumes et une autre pour les desserts.
Mais peut-être l'as-tu déjà fait depuis ton message !
Cordialement
Quand j'aurai fini mon programme, je reviendrai sur certaines feuilles et certains modules afin d'obtenir ton accord ou non sur mes commentaires et la manière de comprendre ou pas les formules, les fonctions.
Bonnes fin de journée, nuit, continuation. À lundi.
Effectivement la date de Pâques est variable d'une année à l'autre .
La date de Pâques est calculée par une formule tout à fait empirique, faite par des gens pointus dans ce domaine, et qui donne un résultat exact pour plusieurs dizaine d'années à venir.
Les dates des lundi de Pâques, du jeudi de l'Ascension des dimanche et lundis de Pentecôte en sont dépendantes. Les autres jours fériés sont des dates fixes dans l'année.
Tu peux regarder les formules utilisées pour chacune de ces dates dans la feuille Jours Fériés.
Cordialement