Budgets.xlsm : procédure private sub cbNomArticlesBudgets

Il faudrait que vous m'expliquiez davantage comment cela doit fonctionner, parce que, à part essayer de déchiffrer le code existant, j'avance dans le brouillard.

Ce menu journalier, quand doit-il être appliqué, en semaine, le week-end ou, tous les jours? car le 8 c'est un dimanche donc Week-end et le 9, c'est le lundi donc en semaine.

Le menu journalier est appliqué pour tous les jours de e la semaine, du lundi au dimanche inclus, midi et soir (pour le dimanche, avec un cas spécial si le nom légume est Frites, dans ce cas-là précis, il y aura un nom légume deux).

Le menu midi retraite est appliqué du lundi au vendredi inclus, uniquement le midi.

Le menu viande midi weekend est appliqué le samedi et le dimanche, uniquement le midi et aucun dessert ni légume n'intervienne.

Je reste à votre entière disposition pour vous fournir les informations nécessaires que vous souhaiteriez obtenir.

Comme toutes les procédures n'ont pas été créées, le problème vient peut-être de là.

J'ai trouvé, dans la "BD menus" colonne "Date menu", pour faire les essais ce matin, j'avais saisi le jour du dimanche 8 octobre 2023 manuellement, ce qui évidemment n'était plus vu comme une date. Donc, retapez la date du 8/10 à la place du "dimanche 8 octobre 2023" et ça marchera.

Effectivement, cela marche. Pourquoi, alors, pour le menu midi retraite, le menu journalier du 09 octobre 2023 et le menu viande midi weekend du 07 octobre 2023, qui sont formatées avec je nom du jour, cela fonctionne ? Je ne comprends pas. Je crois avoir trouvé le pourquoi : il faut d'abord mettre la date comme une date puis, après formater en date longue. J'ai testé et cela semble fonctionner.

Toutes les autres dates étaient saisies correctement (avec le format date), or moi, pour faire des essais, j'avais saisi manuellement "dimanche 8 octobre 2023", donc c'était du texte, et de ce fait, non compréhensible par le code.

Pour les dates au format long (avec affichage du jour), le code ne voit que la date (jj/mm/aaaa) et pas le jour en lettres, alors que la date saisie manuellement le code voyait du texte et non une date.

D'accord. Merci. Je vais continuer à créer mes procédures (j'en ai encore 12 à codifier). Si j'ai des problèmes, vous souhaitez que j'ouvre un nouveau fil ou on continue sur celui-ci ?

Ouvrez un nouveau fil, ça peut inciter d'autres personnes à intervenir.

Cdlt

Merci. Bonnes soirée et continuation. Prenez bien soin de vous.

À bientôt (heureusement ou malheureusement : heureusement, car je pourrais discuter encore avec vous; Malheureusement : car j'aurai encore des problèmes).

Et pour le menu viande midi weekend dont les cb et tb ne sont pas conformes au TabBDMenus, que dois-je faire ?

Bonjour,

Comme je l'ai déjà indiqué, je ne connais pas toutes les subtilités et le fonctionnement complet du fichier. Je suis obligé de faire du pas à pas dans le code pour essayer de comprendre comment cela fonctionne.

Pour le "menu viande midi weekend", cela marche avec la journée du samedi 7/10 et pas la journée du dimanche 8/10, parce que dans la feuille "BD menus" colonne "Date menu" , la date du 7/10 est présente mais pas celle du 8/10.

De mon côté, n'ayant pas encore compris, comment viennent s'ajouter les dates dans cette colonne, je l'ai donc ajouté à la main une nouvelle ligne avec la date du 8/10 et, évidemment à partir de cet instant, ça fonctionne bien.

Reste à savoir, comment viennent s'ajouter les lignes avec les nouvelles dates, je pense, qu'il n'y a que vous qui puissiez le dire.

Bonjour Arturo83,

Le problème est que pour le 7 octobre 2023, menu viande midi weekend, je reçois bien le message comme quoi ce menu existe déjà, je clique sur OK et les informations qui apparaissent ne correspondent pas au contenu du tableau structuré TabBDMenus, ligne 6.

Actuellement, le tableau structuré est rempli manuellement, toutes colonnes confondues. Quand toutes les procédures seront présentes, et à condition qu'il n'y ait pas d'erreur, de quelle nature qu'elles soient, un clic sur le bouton Validation création menu enregistrera les données et les transférera dans le tableau structure TabBDMenus. Par ailleurs, il y aura une instruction qui permettra de créer une ligne vide dans le tableau structuré TabBDMenu sur laquelle viendront s'ajouter les données d'un nouvel enregistrement et, sauf erreur de ma part, qui redimensionnera automatiquement le tableau, ce qui évitera l'erreur d'hier que vous m'avez signalée. Dernier point soulevé par vous hier, l'index (indice) qui égale zéro : dans quelle procédure et la remplacer cette instruction par laquelle ( merci de me communiquer votre réponse à ce sujet ainsi qui suit : dans procédure ?, instruction actuelle, la remplacer par ), à moins que le redimensionnement du tableau ait rectifié ce problème.

Si cela peut vous aider, voilà un fichier dont les procédures sont toutes complètes et présentes.

10menus-geof52.zip (306.05 Ko)

Bonjour,

Je n'ai pas le temps pour le moment de regarder, mais j'ai vu une erreur ici:

Private Function IndiceMenu(ByVal NomNatureCréationMenu As String, ByVal DateMenu As Date) As Long
    'Renvoie l'indice de l'article de la feuille BD menus, tableau structuré TabBDMenus pour le code article défini si l'article existe. Renvoie zéro si l'article 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 = 1
            Exit Function
        End If
    Next I
End Function

il faut remplacer la valeur "1" par "I" dans la ligne suivante

IndiceMenu = 1 ---> IndiceMenu = I ( i majuscule)

pour le reste je regarderai plus tard dans la journée.

Merci. Le nom viande est correct mais le le nom période viande midi weekend et son code sont toujours incorrects. J'ai trouvé, il y avait des instructions erronées et des instructions inutiles. Dans le fichier Geof52, il y a également des erreurs que j'ai rectifiées. Si nécessaire, je vous l'enverrai de nouveau tout comme le fichier MENUS.

Si je saisi la journée du 07/10 le code est PAM09, cela semble correct, par contre pour la journée du 8/10, il n'y a pas de code affecté, et si je comprends bien il faut récupérer le code du 07/10 puisque ce code est censé faire les 2 jours du Week-end, c'est bien ça?

J'ai fait une erreur : il n'y a pas de code nom période menu viande midi weekend. De quel code parlez-vous ? Si c'est celui du code viande pour menu viande midi weekend, c'est nom. Le samedi, c'est une viande midi weekend, le dimanche, c'est une autre viande midi weekend.

De celui-ci:

budgets

En effet, avec beaucoup de mal, je m'en suis aperçu. J'ai rectifié comme cela s'imposait. J'ai créé le code de la procédure Private Sub PrédéfinitionsSpécifiques et après quelques tests sur Menu midi retraite, cela semble correct. Je vais essayer avec Menu journalier. Pour mes tests, comme le code doit être identique dans les deux fichiers, et comme le bouton de commande validatationcréationmenu n'est pas encore actif dans le fichier Menus, je teste avec le fichier Geof52 qui a subi des rectifications pour supprimer les erreurs.

10menus.zip (285.59 Ko)
9menus-geof52.zip (307.54 Ko)

Dans le fichier Geof52, merci de regarder les procédures Function IndiceArticle et Function MATCH2 : puisse-je m'en servir dans le fichier MENUS.xlsm en remplaçant IndiceArticle par IndiceMenu qui remplacera l'actuelle Function IndiceMenu ?

Rechercher des sujets similaires à "budgets xlsm procedure private sub cbnomarticlesbudgets"