Code nom légume ne se remplit pas correctement
mariam-j Messages postés 1811 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
Feuille Accueil : clic sur création menu
Formulaire UF02_Création menus : Nom nature création menu : clic sur menu journalier; Date menu : Vendredi 05 janvier 2024; Nom légume : Asperges. Le code nom légume sort soit LMR01 ou LWD01 alors qu'il devrait mettre LSV01. merci de m'apporter votre aide.
Bonnes journée et continuation à toutes et à tous. Prenez bien soin de vous.
https://www.cjoint.com/c/MKxltku5pns
- Code nom légume ne se remplit pas correctement
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
7 réponses
L'IA qui aime les défis, est là !
Il semble qu'il y ait une erreur dans la logique de votre code VB/VBA qui attribue les codes aux légumes. Avez-vous vérifié si le bon code est associé aux Asperges ? Si ce n'est pas le cas, assurez-vous d'associer "Asperges" à "LSV01" dans votre base de données ou votre tableau de correspondance. Si le problème persiste, il peut être utile de revoir l'ensemble du code pour identifier une possible erreur de logique ou de syntaxe. Il sera plus facile d'identifier l'origine du problème en ayant accès à votre code VBA. Malheureusement, le lien que vous avez fourni ne fonctionne pas, pouvez-vous reposter le code ici ou décrire plus précisément la partie de votre code qui gère cette fonctionnalité ?
Bonjour,
Quand je clique sur le lien de mon message, le fichier s'ouvre bien.
Je vous l'envoie de nouveau. Je pense que les instructions concernées sont dans la procédure tbDateMenu_Change, select case jour semaine, case 5 puisqu'il s'agit d'un légume du vendredi.
https://www.cjoint.com/c/MKymjXb00Qs
C'est BoBot (l'IA de CCM) qui t'a répondu, ce qu'il souhaite c'est du code pas un fichier, voir les-balises-de-code.
C'est idiot. C'est plus logique de joindre un fichier complet que du code, enfin c'est mon avis.
Option Explicit
Private Sub cmdRetourFeuilleAccueil_Click()
'Va fermer le formulaire et retourner sur la feuille Accueil.
Unload Me
End Sub
Private Sub UserForm_Activate()
tbDateMenu.Left = 488
'Initialisation de la Zone de liste modifiable cbNomNatureCréationMenu.
cbNomNatureCréationMenu.List = Range("TabNatureCréation").Value
'Appel de la procédure MasquerLégumeDeux.
Call MasquerLégumeDeux
End Sub
Private Sub MasquerLégumeDeux()
'Va masquer Les Intitulés (lb), les Zones de liste modifiable (cb) et les Zones de texte (tb) concernant Légume deux dès l'ouverture du formulaire.
lbNomLégumeDeux.Visible = False
cbNomLégumeDeux.Visible = False
tbCodeNomLégumeDeux.Visible = False
lbNomPériodelégumeDeux.Visible = False
cbNomPériodeLégumeDeux.Visible = False
tbCodeNomPériodeLégumeDeux.Visible = False
lbNomConditionnementLégumeDeux.Visible = False
cbNomConditionnementLégumeDeux.Visible = False
tbCodeNomConditionnementLégumeDeux.Visible = False
lbQuantitéLégumeDeux.Visible = False
tbQuantitéLégumeDeux.Visible = False
End Sub
Private Sub tbDateMenu_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Va afficher le calendrier pour choisir la date du menu.
tbDateMenu = Format(Calendrier.Choix(tbDateMenu), "d mmmm yyyy")
Call MiseÀJourTitre
End Sub
Private Sub cbNomNatureCréationMenu_Change()
If cbNomNatureCréationMenu.ListIndex = -1 Then
'Nom nature création menu invalide, on efface la Zone de liste modifiable (cb) et la Zone de texte (tb).
tbCodeNomNatureCréationMenu.Value = Empty
cbNomNatureCréationMenu.Value = Empty
Else
'Nom nature création menu valide, on affiche le code nom nature création menu.
tbCodeNomNatureCréationMenu.Value = cbNomNatureCréationMenu.Column(1)
End If
'Appel de la procédure Mise à jour Titre qui modifiera la caption de l'Intitulé lbTitre.
Call MiseÀJourTitre
'Période viande : à l'ouverture du programme, c'est le True (Vrai) qui s'exécute; quand on choisit menu viande midi weekend dans la Zone de liste modifiable cnNomNatureCréa
'tionMenu, c'est la False (Faux) qui alors s'exécute.
If cbNomNatureCréationMenu.Value = "Menu viande midi weekend" Then
'lbNomPériodeViandeMidiWeekend.Visible = False
'tbNomPériodeViandeMidiWeekend.Visible = False
Call MasquerLégume
Call MasquerDessert
Else
'lbNomPériodeViandeMidiWeekend.Visible = True
'tbNomPériodeViandeMidiWeekend.Visible = True
Call AfficherLégume
Call AfficherDessert
End If
'Si la Zone de texte tbDayeMenu est différente de vide, alors appel de la procédure tbDateMenu_Change
If tbDateMenu.Value <> "" Then Call tbDateMenu_Change
End Sub
Sub MiseÀJourTitre()
'Modifie la caption de l'Intitulé lbTitre (anciennement ModificationLibellés) en ajoutant le contenu de la Zone de liste modifiable cbNomNatureCréationMenu et le contenu de la
'Zone de texte tbDateMenu.
Me.lbTitre = "Création " & LCase(cbNomNatureCréationMenu) & " du " & LCase(tbDateMenu.Value) & "."
End Sub
Private Sub MasquerLégume()
'Va masquer les Intitulés (lb), les Zones de liste modifiable (cb) et les Zones de texte (tb) quand la Zone de liste modifiable cbMenuViandeMidiWeekend est actif.
lbNomLégume.Visible = False
cbNomLégume.Visible = False
tbCodeNomLégume.Visible = False
lbNomPériodelégume.Visible = False
cbNomPériodeLégume.Visible = False
tbCodeNomPériodeLégume.Visible = False
lbNomConditionnementLégume.Visible = False
cbNomConditionnementLégume.Visible = False
tbCodeNomConditionnementLégume.Visible = False
lbQuantitéLégume.Visible = False
tbQuantitéLégume.Visible = False
End Sub
Private Sub MasquerDessert()
'Va masquer les Intitulés (lb), les Zones de liste modifiable (cb) et les Zones de texte (tb) quand la Zone de liste modifiable cbMenuViandeMidiWeekend est actif.
lbNomDessert.Visible = False
cbNomDessert.Visible = False
tbCodeNomDessert.Visible = False
lbNomPériodeDessert.Visible = False
cbNomPériodeDessert.Visible = False
tbCodeNomPériodeDessert.Visible = False
lbNomConditionnementDessert.Visible = False
cbNomConditionnementDessert.Visible = False
tbCodeNomConditionnementDessert.Visible = False
lbQuantitéDessert.Visible = False
tbQuantitéDessert.Visible = False
End Sub
Private Sub AfficherLégume()
'Va affichquer les Intitulés (lb), les Zones de liste modifiable (cb) et les Zones de texte (tb) quand la Zone de liste modifiable cbMenuViandeMidiWeekend est inactif.
lbNomLégume.Visible = True
cbNomLégume.Visible = True
tbCodeNomLégume.Visible = True
lbNomPériodelégume.Visible = True
cbNomPériodeLégume.Visible = True
tbCodeNomPériodeLégume.Visible = True
lbNomConditionnementLégume.Visible = True
cbNomConditionnementLégume.Visible = True
tbCodeNomConditionnementLégume.Visible = True
lbQuantitéLégume.Visible = True
tbQuantitéLégume.Visible = True
End Sub
Private Sub AfficherDessert()
'Va afficher les Intitulés (lb), les Zones de liste modifiable (cb) et les Zones de texte (tb) quand la Zone de liste modifiable cbMenuViandeMidiWeekend est inactif.
lbNomDessert.Visible = True
cbNomDessert.Visible = True
tbCodeNomDessert.Visible = True
lbNomPériodeDessert.Visible = True
cbNomPériodeDessert.Visible = True
tbCodeNomPériodeDessert.Visible = True
lbNomConditionnementDessert.Visible = True
cbNomConditionnementDessert.Visible = True
tbCodeNomConditionnementDessert.Visible = True
lbQuantitéDessert.Visible = True
tbQuantitéDessert.Visible = True
End Sub
Private Sub AfficherLégumeDeux()
'Va afficher Les Intitulés (lb), les Zones de liste modifiable (cb) et les Zones de texte (tb) quand la Zone de liste modifiable cbMenuViandeMidiWeekend est inactif..
lbNomLégumeDeux.Visible = True
cbNomLégumeDeux.Visible = True
tbCodeNomLégumeDeux.Visible = True
lbNomPériodelégumeDeux.Visible = True
cbNomPériodeLégumeDeux.Visible = True
tbCodeNomPériodeLégumeDeux.Visible = True
lbNomConditionnementLégumeDeux.Visible = True
cbNomConditionnementLégumeDeux.Visible = True
tbCodeNomConditionnementLégumeDeux.Visible = True
lbQuantitéLégumeDeux.Visible = True
tbQuantitéLégumeDeux.Visible = True
End Sub
Private Sub tbDateMenu_Change()
Dim J As Integer, JourSemaine As Integer
'Effacement préalable des Zones de liste modifiable.
cbNomLégume.Clear
cbNomLégumeDeux.Clear
cbNomViande.Clear
cbNomDessert.Clear
'Si verification Date menu NOk, on ne fait rien (on sort de la procédure).
If VérifDateMenu = False Then Exit Sub
'Vérification jour férié.
'On error Résume Next : lorsqu'une erreur survient, le contrôle est transmis à l'instruction qui suit immédiatement celle où l'erreur s'est produite, et l'exécution continue. Il
'est recommandé d'utiliser cette formulation plutôt que l'instruction On Error GoTo pour accéder à des objets.
On Error Resume Next
'WorksheetFunction.Match : renvoie la position relative d'un élément dans une matrice (matrice : permet de créer des formules uniques permettant d'obtenir plusieurs résul
'tats et qui agissent sur un groupe d'arguments répartis dans des lignes et des colonnes. Une plage matricielle partage une même formule tandis qu'une constante matri-
'cielle est un groupe de constantes qui sert d'argument), qui correspond à une valeur spécifiée dans un ordre spécifié. Utilisez la fonction Match au lieu de l'une des fonc-
'tions LookUp lorsque vous avez besoin de la position d'un élément dans une plage au lieu de l'élément proprement dit.
J = WorksheetFunction.Match(CLng(DateValue(tbDateMenu.Value)), Range("TabJoursFériés[Date jour férié]"), 0)
'On Error GoTo : valide la routine de gestion d'erreur commençant à la ligne indiquée dans l'argument Line. L'argument Line peut être une étiquette de ligne ou un numéro
'de ligne. En cas d'erreur d'exécution, le contrôle est transmis au point indiqué dans l'argument Line, ce qui valide le gestionnaire d'erreurs. La ligne indiquée dans l'argu-
'ment Line doit se trouver dans la même procédure que l'instruction On Error, sinon une erreur se produit au moment de la compilation.
On Error GoTo 0
If J <> 0 Then
tbNomJourFérié.Value = Range("TabJoursFériés[Nom jour férié]").Item(J)
Else
tbNomJourFérié.Value = ""
End If
JourSemaine = Weekday(tbDateMenu.Value, vbMonday)
'Select Case exécute un des blocs d'instructions indiqués, selon la valeur d'une expression. Selon la valeur de la Zone de liste modifiable cbNomNatureCréationMenu et
'selon la valeur de la Case, va effectuer les affichages demandés.
Select Case cbNomNatureCréationMenu.Value
Case Is = "Menu midi retraite"
'Du lundi au vendredi inclus, si le jour de la semaine est inférieur ou égal à cinq, alors il va remplir les Zones de liste modifiable cbNomLégume, cbNomViande,
'cbNomDessert correspondant à Menu midi retraite.
If JourSemaine <= 5 Then
cbNomLégume.List = Range("TabLégumesMidiRetraite").Value
cbNomViande.List = Range("TabViandesMidiRetraite").Value
cbNomDessert.List = Range("TabDessertMidiRetraite").Value
End If
Case Is = "Menu journalier"
'Viande toute la semaine, dessert cas le plus fréquent.
cbNomViande.List = Range("TabViandesSoirs").Value
cbNomDessert.List = Range("TabDessertSoir").Value
'Particularités légumes et desserts selon jour de la semaine. 'Select Case exécute un des blocs d'instructions indiqués, selon la valeur d'une expression. Selon
'la valeur de JourSemaine, va effectuer les affichages demandés.
Select Case JourSemaine
'Lundi et mardi.
Case 1, 2
cbNomLégume.List = Range("TabLégumesSoirsLundiMardi").Value
'Mercredi et jeudi.
Case 3, 4
cbNomLégume.List = Range("TabLégumesSoirsMercrediJeudi").Value
'Vendredi.
Case 5
cbNomLégume.List = Range("TabLégumesSoirsVendredi").Value
'Samedi.
Case 6
cbNomLégume.List = Range("TabLégumesweekendSamedi").Value
cbNomDessert.List = Range("TabDessertsWeekend").Value
'Dimanche.
Case 7
cbNomLégume.List = Range("TabLégumesweekendDimanche").Value
cbNomDessert.List = Range("TabDessertsWeekend").Value
End Select
Case Is = "Menu viande midi weekend"
cbNomViande.List = Range("TabViandesMidiWeekend").Value
End Select
'Données menu.
Call RécupérationMenu
tbJour = Format(tbDateMenu, "dddd")
tbDateMenu.Left = 555
End Sub
Private Function VérifDateMenu() As Boolean
VérifDateMenu = True
'Select Case exécute un des blocs d'instructions indiqués, selon la valeur d'une expression. Selon la valeur de la Zone de liste modifiable cbNomNatureCréationMenu et selon
'la valeur de la Case, va afficher le MsgBox concerné si le jour de la semaine est supérieur ou égal à six (Menu midi retraite) ou si le jour de la semaine est inférieur à six (me-
'nu viande midi weekend).
Select Case cbNomNatureCréationMenu.Value
Case Is = "Menu midi retraite"
If Weekday(tbDateMenu.Value, vbMonday) >= 6 Then
MsgBox "Menu midi retraite : saisir une date du lundi au vendredi inclus !", vbExclamation
End If
Case Is = "Menu viande midi weekend"
If Weekday(tbDateMenu.Value, vbMonday) < 6 Then
MsgBox "Menu viande midi weekend : saisir une date du samedi au dimanche inclus !", vbExclamation
VérifDateMenu = False
End If
End Select
End Function
Private Sub RécupérationMenu()
Dim I As Long
'Recherche existence menu.
I = IndiceMenu(cbNomNatureCréationMenu.Value, DateValue(tbDateMenu.Value))
If I > 0 Then
'Menu existant dans la feuille BD menu, tableau structuré TabBDMenus : récupération infos menu.
MsgBox "Le menu " & cbNomNatureCréationMenu & " du " & Format(tbDateMenu, "dddd d mmmm yyyy") & " exite déjà dans la feuille BD menus, tableau structuré tabBDMenus. " & vbCrLf & vbCrLf & "Vous pouvez le modifier ou le supprimer.", vbExclamation
Call RécupérationInfosMenu(I)
Else
'Menu inexistant dans la feuille BD menus, tableau structuré TabBDMenus : réinitialisation des données du formulaire.
cbNomLégume.Value = ""
cbNomLégumeDeux.Value = ""
cbNomViande.Value = ""
cbNomDessert.Value = ""
tbQuantitéLégume.Value = ""
tbQuantitéViande.Value = ""
tbQuantitéDessert.Value = ""
'Prédéfinition des valeurs.
'WorksheetFunction.CountIfs : compte le nombre de cellules à l'intérieur d'une plage qui répondent à plusieurs critères.
tbNuméroCréationMenu.Value = tbCodeNomNatureCréationMenu.Value & "-" & Format(WorksheetFunction.CountIfs(Range("TabBDMenus[Code Nom Nature Création Menu]"), tbCodeNomNatureCréationMenu.Value) + 1, "00")
tbDateCréationMenu.Value = Format(Date, "dddd d mmmm yyyy")
tbNomMoisMenu.Value = Format(DateValue(tbDateMenu.Value), "mmmm yyyy")
Call PrédéfinitionsSpécifiques
End If
End Sub
Private Function IndiceMenu(ByVal NomNatureCréationMenu As String, ByVal DateMenu As Date) As Long
Dim I As Long
'Renvoie l'indice du menu de la feuille BD menus, tableau structuré TabBDMenus, pour le code menu défini si le menu existe. Renvoie zéro si le menu n'existe pas.
IndiceMenu = 0
For I = 1 To Range("TabBDMenus").ListObject.ListRows.Count
If Range("TabBDMenus[Nom nature création menu]").Item(I) = NomNatureCréationMenu And Range("TabBDMenus[Date menu]").Item(I) = DateMenu Then
IndiceMenu = I
Exit Function
End If
Next I
End Function
Private Sub RécupérationInfosMenu(ByVal Indice As Long)
With [TabBDMenus].ListObject
'Va remplir les Zones de liste modifiable (cb) et les Zones de texte (tb) en allant chercher les informations dans la feuille BD menus, tableau structuré BDMenus.
'DataBodyRange : cette propriété renvoie un objet Range qui représente la plage de valeurs, à l'exception de la ligne d'en-tête, dans un tableau structuré. Type de données
'en lecture seule.
cbNomLégume.Value = .ListColumns("Nom légume").DataBodyRange(Indice)
tbCodeNomLégume.Value = .ListColumns("Code nom légume").DataBodyRange(Indice)
cbNomPériodeLégume.Value = .ListColumns("Nom période légume").DataBodyRange(Indice)
tbCodeNomPériodeLégume.Value = .ListColumns("Code nom période légume").DataBodyRange(Indice)
cbNomConditionnementLégume.Value = .ListColumns("Nom conditionnement légume").DataBodyRange(Indice)
tbCodeNomConditionnementLégume.Value = .ListColumns("Code nom conditionnement légume").DataBodyRange(Indice)
cbNomLégumeDeux.Value = .ListColumns("Nom légume deux").DataBodyRange(Indice)
tbCodeNomLégumeDeux.Value = .ListColumns("Code nom légume deux").DataBodyRange(Indice)
cbNomPériodeLégumeDeux.Value = .ListColumns("Nom période légume deux").DataBodyRange(Indice)
tbCodeNomPériodeLégumeDeux.Value = .ListColumns("Code nom période légume deux").DataBodyRange(Indice)
cbNomConditionnementLégumeDeux.Value = .ListColumns("Nom conditionnement légume deux").DataBodyRange(Indice)
tbCodeNomConditionnementLégumeDeux.Value = .ListColumns("Code nom conditionnement légume deux").DataBodyRange(Indice)
'Replace : renvoie une chaîne dans laquelle une sous-chaîne spécifiée a été remplacée plusieurs fois par une autre sous-chaîne.
tbQuantitéLégume.Value = Replace(Format(.ListColumns("Quantité légume").DataBodyRange(Indice), "# ##0.00"), ",", ",")
'Replace : renvoie une chaîne dans laquelle une sous-chaîne spécifiée a été remplacée plusieurs fois par une autre sous-chaîne.
tbQuantitéLégumeDeux.Value = Replace(Format(.ListColumns("Quantité légume deux").DataBodyRange(Indice), "# ##0.00"), ",", ",")
cbNomViande.Value = .ListColumns("Nom viande").DataBodyRange(Indice)
tbCodeNomViande.Value = .ListColumns("Code nom viande").DataBodyRange(Indice)
cbNomPériodeViande.Value = .ListColumns("Nom période viande").DataBodyRange(Indice)
tbCodeNomPériodeViande.Value = .ListColumns("Code nom période viande").DataBodyRange(Indice)
cbNomConditionnementViande.Value = .ListColumns("Nom conditionnement viande").DataBodyRange(Indice)
tbCodeNomConditionnementViande.Value = .ListColumns("Code nom conditionnement viande").DataBodyRange(Indice)
tbNomPériodeViandeMidiWeekend.Value = .ListColumns("Nom période viande midi weekend").DataBodyRange(Indice)
'Replace : renvoie une chaîne dans laquelle une sous-chaîne spécifiée a été remplacée plusieurs fois par une autre sous-chaîne.
tbQuantitéViande.Value = Replace(Format(.ListColumns("Quantité viande").DataBodyRange(Indice), "# ##0.00"), ",", ",")
cbNomDessert.Value = .ListColumns("Nom dessert").DataBodyRange(Indice)
tbCodeNomDessert.Value = .ListColumns("Code nom dessert").DataBodyRange(Indice)
cbNomPériodeDessert.Value = .ListColumns("Nom période dessert").DataBodyRange(Indice)
tbCodeNomPériodeDessert.Value = .ListColumns("Code nom période dessert").DataBodyRange(Indice)
cbNomConditionnementDessert.Value = .ListColumns("Nom conditionnement dessert").DataBodyRange(Indice)
tbCodeNomConditionnementDessert.Value = .ListColumns("Code nom conditionnement dessert").DataBodyRange(Indice)
'Replace : renvoie une chaîne dans laquelle une sous-chaîne spécifiée a été remplacée plusieurs fois par une autre sous-chaîne.
tbQuantitéDessert.Value = Replace(Format(.ListColumns("Quantité dessert").DataBodyRange(Indice), "# ##0.00"), ",", ",")
tbNuméroCréationMenu.Value = .ListColumns("Numéro création menu").DataBodyRange(Indice)
tbDateCréationMenu.Value = .ListColumns("Date création menu").DataBodyRange(Indice)
tbNomMoisMenu.Value = .ListColumns("Nom mois menu").DataBodyRange(Indice)
End With
End Sub
Private Sub PrédéfinitionsSpécifiques()
Dim I As Long, LigMoins1 As Long, LigMoins2 As Long
'Select Case exécute un des blocs d'instructions indiqués, selon la valeur d'une expression. Selon la valeur de la Zone de liste modifiable cbNomNatureCréationMenu et selon
'valeur de la Case, va exécuter les instructions qui suivent la case.
Select Case cbNomNatureCréationMenu.Value
Case Is = "Menu midi retraite"
'Légumes spécifiques Maïs et Radis : deux jours ouvrés de suite.
'WorksheetFunction.WorkDay renvoie un nombre représentant une date qui est le nombre de jours ouvrés indiqué avant ou après une date (date de début). Les jours ou-
'vrés excluent les weekends et les jours de congès. Utilisez la Fonction WorkDay pour exclure les weekends et les jours de congés lorsque vous calculez les dates
'd'échéance des factures, les heures de livraison attendues ou le nombre de jours effectués.
LigMoins1 = IndiceMenu(cbNomNatureCréationMenu.Value, WorksheetFunction.WorkDay(DateValue(tbDateMenu.Value), -1))
If LigMoins1 > 0 Then
If Range("TabBDMenus[Nom légume]").Item(LigMoins1) = "Maïs" Or Range("TabBDMenus[Nom légume]").Item(LigMoins1) = "Radis" Then
LigMoins2 = IndiceMenu(cbNomNatureCréationMenu.Value, WorksheetFunction.WorkDay(DateValue(tbDateMenu.Value), -2))
If LigMoins2 = 0 Or Range("TabBDMenus[Nom légume]").Item(LigMoins2) <> Range("TabBDMenus[Nom légume]").Item(LigMoins1) Then
cbNomLégume.Value = Range("TabBDMenus[Nom légume]").Item(LigMoins1)
End If
End If
End If
'Viandes mardi à vendredi identiques à viande lundi précédent.
If Weekday(DateValue(tbDateMenu.Value), vbMonday) >= 2 And Weekday(DateValue(tbDateMenu), vbMonday) <= 5 Then
I = IndiceMenu(cbNomNatureCréationMenu.Value, DateValue(tbDateMenu.Value) - Weekday(DateValue(tbDateMenu.Value), vbMonday) + 1)
If I > 0 Then cbNomViande.Value = Range("TabBDMenus[Nom viande]").Item(I)
End If
'Dessert unique toute la semaine.
cbNomDessert.Value = "Pomme"
Case Is = "Menu journalier"
'Légume mardi identique au légume lundi ou légume jeudi identique au légume mercredi.
If Weekday(DateValue(tbDateMenu), vbMonday) = 2 Or Weekday(DateValue(tbDateMenu.Value), vbMonday) = 4 Then
I = IndiceMenu(cbNomNatureCréationMenu.Value, DateValue(tbDateMenu.Value) - 1)
If I > 0 Then cbNomLégume.Value = Range("TabBDMenus[Nom légume]").Item(I)
If I > 0 Then tbQuantitéLégume.Value = Range("TabBDMenus[Quantité légume]").Item(I)
End If
'Dessert unique en semaine.
If Weekday(DateValue(tbDateMenu.Value), vbMonday) <= 5 Then
cbNomDessert.Value = "Pomme"
'tbCodeNomDessert.Value = "DS01"
'cbNomPériodeDessert.Value = "Lundi à vendredi soirs"
'tbCodeNomPériodeDessert.Value = "PAM06"
End If
'Dessert dimanche identique au dessert samedi.
If Weekday(DateValue(tbDateMenu.Value), vbMonday) = 7 Then
I = IndiceMenu(cbNomNatureCréationMenu.Value, DateValue(tbDateMenu.Value) = -1)
If I > 0 Then cbNomDessert.Value = Range("TabBDMenus[Nom dessert]").Item(I)
If 1 > 0 Then tbQuantitéDessert.Value = Range("TabBDMenus[Quantité dessert]").Item(I)
End If
Case Is = "Menu viande midi weekend"
'Période viande midi weekend.
If Month(DateValue(tbDateMenu.Value)) <= 6 Then
tbNomPériodeViandeMidiWeekend.Value = "Premier semestre"
Else
tbNomPériodeViandeMidiWeekend.Value = "Deuxième semestre"
End If
End Select
End Sub
Private Sub cbNomLégume_Change()
Dim I As Long
'Ne pas supprimer : utile pour la création d'un nouveau menu.
'Recherche existence article dans la feuille BD articles menus, tableau structuré TabBDArticlesMenus afin de remplir la Zone de texte tbCodeNomLégume, la zone de liste mo-
'difiable cbNomPériodeLégume, la Zone de texte tbCodeNomPériodeLégume, la Zone de liste modifiable cbNomConditionnementLégume, la Zone de texte tbCodeNomCondi-
'tionnementLégume.
I = IndiceArticle(cbNomLégume)
If I > 0 Then
'Article existant : récupération des données dans la feuille BD articles menus, tableau structuré TabBDArticlesMenus.
tbCodeNomLégume.Value = Range("TabBDArticlesMenus[Code nom articles menus]").Item(I)
cbNomPériodeLégume.Value = Range("TabBDArticlesMenus[Nom période articles menus]").Item(I)
tbCodeNomPériodeLégume.Value = Range("TabBDArticlesmenus[Code nom période articles menus]").Item(I)
cbNomConditionnementLégume.Value = Range("TabBDArticlesMenus[nom conditionnement articles menus]").Item(I)
tbCodeNomConditionnementLégume.Value = Range("TabBDArticlesMenus[Code nom conditionnement articles menus]").Item(I)
tbQuantitéLégume.Value = Range("TabBDArticlesMenus[Quantité pour un repas]").Item(I)
Else
'Article inexistant : effacement des données.
tbCodeNomLégume.Value = ""
cbNomPériodeLégume.Value = ""
tbCodeNomPériodeLégume.Value = ""
cbNomConditionnementLégume.Value = ""
tbCodeNomConditionnementLégume.Value = ""
tbQuantitéLégume.Value = ""
End If
'Cas particulier Légume deux.
If cbNomLégume.Value = "Frites" Then
Call AfficherLégumeDeux
'Le code avant le nom est utile pour savoir trouver la bonne ligne du dimanche soir.
tbCodeNomLégumeDeux.Value = "LWD013"
cbNomLégumeDeux.Value = "Asperges"
Else
cbNomLégumeDeux.Value = ""
Call MasquerLégumeDeux
End If
'Cas particulier légume-viande combinés lundi mardi soirs.
'Select Case exécute un des blocs d'instructions indiqués, selon la valeur d'une expression. Selon la valeur de la Zone de liste modifiable cbNomLégume et du nm de la case,
'va remplir la zone de liste modifiable cbNomViande de son nom de viande adéquat.
Select Case cbNomLégume.Value
Case Is = "Cassoulet"
cbNomViande.Value = "Viande cassoulet"
Case Is = "Choucroute"
cbNomViande.Value = "Viande choucroute"
Case Is = "Paella"
cbNomViande.Value = "Viande paella"
End Select
End Sub
Private Sub cbNomLégumeDeux_Change()
Dim I As Long
'Ne pas supprimer : utile pour la création d'un nouveau menu.
'Recherche existence article dans la feuille BD articles menus, tableau structuré TabBDArticlesMenus afin de remplir la Zone de texte tbCodeNomLégumeDeux, la zone de
'liste modifiable cbNomPériodeLégumeDeux, la Zone de texte tbCodeNomPériodeLégumeDeux, la Zone de liste modifiable cbNomConditionnementLégumeDeux, la Zone de
'texte tbCodeNomCondi-tionnementLégumeDeux.
I = IndiceArticle(cbNomLégumeDeux)
If I > 0 Then
'Article existant : récupération des données dans la feuille BD articles menus, tableau structuré TabBDArticlesMenus.
tbCodeNomLégumeDeux.Value = Range("TabBDArticlesMenus[Code nom articles menus]").Item(I)
cbNomPériodeLégumeDeux.Value = Range("TabBDArticlesMenus[Nom période articles menus]").Item(I)
tbCodeNomPériodeLégumeDeux.Value = Range("TabBDArticlesmenus[Code nom période articles menus]").Item(I)
cbNomConditionnementLégumeDeux.Value = Range("TabBDArticlesMenus[nom conditionnement articles menus]").Item(I)
tbCodeNomConditionnementLégumeDeux.Value = Range("TabBDArticlesMenus[Code nom conditionnement articles menus]").Item(I)
tbQuantitéLégumeDeux.Value = Range("TabBDArticlesMenus[Quantité pour un repas]").Item(I)
Else
'Article inexistant : effacement des données.
tbCodeNomLégumeDeux.Value = ""
cbNomPériodeLégumeDeux.Value = ""
tbCodeNomPériodeLégumeDeux.Value = ""
cbNomConditionnementLégumeDeux.Value = ""
tbCodeNomConditionnementLégumeDeux.Value = ""
tbQuantitéLégumeDeux.Value = ""
End If
End Sub
Private Sub cbNomViande_Change()
Dim I As Long
'Ne pas supprimer : utile pour la création d'un nouveau menu.
'Recherche existence article dans la feuille BD articles menus, tableau structuré TabBDArticlesMenus afin de remplir la Zone de texte tbCodeNomViande, la zone de liste mo-
'difiable cbNomPériodeViande, la Zone de texte tbCodeNomPériodeViande, la Zone de liste modifiable cbNomConditionnementViande, la Zone de texte tbCodeNomCondition-
'nementViande.
I = IndiceArticle(cbNomViande)
If I > 0 Then
'Article existant : récupération des données dans la feuille BD articles menus, tableau structuré TabBDArticlesMenus.
tbCodeNomViande.Value = Range("TabBDArticlesMenus[Code nom articles menus]").Item(I)
cbNomPériodeViande.Value = Range("TabBDArticlesMenus[Nom période articles menus]").Item(I)
tbCodeNomPériodeViande.Value = Range("TabBDArticlesmenus[Code nom période articles menus]").Item(I)
cbNomConditionnementViande.Value = Range("TabBDArticlesMenus[nom conditionnement articles menus]").Item(I)
tbCodeNomConditionnementViande.Value = Range("TabBDArticlesMenus[Code nom conditionnement articles menus]").Item(I)
tbQuantitéViande.Value = Range("TabBDArticlesMenus[Quantité pour un repas]").Item(I)
Else
'Article inexistant : effacement des données.
tbCodeNomViande.Value = ""
cbNomPériodeViande.Value = ""
tbCodeNomPériodeViande.Value = ""
cbNomConditionnementViande.Value = ""
tbCodeNomConditionnementViande.Value = ""
tbQuantitéViande.Value = ""
End If
End Sub
Private Sub cbNomDessert_Change()
Dim I As Long
'Ne pas supprimer : utile pour la création d'un nouveau menu.
'Recherche existence article dans la feuille BD articles menus, tableau structuré TabBDArticlesMenus afin de remplir la Zone de texte tbCodeNomDessert, la zone de liste mo-
'difiable cbNomPériodeDessert, la Zone de texte tbCodeNomPériodeDessert, la Zone de liste modifiable cbNomConditionnementDessert, la Zone de texte tbCodeNomCondi-
'tionnementDessert.
I = IndiceArticle(cbNomDessert)
If I > 0 Then
'Article existant : récupération des données dans la feuille BD articles menus, tableau structuré TabBDArticlesMenus.
tbCodeNomDessert.Value = Range("TabBDArticlesMenus[Code nom articles menus]").Item(I)
cbNomPériodeDessert.Value = Range("TabBDArticlesMenus[Nom période articles menus]").Item(I)
tbCodeNomPériodeDessert.Value = Range("TabBDArticlesmenus[Code nom période articles menus]").Item(I)
cbNomConditionnementDessert.Value = Range("TabBDArticlesMenus[nom conditionnement articles menus]").Item(I)
tbCodeNomConditionnementDessert.Value = Range("TabBDArticlesMenus[Code nom conditionnement articles menus]").Item(I)
tbQuantitéDessert.Value = Range("TabBDArticlesMenus[Quantité pour un repas]").Item(I)
Else
'Article inexistant : effacement des données.
tbCodeNomDessert.Value = ""
cbNomPériodeDessert.Value = ""
tbCodeNomPériodeDessert.Value = ""
cbNomConditionnementDessert.Value = ""
tbCodeNomConditionnementDessert.Value = ""
tbQuantitéDessert.Value = ""
End If
End Sub
Private Function IndiceArticle(ByVal NomArticle As String) As Long
Dim Coderecherche As String, Chiff As Byte, Formule As String
If NomArticle = cbNomLégumeDeux.Value Then
Coderecherche = tbCodeNomLégumeDeux.Value
For Chiff = 0 To 9
Coderecherche = Replace(Coderecherche, Chiff, "")
Next Chiff
IndiceArticle = MATCH2(Range("TabBDArticlesmenus[Code nom nature articles menus]"), Coderecherche, Range("TabBDArticlesMenus[Nom articles menus]"), NomArticle)
Else
'Worksheetfunction.match : Renvoie la position relative d'un élément dans une matrice (matrice : permet de créer des formules uniques permettant d’obtenir plusieurs résultats
'et qui agissent sur un groupe d’arguments répartis dans des lignes et des colonnes. Une plage matricielle partage une même formule tandis qu’une constante matricielle est
'un groupe de constantes qui sert d’argument.), qui correspond à une valeur spécifiée dans un ordre spécifié. Utilisez la fonction MATCH au lieu de l'une des fonctions
'LOOKUP lorsque vous avez besoin de la position d'un élément dans une plage au lieu de l'élément proprement dit.
'cbnomnaturecréationmenu.
If cbNomNatureCréationMenu = "Menu journalier" And NomArticle = "Pomme" Then
IndiceArticle = WorksheetFunction.Match("Dessert soir", Range("TabBDArticlesMenus[Nom nature articles menus]"), 0)
ElseIf cbNomNatureCréationMenu = "Menu journalier" And NomArticle <> "Pomme" Then
'On Error GoTo line Valide la routine de gestion d'erreur commençant à la ligne indiquée dans l'argument line. L'argument line peut être une étiquette de ligne ou un numéro de
'ligne. En cas d'erreur d'exécution, le contrôle est transmis au point indiqué dans l'argument line, ce qui valide le gestionnaire d'erreurs. La ligne indiquée dans l'argument line
'doit se trouver dans la même procédure que l'instruction On Error ; sinon, une erreur se produit au moment de la compilation.
On Error GoTo Gestion_Erreur
RechercheSuivante1:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Dimanche midi""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante2:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Dimanche midi et soir""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante3:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Dimanche soir""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante4:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Lundi à dimanche soirs""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante5:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""lundi à vendredi midis""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante6:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Lundi à vendredi soirs""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante7:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Lundi et mardi soirs""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante8:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Mercredi et jeudi soirs""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante9:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Samedi et dimanche midis""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante10:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Samedi et dimanche midis et soirs""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante11:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Samedi midi et soir""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
RechercheSuivante12:
Formule = "=MATCH(1,(TabBDArticlesMenus[Nom articles menus]=""" & NomArticle & """)*(TabBDArticlesMenus[Nom période articles menus]=""Vendredi soir""),0)"
IndiceArticle = Application.Evaluate(Formule)
If IndiceArticle > 0 Then Exit Function
Else
IndiceArticle = WorksheetFunction.Match(NomArticle, Range("TabBDArticlesMenus[Nom articles menus]"), 0)
End If
End If
Exit Function
Gestion_Erreur:
'Resume Next Si l'erreur s'est produite dans une procédure contenant le gestionnaire d'erreurs, l'exécution reprend à partir de l'instruction qui suit immédiatement celle qui a pro-
'voqué l'erreur. Si l'erreur s'est produite dans une procédure appelée, l'exécution reprend à l'instruction qui suit immédiatement la dernière instruction ayant appelé la procédure
'contenant la routine de gestion d'erreur (ou l'instruction On Error Resume Next).
Resume Next
End Function
Function MATCH2(Plage1 As Range, Critère1, Plage2 As Range, Critère2)
Dim T1, T2 As Variant, I As Long
T1 = Plage1.Value
T2 = Plage2.Value
'LBound : Renvoie une valeur de type Long contenant le plus petit indice disponible pour la dimension indiquée d'un tableau. UBound : Renvoie une valeur de type Long conte-
'nant le plus grand indice disponible pour la dimension indiquée d'un tableau.
For I = LBound(T1) To UBound(T2)
'Like : Permet de comparer deux chaînes.
If T1(I, 1) Like Critère1 And T2(I, 1) Like Critère2 Then
MATCH2 = I
Exit Function
End If
Next I
End Function
Private Sub tbQuantitéLégume_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'N'autoriser que la saisie des chiffres et d'une seule virgule. KeyAscii : c'est la référence Ascii qui caractérise le point et la virgule : 44 pour la virgule, 46 pour le point. Va permet
'tre de transformer le point en virgule lors de la saisie des chiffres du tbQuantitéLégume.Value.
If KeyAscii = 46 Then KeyAscii = 44
'InStr : liste des chiffres autorisés.
If InStr("1234567890,", Chr(KeyAscii)) = 0 Or (InStr(tbQuantitéLégume.Value, ",") <> 0 And Chr(KeyAscii) = ",") Then
KeyAscii = 0
End If
End Sub
Private Sub tbQuantitéLégumeDeux_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'N'autoriser que la saisie des chiffres et d'une seule virgule. KeyAscii : c'est la référence Ascii qui caractérise le point et la virgule : 44 pour la virgule, 46 pour le point. Va permet
'tre de transformer le point en virgule lors de la saisie des chiffres du tbQuantitéLégumeDeux.Value.
If KeyAscii = 46 Then KeyAscii = 44
'InStr : liste des chiffres autorisés.
If InStr("1234567890,", Chr(KeyAscii)) = 0 Or (InStr(tbQuantitéLégumeDeux.Value, ",") <> 0 And Chr(KeyAscii) = ",") Then
KeyAscii = 0
End If
End Sub
Private Sub tbQuantitéViande_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'N'autoriser que la saisie des chiffres et d'une seule virgule. KeyAscii : c'est la référence Ascii qui caractérise le point et la virgule : 44 pour la virgule, 46 pour le point. Va permet
'tre de transformer le point en virgule lors de la saisie des chiffres du tbQuantitéViande.Value.
If KeyAscii = 46 Then KeyAscii = 44
'InStr : liste des chiffres autorisés.
If InStr("1234567890,", Chr(KeyAscii)) = 0 Or (InStr(tbQuantitéViande.Value, ",") <> 0 And Chr(KeyAscii) = ",") Then
KeyAscii = 0
End If
End Sub
Private Sub tbQuantitéDessert_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'N'autoriser que la saisie des chiffres et d'une seule virgule. KeyAscii : c'est la référence Ascii qui caractérise le point et la virgule : 44 pour la virgule, 46 pour le point. Va permet
'tre de transformer le point en virgule lors de la saisie des chiffres du tbQuantitéDessert.Value.
If KeyAscii = 46 Then KeyAscii = 44
'InStr : liste des chiffres autorisés.
If InStr("1234567890,", Chr(KeyAscii)) = 0 Or (InStr(tbQuantitéDessert.Value, ",") <> 0 And Chr(KeyAscii) = ",") Then
KeyAscii = 0
End If
End Sub
Private Sub cmdValidationCréationMenu_Click()
Dim I As Long
'Si VérifDateMenu NOk, on ne fait rien et on quitte la procédure.
If VérifDateMenu = False Then Exit Sub
'Recherche existence menu.
I = IndiceMenu(cbNomNatureCréationMenu.Value, DateValue(tbDateMenu.Value))
If I = 0 Then
'Nouveau menu : dans la feuille BD menus, tableau structuré tabBDMenus, ajouter une ligne vide en fin de tableau.
With Range("TabBDMenus").ListObject
.ListRows.Add
'Dernière ligne du tableau.
I = .ListRows.Count
End With
End If
'Insérer les données saisies dans le formulaire UF02_CréationMenus dans la feuille BD menus, tableau structuré TabBDMenus dans la dernière ligne nouvellement ajoutée.
'Première partie destination des données (TabBDMenus), deuxième partie (Source des donées : Zone de liste modifiable (cb) et Zones de texte (tb) avec des particularités
'pour les quantités.
Range("TabBDMenus[Nom nature création menu]").Item(I) = cbNomNatureCréationMenu.Value
Range("TabBDMenus[Code nom nature création menu]").Item(I) = tbCodeNomNatureCréationMenu.Value
Range("TabBDMenus[Date menu]").Item(I) = DateValue(tbDateMenu.Value)
Range("TabBDMenus[Date création menu]").Item(I) = tbDateCréationMenu.Value
Range("TabBDMenus[Nom légume]").Item(I) = cbNomLégume.Value
Range("TabBDMenus[Code nom légume]").Item(I) = tbCodeNomLégume.Value
Range("TabBDMenus[Nom période légume]").Item(I) = cbNomPériodeLégume.Value
Range("TabBDMenus[Code nom période légume]").Item(I) = tbCodeNomPériodeLégume.Value
Range("TabBDMenus[Nom conditionnement légume]").Item(I) = cbNomConditionnementLégume.Value
Range("TabBDMenus[Code nom conditionnement légume]").Item(I) = tbCodeNomConditionnementLégume.Value
Range("TabBDMenus[Nom légume deux]").Item(I) = cbNomLégumeDeux.Value
Range("TabBDMenus[Code nom légume deux]").Item(I) = tbCodeNomLégumeDeux.Value
Range("TabBDMenus[Nom période légume deux]").Item(I) = cbNomPériodeLégumeDeux.Value
Range("TabBDMenus[Code nom période légume deux]").Item(I) = tbCodeNomPériodeLégumeDeux.Value
Range("TabBDMenus[Nom conditionnement légume deux]").Item(I) = cbNomConditionnementLégumeDeux.Value
Range("TabBDMenus[Code nom conditionnement légume deux]").Item(I) = tbCodeNomConditionnementLégumeDeux.Value
If tbQuantitéLégume <> "" Then
Range("TabBDMenus[Quantité légume]").Item(I) = CDbl(tbQuantitéLégume.Value)
End If
If tbQuantitéLégumeDeux <> "" Then
Range("TabBDMenus[Quantité légume deux]").Item(I) = CDbl(tbQuantitéLégumeDeux.Value)
End If
Range("TabBDMenus[Nom viande]").Item(I) = cbNomViande.Value
Range("TabBDMenus[Code nom viande]").Item(I) = tbCodeNomViande.Value
Range("TabBDMenus[Nom période viande]").Item(I) = cbNomPériodeViande.Value
Range("TabBDMenus[Code nom période viande]").Item(I) = tbCodeNomPériodeViande.Value
Range("TabBDMenus[Nom conditionnement viande]").Item(I) = cbNomConditionnementViande.Value
Range("TabBDMenus[Code nom conditionnement viande]").Item(I) = tbCodeNomConditionnementViande.Value
Range("TabBDMenus[Nom période viande midi weekend]").Item(I) = tbNomPériodeViandeMidiWeekend.Value
If tbQuantitéViande <> "" Then
Range("TabBDMenus[Quantité viande]").Item(I) = CDbl(tbQuantitéViande.Value)
End If
Range("TabBDMenus[Nom dessert]").Item(I) = cbNomDessert.Value
Range("TabBDMenus[Code nom dessert]").Item(I) = tbCodeNomDessert.Value
Range("TabBDMenus[Nom période dessert]").Item(I) = cbNomPériodeDessert.Value
Range("TabBDMenus[Code nom période dessert]").Item(I) = tbCodeNomPériodeDessert.Value
Range("TabBDMenus[Nom conditionnement dessert]").Item(I) = cbNomConditionnementDessert.Value
Range("TabBDMenus[Code nom conditionnement dessert]").Item(I) = tbCodeNomConditionnementDessert.Value
If tbQuantitéDessert <> "" Then
Range("TabBDMenus[Quantité dessert]").Item(I) = CDbl(tbQuantitéDessert.Value)
End If
Range("TabBDMenus[Numéro création menu]").Item(I) = tbNuméroCréationMenu.Value
Range("TabBDMenus[Nom jour férié]").Item(I) = tbNomJourFérié.Value
Range("TabBDMenus[Nom mois menu]").Item(I) = tbNomMoisMenu.Value
If cbNomNatureCréationMenu = "Menu midi retraite" Then
Call GénérerMenusMidiRetraite
ElseIf cbNomNatureCréationMenu = "Menu journalier" Then
Call GénérerMenusJournaliers
ElseIf cbNomNatureCréationMenu = "Menu viande midi weekend" Then
Call GénérerMenusViandesMidiWeekend
End If
'Trier la feuille BD menus, tableau structuré TabBDMenus, par date menu et nom nature création menu.
Range("TabBDMenus").Sort key1:=Range("TabBDMenus[Date menu]"), key2:=Range("TabBDMenus[Nom nature création menu]"), order2:=xlDescending, _
Header:=xlYes
Call RenuméroterMenus
End Sub
Private Sub cmdSuppressionCréationMenu_Click()
Dim I As Long
'Recherche existence article. Si la zone de liste modifiable cbNomNatureCréationMenu et si la zone de texte tbDateMenu est vide, alors on quitte la procédure.
If cbNomNatureCréationMenu.Value = "" Or tbDateMenu.Value = "" Then Exit Sub
I = IndiceMenu(cbNomNatureCréationMenu.Value, DateValue(tbDateMenu.Value))
If I > 0 Then
If MsgBox("Souhaitez-vous supprimer le menu " & cbNomNatureCréationMenu.Value & vbCrLf & "du " & Format(tbDateMenu.Value, "dddd d mmmm yyyy") & " ?", vbExclamation + vbYesNo) = vbYes Then
Range("TabBDMenus").ListObject.ListRows(I).Delete
Call RenuméroterMenus
cbNomNatureCréationMenu.Value = ""
If cbNomNatureCréationMenu = "Menu midi retraite" Then
Call GénérerMenusMidiRetraite
ElseIf cbNomNatureCréationMenu = "Menu journalier" Then
Call GénérerMenusJournaliers
ElseIf cbNomNatureCréationMenu = "Menu viande midi weekend" Then
Call GénérerMenusViandesMidiWeekend
End If
End If
End If
End Sub
Private Sub RenuméroterMenus()
Dim K As Long, NbLignes As Long, N As Long
NbLignes = Range("TabBDMenus").ListObject.ListRows.Count
K = 1
For N = 1 To NbLignes
'Si la valeur CodeMenu de l'élément N du tableau est identique au contrôle de la Zone de liste modifiable CBNomNatureCréationMenu pour l'année en cours, alors on renu-
'mérote l 'élément.
If Range("TabBDMenus[Code nom nature création menu]").Item(N) = tbCodeNomNatureCréationMenu.Value Then
'Alors on renumérote l'élément.
Range("TabBDMenus[Numéro création menu]").Item(N) = tbCodeNomNatureCréationMenu.Value & "-" & Format(K, "00")
K = K + 1
End If
Next N
End Sub
Création articles menusCAMDessert midi retraiteDMRPommeDMR01Lundi à vendredi midisPAM051 sachet de 2 kilogrammes. 1 pomme pour 1 repasCAM171,001,00mercredi 6 septembre 2023DMR-01DMRPommeCréation articles menusCAMDessert soirDSPommeDS01Lundi à vendredi soirsPAM061 sachet de 2 kilogrammes. 1 pomme pour 1 repasCAM171,001,00mercredi 6 septembre 2023DS-01DSPommeCréation articles menusCAMDesserts weekendDWAnanasDW01Samedi et dimanche midis et soirsPAM10Unité : 1 pour 4 repasCAM330,250,50mercredi 6 septembre 2023DW-01DWAnanasCréation articles menusCAMDesserts weekendDWAutres fruitsDW02Samedi et dimanche midis et soirsPAM10Unité : 2 à 4 pour 1 repasCAM354,008,00mercredi 6 septembre 2023DW-02DWAutres fruitsCréation articles menusCAMDesserts weekendDWAvocatsDW03Samedi et dimanche midis et soirsPAM10Unité : 1 pour 1 repasCAM311,002,00mercredi 6 septembre 2023DW-03DWAvocatsCréation articles menusCAMDesserts weekendDWBananesDW04Samedi et dimanche midis et soirsPAM10Unité : 1 pour 1 repasCAM311,002,00mercredi 6 septembre 2023DW-04DWBananesCréation articles menusCAMDesserts weekendDWClémentinesDW05Samedi et dimanche midis et soirsPAM10Unité : 2 à 4 pour 1 repasCAM354,008,00mercredi 6 septembre 2023DW-05DWClémentinesCréation articles menusCAMDesserts weekendDWCrèmeDW06Samedi et dimanche midis et soirsPAM101 pack de 4 pots pour le weekend. 1 pot pour 1 repasCAM101,002,00mercredi 6 septembre 2023DW-06DWCrèmeCréation articles menusCAMDesserts weekendDWDattesDW07Samedi et dimanche midis et soirsPAM101 paquet pour 4 repasCAM150,250,50mercredi 6 septembre 2023DW-07DWDattesCréation articles menusCAMDesserts weekendDWFiguesDW08Samedi et dimanche midis et soirsPAM101 paquet pour 4 repasCAM150,250,50mercredi 6 septembre 2023DW-08DWFiguesCréation articles menusCAMDesserts weekendDWFromage blancDW09Samedi et dimanche midis et soirsPAM101 pack de 4 pots pour le weekend. 1 pot pour 1 repasCAM101,002,00mercredi 6 septembre 2023DW-09DWFromage blancCréation articles menusCAMDesserts weekendDWFruits au siropDW10Samedi et dimanche midis et soirsPAM101 boîte pour 2 repasCAM050,501,00mercredi 6 septembre 2023DW-10DWFruits au siropCréation articles menusCAMDesserts weekendDWFruits de saisonDW11Samedi et dimanche midis et soirsPAM10Unité : 2 à 4 pour 1 repasCAM354,008,00mercredi 6 septembre 2023DW-11DWFruits de saisonCréation articles menusCAMDesserts weekendDWGâteau de rizDW12Samedi et dimanche midis et soirsPAM101 pack de 4 pots pour le weekend. 1 pot pour 1 repasCAM101,002,00mercredi 6 septembre 2023DW-12DWGâteau de rizCréation articles menusCAMDesserts weekendDWGâteau de semouleDW13Samedi et dimanche midis et soirsPAM101 pack de 4 pots pour le weekend. 1 pot pour 1 repasCAM101,002,00mercredi 6 septembre 2023DW-13DWGâteau de semouleCréation articles menusCAMDesserts weekendDWGâteaux samedi dimancheDW14Samedi et dimanche midis et soirsPAM101 boîte pour 2 repasCAM050,501,00mercredi 6 septembre 2023DW-14DWGâteaux samedi dimancheCréation articles menusCAMDesserts weekendDWMousse au chocolatDW15Samedi et dimanche midis et soirsPAM101 pack de 4 pots pour le weekend. 1 pot pour 1 repasCAM101,002,00mercredi 6 septembre 2023DW-15DWMousse au chocolatCréation articles menusCAMDesserts weekendDWOrangesDW16Samedi et dimanche midis et soirsPAM10Unité : 1 pour 1 repasCAM311,002,00mercredi 6 septembre 2023DW-16DWOrangesCréation articles menusCAMDesserts weekendDWPetits suissesDW17Samedi et dimanche midis et soirsPAM101 pack de 6 pots. 3 pots pour 1 repasCAM113,006,00mercredi 6 septembre 2023DW-17DWPetits suissesCréation articles menusCAMDesserts weekendDWPruneauxDW18Samedi et dimanche midis et soirsPAM101 paquet pour 4 repasCAM150,250,50mercredi 6 septembre 2023DW-18DWPruneauxCréation articles menusCAMDesserts weekendDWRiz au laitDW19Samedi et dimanche midis et soirsPAM101 pack de 4 pots pour le weekend. 1 pot pour 1 repasCAM101,002,00mercredi 6 septembre 2023DW-19DWRiz au laitCréation articles menusCAMDesserts weekendDWTapiocaDW20Samedi et dimanche midis et soirsPAM1025 grammes pour 1 repasCAM2525,0050,00mercredi 6 septembre 2023DW-20DWTapiocaCréation articles menusCAMDesserts weekendDWYaourtsDW21Samedi et dimanche midis et soirsPAM101 pack de 4 pots pour le weekend. 1 pot pour 1 repasCAM101,002,00mercredi 6 septembre 2023DW-21DWYaourtsCréation articles menusCAMLégumes midi retraiteLMRAspergesLMR01Lundi à vendredi midisPAM051 bocal ou 1 boîte pour 1 repasCAM011,001,00mercredi 6 septembre 2023LMR-01LMRAspergesCréation articles menusCAMLégumes midi retraiteLMRAvocatLMR02Lundi à vendredi midisPAM05Unité : 1 pour 1 repasCAM311,001,00mercredi 6 septembre 2023LMR-02LMRAvocatCréation articles menusCAMLégumes midi retraiteLMRCarottesLMR03Lundi à vendredi midisPAM05Unité : 2 pour 1 repasCAM362,002,00mercredi 6 septembre 2023LMR-03LMRCarottesCréation articles menusCAMLégumes midi retraiteLMRCéleriLMR04Lundi à vendredi midisPAM05Unité : 1 branche pour 1 repasCAM291,001,00mercredi 6 septembre 2023LMR-04LMRCéleriCréation articles menusCAMLégumes midi retraiteLMRChampignonsLMR05Lundi à vendredi midisPAM051 boîte pour 1 repasCAM041,001,00mercredi 6 septembre 2023LMR-05LMRChampignonsCréation articles menusCAMLégumes midi retraiteLMRConcombreLMR06Lundi à vendredi midisPAM05Unité : 1 pour 1 repasCAM311,001,00mercredi 6 septembre 2023LMR-06LMRConcombreCréation articles menusCAMLégumes midi retraiteLMRCouscousLMR07Lundi à vendredi midisPAM0525 grammes pour 1 repasCAM2525,0025,00mercredi 6 septembre 2023LMR-07LMRCouscousCréation articles menusCAMLégumes midi retraiteLMRMaïsLMR08Lundi à vendredi midisPAM051 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LMR-08LMRMaïsCréation articles menusCAMLégumes midi retraiteLMRPâtes à la sauce tomatesLMR09Lundi à vendredi midisPAM055 cuillères pour 1 repasCAM275,005,00mercredi 6 septembre 2023LMR-09LMRPâtes à la sauce tomatesCréation articles menusCAMLégumes midi retraiteLMRPâtes au beurreLMR10Lundi à vendredi midisPAM055 cuillères pour 1 repasCAM275,005,00mercredi 6 septembre 2023LMR-10LMRPâtes au beurreCréation articles menusCAMLégumes midi retraiteLMRPoireauLMR11Lundi à vendredi midisPAM05Unité : 1 pour 1 repasCAM311,001,00mercredi 6 septembre 2023LMR-11LMRPoireauCréation articles menusCAMLégumes midi retraiteLMRPomme de terreLMR12Lundi à vendredi midisPAM05Unité : 1 pour 1 repasCAM311,001,00mercredi 6 septembre 2023LMR-12LMRPomme de terreCréation articles menusCAMLégumes midi retraiteLMRPuréeLMR13Lundi à vendredi midisPAM0525 grammes pour 1 repasCAM2525,0025,00mercredi 6 septembre 2023LMR-13LMRPuréeCréation articles menusCAMLégumes midi retraiteLMRRadisLMR14Lundi à vendredi midisPAM051 botte ou 1 sachet pour 2 repasCAM070,500,50mercredi 6 septembre 2023LMR-14LMRRadisCréation articles menusCAMLégumes midi retraiteLMRRizLMR15Lundi à vendredi midisPAM0525 grammes pour 1 repasCAM2525,0025,00mercredi 6 septembre 2023LMR-15LMRRizCréation articles menusCAMLégumes midi retraiteLMRSaladeLMR16Lundi à vendredi midisPAM05Unité : 1 tête pour 1 repasCAM341,001,00mercredi 6 septembre 2023LMR-16LMRSaladeCréation articles menusCAMLégumes midi retraiteLMRTomatesLMR17Lundi à vendredi midisPAM05Unité : 2 pour 1 repasCAM362,002,00mercredi 6 septembre 2023LMR-17LMRTomatesCréation articles menusCAMLégumes soirs lundi mardiLSLMCassouletLSLM01Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSLM-01LSLMCassouletCréation articles menusCAMLégumes soirs lundi mardiLSLMChoucrouteLSLM02Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSLM-02LSLMChoucrouteCréation articles menusCAMLégumes soirs lundi mardiLSLMChou-fleurLSLM03Lundi et mardi soirsPAM07Unité : 1 pour 2 repasCAM320,500,50mercredi 6 septembre 2023LSLM-03LSLMChou-fleurCréation articles menusCAMLégumes soirs lundi mardiLSLMChoux de BruxellesLSLM04Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSLM-04LSLMChoux de BruxellesCréation articles menusCAMLégumes soirs lundi mardiLSLMCouscousLSLM05Lundi et mardi soirsPAM0725 grammes pour 1 repasCAM2525,0025,00mercredi 6 septembre 2023LSLM-05LSLMCouscousCréation articles menusCAMLégumes soirs lundi mardiLSLMEndivesLSLM06Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSLM-06LSLMEndivesCréation articles menusCAMLégumes soirs lundi mardiLSLMHaricots vertsLSLM07Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSLM-07LSLMHaricots vertsCréation articles menusCAMLégumes soirs lundi mardiLSLMMaïsLSLM08Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSLM-08LSLMMaïsCréation articles menusCAMLégumes soirs lundi mardiLSLMPaellaLSLM09Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSLM-09LSLMPaellaCréation articles menusCAMLégumes soirs lundi mardiLSLMPoireauLSLM10Lundi et mardi soirsPAM07Unité : 1 pour 1 repasCAM311,001,00mercredi 6 septembre 2023LSLM-10LSLMPoireauCréation articles menusCAMLégumes soirs lundi mardiLSLMPomme de terreLSLM11Lundi et mardi soirsPAM07Unité : 1 pour 1 repasCAM311,001,00mercredi 6 septembre 2023LSLM-11LSLMPomme de terreCréation articles menusCAMLégumes soirs lundi mardiLSLMPuréeLSLM12Lundi et mardi soirsPAM0725 grammes pour 1 repasCAM2525,0025,00mercredi 6 septembre 2023LSLM-12LSLMPuréeCréation articles menusCAMLégumes soirs lundi mardiLSLMQuenellesLSLM13Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSLM-13LSLMQuenellesCréation articles menusCAMLégumes soirs lundi mardiLSLMRizLSLM14Lundi et mardi soirsPAM0725 grammes pour 1 repasCAM2525,0025,00mercredi 6 septembre 2023LSLM-14LSLMRizCréation articles menusCAMLégumes soirs mercredi jeudiLSMJMacédoine de légumesLSMJ01Mercredi et jeudi soirsPAM081 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSMJ-01LSMJMacédoine de légumesCréation articles menusCAMLégumes soirs mercredi jeudiLSMJPetits poisLSMJ02Mercredi et jeudi soirsPAM081 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSMJ-02LSMJPetits poisCréation articles menusCAMLégumes soirs mercredi jeudiLSMJPetits pois et jeunes carottesLSMJ03Mercredi et jeudi soirsPAM081 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSMJ-03LSMJPetits pois et jeunes carottesCréation articles menusCAMLégumes soirs mercredi jeudiLSMJRatatouilleLSMJ04Mercredi et jeudi soirsPAM081 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSMJ-04LSMJRatatouilleCréation articles menusCAMLégumes soirs mercredi jeudiLSMJRaviolisLSMJ05Mercredi et jeudi soirsPAM081 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSMJ-05LSMJRaviolisCréation articles menusCAMLégumes soirs mercredi jeudiLSMJTomates peléesLSMJ06Mercredi et jeudi soirsPAM081 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023LSMJ-06LSMJTomates peléesCréation articles menusCAMLégumes soirs vendrediLSVAspergesLSV01Vendredi soirPAM121 bocal ou 1 boîte pour 1 repasCAM011,001,00mercredi 6 septembre 2023LSV-01LSVAspergesCréation articles menusCAMLégumes soirs vendrediLSVAvocatLSV02Vendredi soirPAM12Unité : 1 pour 1 repasCAM311,001,00mercredi 6 septembre 2023LSV-02LSVAvocatCréation articles menusCAMLégumes soirs vendrediLSVBetteraves rougesLSV03Vendredi soirPAM121 paquet pour 5 repas (betteraves rouges)CAM161,001,00mercredi 6 septembre 2023LSV-03LSVBetteraves rougesCréation articles menusCAMLégumes soirs vendrediLSVCarottesLSV04Vendredi soirPAM12Unité : 2 pour 1 repasCAM362,002,00mercredi 6 septembre 2023LSV-04LSVCarottesCréation articles menusCAMLégumes soirs vendrediLSVCéleriLSV05Vendredi soirPAM12Unité : 1 branche pour 1 repasCAM291,001,00mercredi 6 septembre 2023LSV-05LSVCéleriCréation articles menusCAMLégumes soirs vendrediLSVChampignonsLSV06Vendredi soirPAM121 boîte pour 1 repasCAM041,001,00mercredi 6 septembre 2023LSV-06LSVChampignonsCréation articles menusCAMLégumes soirs vendrediLSVConcombreLSV07Vendredi soirPAM12Unité : 1 pour 1 repasCAM311,001,00mercredi 6 septembre 2023LSV-07LSVConcombreCréation articles menusCAMLégumes soirs vendrediLSVRadisLSV08Vendredi soirPAM121 botte ou 1 sachet pour 1 repasCAM061,001,00mercredi 6 septembre 2023LSV-08LSVRadisCréation articles menusCAMLégumes soirs vendrediLSVSaladeLSV09Vendredi soirPAM12Unité : 1 tête pour 1 repasCAM341,001,00mercredi 6 septembre 2023LSV-09LSVSaladeCréation articles menusCAMLégumes soirs vendrediLSVSalsifisLSV10Vendredi soirPAM121 boîte pour 1 repasCAM041,001,00mercredi 6 septembre 2023LSV-10LSVSalsifisCréation articles menusCAMLégumes soirs vendrediLSVTomatesLSV11Vendredi soirPAM12Unité : 2 pour 1 repasCAM362,002,00mercredi 6 septembre 2023LSV-11LSVTomatesCréation articles menusCAMLégumes weekend dimancheLWDAspergesLWD01Dimanche soirPAM031 bocal ou 1 boîte pour 1 repasCAM011,001,00mercredi 6 septembre 2023LWD-01LWDAspergesCréation articles menusCAMLégumes weekend dimancheLWDChipsLWD02Dimanche midi et soirPAM021 sachet pour 2 repas (Chips)CAM180,501,00mercredi 6 septembre 2023LWD-02LWDChipsCréation articles menusCAMLégumes weekend dimancheLWDFritesLWD03Dimanche midiPAM0120 frites pour 1 repasCAM2420,0020,00mercredi 6 septembre 2023LWD-03LWDFritesCréation articles menusCAMLégumes weekend dimancheLWDHaricots vertsLWD04Dimanche midi et soirPAM021 boîte pour 2 repasCAM050,501,00mercredi 6 septembre 2023LWD-04LWDHaricots vertsCréation articles menusCAMLégumes weekend samediLWSPâtes à la sauce tomatesLWS01Samedi midi et soirPAM115 cuillères pour 1 repasCAM275,0010,00mercredi 6 septembre 2023LWS-01LWSPâtes à la sauce tomatesCréation articles menusCAMLégumes weekend samediLWSPâtes au beurreLWS02Samedi midi et soirPAM115 cuillères pour 1 repasCAM275,0010,00mercredi 6 septembre 2023LWS-02LWSPâtes au beurreCréation articles menusCAMLégumes weekend samediLWSPâtes au fromage râpéLWS03Samedi midi et soirPAM115 cuillères pour 1 repasCAM275,0010,00mercredi 6 septembre 2023LWS-03LWSPâtes au fromage râpéCréation articles menusCAMViandes midi retraiteVMRRôti d'agneauVMR01Lundi à vendredi midisPAM051 morceau de 500 grammes pour 5 repasCAM09100,00100,00mercredi 6 septembre 2023VMR-01VMRRôti d'agneauCréation articles menusCAMViandes midi retraiteVMRRôti de bœufVMR02Lundi à vendredi midisPAM051 morceau de 500 grammes pour 5 repasCAM09100,00100,00mercredi 6 septembre 2023VMR-02VMRRôti de bœufCréation articles menusCAMViandes midi retraiteVMRRôti de chevalVMR03Lundi à vendredi midisPAM051 morceau de 500 grammes pour 5 repasCAM09100,00100,00mercredi 6 septembre 2023VMR-03VMRRôti de chevalCréation articles menusCAMViandes midi retraiteVMRRôti de porcVMR04Lundi à vendredi midisPAM051 morceau de 500 grammes pour 5 repasCAM09100,00100,00mercredi 6 septembre 2023VMR-04VMRRôti de porcCréation articles menusCAMViandes midi retraiteVMRRôti de veauVMR05Lundi à vendredi midisPAM051 morceau de 500 grammes pour 5 repasCAM09100,00100,00mercredi 6 septembre 2023VMR-05VMRRôti de veauCréation articles menusCAMViandes midi weekendVMWAgneauVMW01Samedi et dimanche midisPAM091 tranche pour 1 repasCAM211,001,00mercredi 6 septembre 2023VMW-01VMWAgneauCréation articles menusCAMViandes midi weekendVMWBœufVMW02Samedi et dimanche midisPAM091 tranche pour 1 repasCAM211,001,00mercredi 6 septembre 2023VMW-02VMWBœufCréation articles menusCAMViandes midi weekendVMWChevalVMW03Samedi et dimanche midisPAM091 tranche pour 1 repasCAM211,001,00mercredi 6 septembre 2023VMW-03VMWChevalCréation articles menusCAMViandes midi weekendVMWDindeVMW04Samedi et dimanche midisPAM091 tranche pour 1 repasCAM211,001,00mercredi 6 septembre 2023VMW-04VMWDindeCréation articles menusCAMViandes midi weekendVMWPoissonVMW05Samedi et dimanche midisPAM09Unité : 1 pour 1 repasCAM311,001,00mercredi 6 septembre 2023VMW-05VMWPoissonCréation articles menusCAMViandes midi weekendVMWPorcVMW06Samedi et dimanche midisPAM091 tranche pour 1 repasCAM211,001,00mercredi 6 septembre 2023VMW-06VMWPorcCréation articles menusCAMViandes midi weekendVMWVeauVMW07Samedi et dimanche midisPAM091 tranche pour 1 repasCAM211,001,00mercredi 6 septembre 2023VMW-07VMWVeauCréation articles menusCAMViandes soirsVSBifteck haché de bœufVS01Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-01VSBifteck haché de bœufCréation articles menusCAMViandes soirsVSBifteck haché de chevalVS02Lundi à dimanche soirsPAM04125 grammes pour 1 repas (Bifteckh haché de cheval)
125,00125,00mercredi 6 septembre 2023VS-02VSBifteck haché de chevalCréation articles menusCAMViandes soirsVSBifteck haché de veauVS03Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-03VSBifteck haché de veauCréation articles menusCAMViandes soirsVSBouchée à la reineVS04Lundi à dimanche soirsPAM041 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023VS-04VSBouchée à la reineCréation articles menusCAMViandes soirsVSBoudinVS05Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-05VSBoudinCréation articles menusCAMViandes soirsVSCervelasVS06Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-06VSCervelasCréation articles menusCAMViandes soirsVSCœurVS07Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-07VSCœurCréation articles menusCAMViandes soirsVSCroque-monsieurVS08Lundi à dimanche soirsPAM041 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023VS-08VSCroque-monsieurCréation articles menusCAMViandes soirsVSFoieVS09Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-09VSFoieCréation articles menusCAMViandes soirsVSFromage de têteVS10Lundi à dimanche soirsPAM041 tranche pour 2 repasCAM220,500,50mercredi 6 septembre 2023VS-10VSFromage de têteCréation articles menusCAMViandes soirsVSJambonVS11Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-11VSJambonCréation articles menusCAMViandes soirsVSJambonneauVS12Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-12VSJambonneauCréation articles menusCAMViandes soirsVSMortadelleVS13Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-13VSMortadelleCréation articles menusCAMViandes soirsVSŒufsVS14Lundi à dimanche soirsPAM041 boîte de 6 œufs. 3 œufs pour 1 repasCAM023,003,00mercredi 6 septembre 2023VS-14VSŒufsCréation articles menusCAMViandes soirsVSPizzaVS15Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-15VSPizzaCréation articles menusCAMViandes soirsVSPoissonVS16Lundi à dimanche soirsPAM04Unité : 1 pour 1 repasCAM311,0010,00mercredi 6 septembre 2023VS-16VSPoissonCréation articles menusCAMViandes soirsVSQuiche lorraineVS17Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-17VSQuiche lorraineCréation articles menusCAMViandes soirsVSRoulade à la pistacheVS18Lundi à dimanche soirsPAM043 tranches pour 1 repasCAM263,003,00mercredi 6 septembre 2023VS-18VSRoulade à la pistacheCréation articles menusCAMViandes soirsVSRoulé au fromageVS19Lundi à dimanche soirsPAM041 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023VS-19VSRoulé au fromageCréation articles menusCAMViandes soirsVSSalamiVS20Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-20VSSalamiCréation articles menusCAMViandes soirsVSSaucissesVS21Lundi à dimanche soirsPAM041 paquet pour 2 repasCAM130,500,50mercredi 6 septembre 2023VS-21VSSaucissesCréation articles menusCAMViandes soirsVSSaucissonVS22Lundi à dimanche soirsPAM041 sachet pour 6 repas. 5 tranches pour 1 repas (Saucisson)CAM205,005,00mercredi 6 septembre 2023VS-22VSSaucissonCréation articles menusCAMViandes soirsVSTête persilléeVS23Lundi à dimanche soirsPAM041 tranche pour 2 repasCAM220,500,50mercredi 6 septembre 2023VS-23VSTête persilléeCréation articles menusCAMViandes soirsVSTête rouléeVS24Lundi à dimanche soirsPAM043 tranches pour 1 repasCAM263,003,00mercredi 6 septembre 2023VS-24VSTête rouléeCréation articles menusCAMViandes soirsVSThonVS25Lundi à dimanche soirsPAM041 boîte pour 1 repasCAM041,001,00mercredi 6 septembre 2023VS-25VSThonCréation articles menusCAMViandes soirsVSViande cassouletVS26Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023VS-26VSViande cassouletCréation articles menusCAMViandes soirsVSViande choucrouteVS27Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023VS-27VSViande choucrouteCréation articles menusCAMViandes soirsVSViande paellaVS28Lundi et mardi soirsPAM071 boîte pour 2 repasCAM050,500,50mercredi 6 septembre 2023VS-28VSViande paella
Bonjour,
à l'impossible nul n'est tenu.
On en n'avait plus entendu parler depuis 3 mois, je suppose que d'autres y ont été exposés ailleurs et s'en sont lassés, mais ça fait de mémoire au moins 8 ans que ça dure.
Plus personne ne répond, sauf Bobot, qui n'est donc pas si intelligent qu'il le prétend.
Dans mon message initial d'hier, j'explique ce que je veux obtenir quand je crée le menu journalier du vendredi 05 janvier 2024
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe me demande comment qu'une IA (pour moi équivalent d'un robot) peut résoudre un problème quel qu'il soit.
Quel est l'intérêt de mettre des codes aux ingrédients, si ce n'est pour ajouter de la complexité au chaos existant ?
Pourquoi ne te sers-tu as du soft que je t'ai donné il y a longtemps, et qui permet de créer des menus, de les enregistrer, et de les dater si besoin dans des fichiers, qui peuvent êtres classés, triés, indexés, et tout ce qu'on voudra.
Et qui donne en outre les valeurs en protéines lipides, glucides et Kcal.
Je conclus que ton but n'est pas d'établir des menus, mais de te casser la tête (et celle d'autrui) avec un exel que tu ne maîtrise pas.
Et pour lequel dans son état même une IA ne peux t'aider.