Type de variables et quels objets ?

Résolu
Bonjour à toutes et à tous,

Dans le fchier joint, je vous expose mon projet et les questions qu'il m'impose.
D'avance merci de votre aide précieuse.

https://www.cjoint.com/c/FKlqnng6CgJ

Les modèles de fichiers :
https://www.cjoint.com/c/FKlqXSdfxdJ
https://www.cjoint.com/c/FKlqYG8wmEJ


BUDGETS

44 réponses

Résumé de la discussion

Le sujet porte sur un projet Excel/VBA visant à définir des menus planifiés et historisés à partir de codes pour chaque élément (légume, viande, dessert) afin de faciliter la saisie et la planification pour plusieurs destinataires. Les discussions portent sur une architecture potentielle soit en fichier unique avec formulaires et bases de données, soit en deux fichiers distincts, et soulignent l’importance d’un cahier des charges et de tableaux d’exemples pour préciser les objectifs et les flux. Les avancées techniques évoquées concernent le remaniement du formulaire, des difficultés avec la référence produit dans le listbox, et des bugs bloquant la saisie dans le cboCodesLégumes, avec des propositions d’améliorations comme l’affichage de plusieurs colonnes et l’attribution de titres de colonnes. Plusieurs éléments restent en suspens, notamment la cohérence entre les références et les natures de produits, la relation entre conditionnement et quantité, et la refonte de la base de données des références pour permettre une saisie et une génération correctes des menus.

Bobot (l’IA à votre service)
  1. Bonjour,

    Au post 316, tu dis : « J'ai parfaitement compris qu'après les saisies et un clic sur Ajouter le produit au menu, la liste box se remplit. Mais comment, tu ne m'as jamais répondu à cette question. »

    Je te rappelle les réponses que je t'ai donné :
    Au post 192 : « j’essaie simplement de t'aider à développer cette application par toi-même, puisque c'est ta volonté et je la respecte.»
    Au post 198 : « Je n'ai pas l'intention d'écrire le code à ta place.»
    Au post 281 : « Pour un listbox c'est pareil que pour un combobox (tu as déjà un combobox multicolonnes) »
    Au post 304 : « dans le formulaire références, il y a tous les éléments de code qui permettent, en les adaptant, d'écrire le code du formulaire Saisie des menus, il n'y a plus rien à inventer. »

    Et aussi les réponses des autres CCMnautes (bonjour à tous) :
    « tu dois absolument apprendre (et comprendre) les bases de la programmation et du debogage avant de continuer ton projet »
    « Prends le temps de potasser, c'est pas une course... »
    « il te faut effectivement prendre le temps de regarder les réponses, de les décortiquer »
    « c'est en forgeant qu'on devient forgeron.»


    Donc, comme ce projet n'a pas d'autre finalité que ton apprentissage de l'utilisation des formulaires :
    Décortiques le fonctionnement du formulaire Références, chaque instruction, chaque mot du langage. Consultes l'aide du langage (SIC : et pour ça ... le VBA est plus que prolixe ! ) et cela jusqu’à ce que tu aies tout compris.
    1. Bonjour Patrice,
      À partir du formulaire Références Liste De Choix, donnes-moi la liste des procédures à réutiliser et, si possible, dans l'ordre où elles doivent l'être, cela devrait m'aider en me préciser, le cas échéant, par quoi remplacer Me. pour les outils ne figurant pas directement dans le formulaire Saisie Des Menus.
      D'avance merci.
      Bonnes journée et continuation.
    2. Pourquoi ?
      Ne sais-tu pas ce que représente Me ?
      Ne sais-tu pas à quoi doit servir le formulaire menus ?
    3. @Patrice33740Je vais te répondre dans mon langage à moi : me évite d'avoir à répéter à chaque fois le nom du fichier, de la feuille, du formulaire. Par contre, je ne sais pas les conditions requise pour l'utiliser, sinon que le fichier, la feuille, le formulaire doivent exister.
      Le formulaire Saisie des menus sert à saisir les menus qu'ils soient midi retraite, journaliers ou viandes week-end.
    4. Re,

      Quand on fait F1 sur Me on obtient : [...] le mot clé Me offre la possibilité de faire référence à l'instance de la classe dans laquelle le code est exécuté [...]
      C'est donc pas pour "éviter de répéter" mais pour faire référence à la classe, i.e. l'objet qui contient ce code : le formulaire, la feuille, le classeur ou la classe. L'objet existe forcément puisque c'est lui qui contient le code !
    5. @Patrice33740J'ai sélectionné me et cliqué sur F1 : mot clé introuvable.
      Alors pourquoi que dans saisie des menus, il ne reconnait pas me.frmréférenceslistedechoix puisque le formulaire existe bien ?
  2. Bonjour,

    Ça commence à devenir plus compréhensible.

    Si j’ai bien compris les menus sont composés comme suit :
    - Les midis, du lundi au vendredi,
    un menu « midi retraite » composé de :
    • Une viande
    • Un légume
    • Un dessert
    - Les soirs, du lundi au dimanche,
    un menu « menu journalier » composé de :
    • Une viande
    • Un légume
    • Un dessert
    - Les midis, du samedi et du dimanche
    un menu « viandes week-end » composé de :
    • Une viande
    et une partie de menu « menu journalier » composé de :
    • Un légume identique à celui du soir
    • Un dessert identique à celui du soir

    Il y a quelques contraintes : les plats uniques (cassoulet, choucroute et paella) et les frites du dimanche midi qui sont associées à des asperges le dimanche soir.

    Les questions qui se posent encore pour bien comprendre l'objet de l'application :
    - Pourquoi ces 3 catégories de menus ? A cause de fournisseurs différents ?
    - A qui est destinée la composition mensuelle des menus ? Aux bénéficiaires ?
    - A qui est destinée la composition par catégorie des menus ? Aux fournisseurs ?
    - A qui est destinée le calcul des quantités ?
    - Y-a-t'il une relation constante entre le produit et les quantités par repas ? Où dans certains cas, il peut, par exemple, y avoir plus de 25 frites ?

    Comme pour les jours et le conditionnement, tu amalgames plusieurs informations qu'il serait préférable de dissocier.
    C'est-à-dire que pour créer les menus, il me semble plus simple de constituer le menu pour une journée complète (midi et soir) en tenant compte de toutes les contraintes, mais sans parler des informations inutiles dans ce contexte (catégorie du menu, période, jours, ...). Les données seraient ensuite aiguillées vers la catégorie adéquate, et les données indispensables ajoutées, pour établir les récapitulatifs par catégorie, par mois, par quantité, ....

    Complètes le cahier des charges avec les réponses.
    1. Je ne comprends plus rien, si tout ça n'est destiné à personne d'autre que toi, pourquoi fais-tu tout ça ?
    2. @Patrice33740Parce que je veux profiter de la programmation par formulaires. Ceci fait, j'essaierai de faire un deuxième programme pour ma comptabilité. Et peut-être écrire un livre pour faire de la comptabilité par formulaires car avec tous les livres que j'ai aucun n'a pensé que faire de la comptabilité par vba doit être possible.
    3. @Patrice33740Bonsoir Patrice,

      Formulaire Saisie des menus :
      1) Quand je clique sur Ajouter le produit au menu, que doit-il se passer exactement ?
      2) Comment la liste boxe se remplit-t-elle ?
      Bonnes soirée et continuation.
    4. 1) Quand je clique sur Ajouter le produit au menu, que doit-il se passer exactement ?
      Ça remplit une ligne du listbox
      2) Comment la liste boxe se remplit-t-elle ?
      En cliquant sur Ajouter le produit au menu

      Par contre, avant d’ajouter le produit au menu :
      - il faut que le bouton Ajouter le produit ne soit activé que lorsque tous les renseignements nécessaires sont fournis (Nature, Date, Produit, Référence, Quantité) sinon il doit être désactivé.
      - il faut aussi que lorsque la nature du menu change, le produit soit effacé
      - il faudrait aussi que la quantité soit effacée lors du changement de référence quoique, d'après ton cahier des charges et tes réponses précédentes, la quantité me semble totalement inutile lors de la création des menus.
  3. Bonjour,

    Je vois que tu as commencé un cahier des charges (au post 289).

    C'est un point de départ qui défini ce que tu avais déjà dans le fichier Menus 2017. Maintenant il faudrait définir ce que tu voudrais faire à la place (sinon gardes ton fichier Menus 2017).

    Il faut préciser et étoffer le cahier des charges : il y a beaucoup de points de détails mais il manque de nombreuses définitions de base.

    « Les menus seront composés d’un légume, d’une viande, d’un dessert. [...] (menus midi retraite ou menus journaliers ou menus viandes week-end).»
    Il faudrait définir ce que sont ces 3 types de menus.
    Combien de menus sont créés chaque jour ? Lesquels ?
    Y a-t'il un menu pour le midi et un menu pour le soir ?
    Comment sont-ils différenciés ?
    La planification des menus est-elle faite une fois pour toutes en début d'année ? Sinon à quelle fréquence ?

    Quelle est la périodicité d'utilisation des différentes fonctions (Création / modification des références, Création / modification des menus, Impression des menus, des quantités, ...)

    Tu définis en détail de nombreuses contraintes concernant les codes (légumes, viandes, ...). Aucune de ces contraintes n'ont été développées dans le formulaire frmRéférencesListeDeChoixMenus
    Ça va pas être facile de les y ajouter à cause de la façon dont est renseignée l'information "jours"
    « Les jours : Ils seront renseignés selon le jour de consommation ... »
    La méthode utilisée pour renseigner cette information complique énormément le traitement correspondant qu'il faudrait faire. il faudrait utiliser une méthode permettant d'identifier facilement lesquelles des 14 informations possibles sont retenues (peut-être un codage sur 14 bits ?)

    Idem pour le conditionnement, il serait préférable d'utiliser 2 informations distinctes pour faciliter les traitement des quantités : la quantité par repas et l'unité de conditionnement, par exemple, 0.5 Boite(s), 25 Gramme(s), 2 Unité(s), 0.25 Paquet de 4, ...

    N.B. : Au vu de cette ébauche de cahier des charges, il va certainement falloir reprendre tout ce qui a été fait jusqu'à maintenant.
    1. Bonjour Patrice,

      J' n'ai pas pu te répondre plus tôt car il m'était impossible de me connecter. J'ai répondu à ton message que tu m'as laissé sur Excel Downloads.
      Je vais relire ton message ci-dessus cet après-midi.
      Bonnes après-midi et continuation.
    2. Comme promis ce matin, j'ai modifié le cahier des charges que je joints. Je reste à ton entière disposition pour des informations complémentaires.
      https://www.cjoint.com/c/GErnJiBk3Wg
    3. À toutes fins utiles, je te signale qu'exceptionnellement ce soir je vais me coucher demain matin vers 1 heure 30 car je vais regarder la deuxième chaîne, mon magnétoscope étant occupé avec des enregistrements de la première chaîne.
  4. Bonjour,

    Le fonctionnement du cboRéférences n'est pas encore satisfaisant.
    Comme je t'ai dit au post 229 :
    • lors du choix de la référence le combobox ne devra proposer que les références correspondant à la nature du menu (i.e. qui ont cette destination).
    • Ta base de données des jours est mal étudiée. La date définit le jour, il aurait fallu que le comboxbox références ne propose que les choix possibles ce jour la !
    Il faut réfléchir à la solution qui permettrait de résoudre ces problèmes

    A ce sujet, tu n'a toujours pas défini le cahier des charges de ton application. Avant de continuer il faut absolument que tu définisses quels sont les besoins de manière précise et détaillée. Pour l'instant j'ai une vague idée de ces besoins, j'ai pu deviner quelques étapes élémentaires du développement :
    - la création d'une base de données des produits utilisés dans les menus
    - la création et l'historisation différents types de menus
    J'entrevois aussi un besoin d'états mensuels mais c'est très vague.
    Comme je le répète depuis le début, cette étape est indispensable pour éviter de reprendre le travail qui a déjà été fait pour résoudre une difficulté qui était prévisible ou un besoin mal défini.
    Par exemple, tu vois bien que dans l'état actuel, la base de données des produits n'est pas finalisée, car elle ne permet pas de satisfaire les exigences citées au début de ce post.

    Pour ce qui est des autres questions :
    - Pour un listbox c'est pareil que pour un combobox (tu as déjà un combobox multicolonnes) et le nom des colonnes est indiqué aux post 229 et 231 les colonnes : Produit, Référence, Désignation, Conditionnement, Quantité
    - Vérification de la composition est une vérification de la présence et de la cohérence des toutes les informations.
    - Aux posts 29 et 176 : les menus seraient enregistrés dans un ou plusieurs autres fichiers, pour une historisation, c'est-à-dire des simples fichiers de données sans aucune macro. Dans un premier temps, pour mettre au point ton formulaire tu peux utiliser un nouvel onglet pour stocker les menus (pour faciliter la création ultérieure des états il est préférable que tous les menus soient dans la même base de données).
    1. Bonjour Patrice,

      Dans le fichier joint, tout est dit sur ce que je veux, à cette exception près : avec les formulaires; les saisies effectuées iront dans une feuille unique à partir de laquelle je ferai des tableaux par nature du menu et par période concernée, et un autre tableau avec les quantités par la fonction somme.si.ens.
      https://www.cjoint.com/c/GEnl30JwgMy
    2. Dans ce fichier il y a de très nombreuses informations en double, en triple, en ..., beaucoup d'onglets qui ne font que répéter des informations situées ailleurs et donc à mon avis totalement inutiles, voire néfastes. On voit bien qu'aucune réflexion n'a été menée pour le réaliser. C'est ce que j'appelle "une usine à gaz" : il n'y a que celui qui l'a fait qui y comprend quelque chose !

      Rien n'est dit sur le rôle des différents éléments de ce fichier, quand on l'analyse il semble farci d'incohérences (mais peut-être qu'avec des explications ce n'en sont pas).

      Je croyais que tu voulais faire une application pour simplifier et améliorer tout ça, mais si le résultat que tu veux obtenir c'est celui-ci alors arrêtes tout : tu as déjà ce qu'il te faut !
    3. @Patrice33740J'ai fait ce fichier car je ne connaissais pas alors les formulaires. Peur-être qu'il y a des incohérences mais en tout cas il me donne les résultats voulus : saisie des informations d'après une liste de choix, transferts des saisies dans trois feuilles différentes selon la nature du menu, impression des menus selon leur nature et la période concernée, calcul des quantités. Je veux bien le supprimer mais cela sera fait quand mon formulaire saisie des menus sera exécutable aussi parfaitement que le formulaire références liste de choix menu qui, lui fonctionne correctement et me donne les résultats souhaites. Cela fait pus d'un an que je suis sur les formulaires et je dois reconnaître que j'ai appris pas mal de choses même si je ne comprends ps tout fautes d'explications détaillées. Faire une feuille mode d'emploi, je suis d'accord mais à condition qu'on me donne les informations souhaitées.
    4. Il ne s'agit pas d'écrire un mode d'emploi, ça tu pourras le faire quand tout sera terminé.
      Ce qu'il faut, c'est un cahier des charges,
      Pour la première fois depuis 6 mois tu viens de l'esquisser :
      - saisie des informations d'après une liste de choix,
      - transferts des saisies dans trois feuilles différentes selon la nature du menu,
      - impression des menus selon leur nature et la période concernée,
      - calcul des quantités

      Pour le premier, les liste de choix, tu as une ébauche mais comme tu n'as pas détaillé le reste, il y a encore des lacunes notamment sur les relations entre les différents informations.

      Un cahier des charge, ça reprend chacun de ces thèmes en les détaillant au maximum.
      Quels sont les résultats espérés (les objectifs recherchés), pour chacun quelles sont les informations nécessaires. Pour chaque information, il faut se poser la question de son utilité, de son rôle et des relations avec les autres et tout coucher dans le cahier des charges.
      C'est un peu ce que j'ai essayé de te faire comprendre avec d'un coté la date du menu qui est une information essentielle et indispensable et d'un autre coté des informations dépendantes de celle-ci comme tes "observation" ou encore "période" qui présentent un intérêt à un certain moment. Ce qui est important c'est de savoir à quoi servent les informations, ce qu'elles apportent et à quel moment on en a besoin.
      Toutes ces questions, plus tôt on se les pose, plus la solution est évidente. Par exemple, à quoi sert l'information 'Jour' ou encore existe-t'il une relation entre la quantité et le conditionnement ?

      Tu as du remarquer que les autres CCMnaute t'ont aussi demandé d'ébaucher un cahier des charges.

      ALBERT EINSTEIN a écrit :
      « Si je disposais d’une heure pour résoudre un problème et que ma vie en dépende, je consacrerais les 55 premières minutes à définir la question appropriée à poser, car une fois cela fait, je pourrais résoudre le problème en moins de cinq minutes.»
    5. @Patrice33740Pour ce qui est du cahier des charges, c'est pour cela que je t'ai envoyé le fichier menus 2017. Quant à rédiger un cahier des charges, je ne l'ai jamais fait et je ne sais pas du tout comment il se fait. Pour moi, ce fichier menus 2017 répond aux objectifs que je recherche même si la présentation n'est peut-être pas adaptée, elle résume en gros ce que je souhaite obtenir.
      "Pour le premier, les liste de choix, tu as une ébauche mais comme tu n'as pas détaillé le reste, il y a encore des lacunes notamment sur les relations entre les différents informations". Qu'entends-tu par le reste ? Quelles sont les lacunes ?
      Relation entre conditionnement et quantité : oui : par exemple, pour un menu midi retraite, une référence LMR09 (Pâtes à la sauce tomates), conditionnement : 5 cuillères par repas;la quantité devra être 5 : il faudrait alors prévoir quelque chose pour m'interdire d'écrire autre chose que 5, ci c'est le sens de ta question.
      RÉPONDRE RAPIDEMENT SUR LE SUJET SUIVANT:
      J'ai fait une modification et je n'ai plus d'erreur de worksheets. Alors donnes-moi un modèle de la zone de liste qui comprendra les cinq (ou plus) colonnes et ce qu'elle devrait contenir une fois qu'on a cliqué sur Ajouter ce produit au menu. Cela me permettra de comprendre un peu son fonctionnement
  5. Bonjour,

    Au post 229 je t'ai déjà donné la marche à suivre :

    1) Choisir la nature du menu
    2) Définir la date du menu
    3) Choisir le produit
    4) Choisir la référence du premier produit
    5) Définir la quantité de produit
    6) Ajouter ce produit au menu (dans le listbox).
    7) Répéter les actions 3, 4 et 5 pour le second produit
    8) Ajouter ce produit au menu.
    9) Répéter les actions 3, 4 et 5 pour le 3ème produit
    10) Ajouter ce produit au menu.
    11) Vérifier la composition du menu.
    12) Ajouter ce menu à la planification des menus.

    Et, il n'y a pas besoin d'enregistrer d'autre information pour définir un menu !!!

    Pour le luxe, tu peux aussi avoir dans le formulaire, une information sur les jours de fête correspondant à la date et si tu y tiens vraiment une autre information pour dire à quel mois appartient cette date (i.e la Période) mais uniquement à titre informel : il n'a aucun besoin d'enregistrer ces informations.

    Tu aura peut-être besoin de ces informations pour calculer les quantités par période ou pour éditer des états ou pour autre chose, mais ça n'a rien à voir avec la création ou la modification d'un menu !

    Je ne vois absolument pas à quoi pourrait servir un combobox pour la période concernée dans la création d'un menu, à part à générer des erreurs !

    Il suffit pas d'y tenir encore faut-il pouvoir en justifier le besoin !
    1. Pour le point 6, (Ajouter ce produit au menu (dans le listbox)) , je suppose qu'il lui faut des instructions pour le faire et je n'ai rien trouvé dans tous mes livres qui disent comment remplir une listbox sans passer par additem. Combien de colonnes dans la liste box ? Donnes-moi le nom des colonnes.
      11) Vérifier la composition du menu. Comment procéder ?
      12) Ajouter ce menu à la planification des menus. Grâce au bouton de commande Ajouter ce menu ? Et dans quelle feuille (Récapitulatif saisie des menus ou historique des menus) ?
      Pour les états mois par mois et par nature, il y aura moyen de choisir le mois à partir de la date du menu ?
      Merci encore pour ton aide.
      Bonnes fin de soirée, nuit et continuation.
    2. Bonsoir Patrice,

      Pour la suite de mon programme (voir mes deux derniers messages d'hier que j'espère tu as vus), faut-il que je considère Types de variable comme résolu afin de poser une nouvelle question ou nous continuons tous les deux ?
  6. Bonjour,

    « Comme je l'avais prévu, le code ne fonctionne pas malgré qu'il soit identique au code initial » Ça c'est pas possible : si il était identique il fonctionnerait !

    Pour déboguer, il ne suffit pas d'appuyer sur F8, il faut aussi regarder ce qui se passe !
    Surtout qu'il se passe exactement la même chose que dans l'exemple de débogage que je t'ai envoyé au post 208 !

    Dans ton dernier fichier :


    Dans ton fichier du post 207 :


    En surveillant les variations de cette variable dans fichier du post 207, avant d'arriver au point ci-dessus, il n'y en a qu'une seule :
    Avant la variation :

    Après l'affectation de la valeur :


    Tu n'a plus qu'à faire la même chose avec ton dernier fichier pour comprendre pourquoi la variable colonne n'a pas la même valeur au moment où l'erreur se produit.
    (Peut-être que relire le tuto t'aidera aussi)
    Cordialement
    Patrice
    1. J'en ai marre. Non seulement ça ne marche pas et mes messages à ton intention ne sont pas acceptés ! Ma précédente réponse à ton message n'a pas été prise en compte. S'il ne veulent plus que j'envoie des messages, qu'ils le disent franchement.
      je résume :
      débogage : capture d'écran différentes de ce qui se passe sur le mien. Fichier post 207 (il fonctionne) : impossible de voir les valeurs de colonne et de rows.count !!!!!!!!!!!!
      Compilation : pas d'erreur.
      Exécution : erreur sur worksheet : qu'ils appellent un chat un chat au lieu de mettre des erreurs incompréhensibles;
      Codes rectifiés et conformes au post 207 : exécution toujours impossible.
      Tu parles de variations : je n'ai rien compris.
      Et pourquoi s'arrêter sur produit et non sur références, puisque la nature menus et la liste des produits (légumes, viandes, desserts, légume deux) se remplissent bien. C'est la liste des références à cinq colonnes qui n'apparaît pas. Je maintiens, persiste et signe : c'est la liste des références qui ne surgit pas. Dans toutes tes réponses, tu ne me parles que de produits, ce que je ne comprends pas puisque produit et nature menus.
      si cela continue, je vais tout plaquer et reprendre mon ancienne méthode qui fonctionne correctement, à moins que tu ne me dises clairement Christian, l'erreur est à cet endroit, il faut mettre pipi au lieu de caca, caca au lieu de pipi. Microsoft n'a pas une réputation exempte de fautes et ce n'est pas avec mon cas qu'il va remonter dans mon estime, bien au contraire !
    2. Sur les images ci-dessus si on compare les deux procédures UserForm_Initialize on voit bien qu'elles sont différentes !
      PS : Si je te parles de cboProduit c'est parce que c'est là qu'on initialise la variable colonne ! Mais encore ne faut-il pas la détruire ensuite !
    3. Pour surveiller l'évolution d'une variable en mode pas à pas tu peux utiliser une espion sur cette variable !
      J'ai complété le tuto (à la fin) pour t'expliquer comment placer un espion :
      https://www.cjoint.com/c/GEew5o5hPVi
    4. @Patrice33740J"ai modifié >2 en >=2. À part cela, la seule différence, ce sont les call. Pour >2, la modification entraîne toujours l'erreur. Désolé, je ne vois pas d'autres différences.
    5. @BUDGETS« la seule différence, ce sont les call »
      Effectivement c'est les call, c'est de ce coté qu'il faut regarder !
  7. Re,

    Le formulaire lors du choix du dessert du menu du 01/05/2017, avant d'appuyer sur ajouter ce produit au menu :


    Le formulaire après le choix du dessert avant d'ajouter ce menu :

    Dans le listbox il faut 2 colonnes supplémentaires indispensables (mais inutiles pour l'utilisateur) : Produit et Référence

    Je n'ai pas mis de colonne "jour" : A mon avis cette information n'est pas utile pour composer le menu si le formulaire fonctionne correctement, c'est-à-dire qu'il ne propose que les références correspondantes au jour défini par la date. En conséquence, il va falloir soit restructurer les données concernant ce champ pour qu'elles soient plus facilement utilisables soit créer un tableau de correspondance avec chaque jour.

    Cela confirme ce que je te dis depuis longtemps, il est très important de faire une analyse détaillée du besoin dès début ou sinon le plus tôt possible pour établir un cahier des charges le plus précis possible. Cela évites de devoir reprendre le travail qui a déjà été fait pour résoudre une difficulté qui était prévisible.
    1. Bonsoir Patrice,
      Nature menu, produit : pas de problème : le contenu apparaît bien. J'ai essayé de retaper le code du frmRéférenceslistdechoixmenus dans le formulaire frmSaisiedesmenus, mais beaucoup trop d'erreurs. Alors comment faire pour que la liste à cinq colonnes de références apparaisse dans le frmSaisieDesMenus ? Comme tu ne réponds qu'à une seule question, je te recontacterai éventuellement pour la seconde question.
      Bonnes soirée et continuation.
    2. Dans ton fichier du post 207, le cbo référence du formulaire choix menu fonctionnait correctement.
    3. @Patrice33740Bonsoir Patrice,
      Ce n'était pas la question posée : choix menu et Produit fonctionnent correctement. C'est le cboRéférences qui ne s'affiche pas.
      À demain au cas où le code du fichier post 207 ne fonctionnerait pas (demain jeudi, donc jour de travail sur ton fichier).
      Bonnes fin de soirée et continuation.
    4. Comment ça c'est pas la question ???
      « Alors comment faire pour que la liste à cinq colonnes de références apparaisse dans le frmSaisieDesMenus ? »
      Ah, effectivement c'est pas la question, c'est la réponse !!!
    5. @Patrice33740Bonjour Patrice,
      Comme je l'avais prévu, le code ne fonctionne pas malgré qu'il soit identique au code initial. La méthode 'Range' de l'objet '_Worksheet' a échoué. Débogage : InitialiseRéférences : set cellule=.range(Colonne & .rows.count).end(xlup)
      Quand j'essaie de faire la pas à pas détaillé, à chaque fois que j'appuie sur F8, il reste sur cette ligne. Je maintiens que le libellé des erreurs est incompréhensible et que le pas à pas ne m'apporte aucune aide. C'est à demander que chez moi, il refuse de fonctionner correctement alors que toi tu semble le porter aux nues !
      https://www.cjoint.com/c/GEenFLSSCAC
  8. Bonjour,

    Je n'ai pas répondu à tes messages car tu as réglé les problèmes par toi-même. il n'y avait donc rien à répondre

    « Le formulaire frmSaisieDesMenus est prêt »
    Ça n'a rien à voir avec ce que je t'ai proposé au post 183.
    Je ne t'ai jamais suggéré ce genre de formulaire !
    Relis le post 183

    Je ne comprend pas ce que tu veux faire avec tous ces contrôles dans le formulaire :
    1) A quoi vont servir les combobox cboDésignationMenus, cboJoursMenus, cboConditionnementMenus, cboDestinationMenus ?
    2) Pourquoi as-tu prévu 4 textbox pour les quantités alors qu'un seul suffirait ?
    3) Pourquoi un listbox à 26 colonnes ? A quoi cela servira-t-il ? Relis le post 144.

    Voici un exemple sur la méthode que j'utiliserais pour la création d'un menu :
    1) je choisis la nature du menu (Menu journalier, Menu midi retraite ou Menu viandes week-end)
    2) je définis la date du menu
    3) je choisis le type du premier produit (par exemple légume) que je vais mettre dans ce menu
    4) je choisis la référence du premier produit (du légume)
    5) je définis la quantité de produit
    6) j’ajoute ce produit au menu : le produit choisi apparait dans le listbox sur la première ligne.
    7) je répète les actions 3, 4 et 5 pour le second produit (par exemple viande) du menu
    8) j’ajoute ce produit au menu : le produit choisi apparait dans le listbox sur la 2ème ligne.
    9) je répète les actions 3, 4 et 5 pour le 3ème produit (par exemple dessert) du menu
    10) j’ajoute ce produit au menu : le produit choisi apparait dans le listbox sur la 3ème ligne.
    11) Je vérifie la composition du menu, c'est-à-dire, dans le listbox, la liste des produits qui le composent.
    12) j’ajoute ce menu à la planification des menus.

    Voila les informations que j'ai besoin dans le listbox, pour pouvoir vérifier la composition du menu (c'est à dire les colonnes) :
    - la référence du produit : cette information est essentielle mais il n'est pas indispensable de l'afficher, elle peut être dans une colonne masquée
    - la désignation du produit
    - le conditionnement
    - la quantité
    Je n'ai pas besoin de la destination puisque c'est la nature du menu.
    - il faudra penser que lors du choix de la référence (§4) le combobox ne devra proposer que les références qui ont cette destination.
    Et il y a une information que je ne vais pas pouvoir traiter facilement :
    - le jour (c'est là que tu te rends compte que ta base de données des jours est mal étudiée)
    La date définit le jour, il aurait fallu que le comboxbox références ne propose que les choix possibles ce jour la !
    Il faut réfléchir à la solution qui permettrait de résoudre ce problème

    Quelles sont les informations que je vais enregistrer pour mémoriser ce menu :
    - la nature du menu
    - la date
    - le type de chaque produit avec sa référence et la quantité
    Les observations et la période peuvent être calculées à partir de la date, donc inutile d'encombrer la base de données avec ces informations
    Les autres informations peuvent être extraites de la base de données des références, donc inutile de les enregistrer aussi dans celle des menus.
    Enfin, il y a une information dont je ne comprend pas l'utilité, c'est le numéro de menu.

    1. Bonjour Patrice,

      Je vais refaire le formulaire en tentant compte du post 183. J'ai compris le fonctionnement de ton idée mais je n'ai toujours pas compris le fonctionnement de lstproduit.
      Joyeux premier mai. Bonnes fin de journée et continuation.
    2. mais je n'ai toujours pas compris le fonctionnement de lstproduit.
      Une fois que tu auras défini le produit et la quantité, le bouton ajouter le produit au menu aura pour action d'ajouter une ligne dans le listbox :
      - d'une part pour mémoriser les informations qu'il faudra enregistrer lors de la création du menu (type de produit, référence et quantité)
      - d'autre part pour visualiser la composition du menu en affichant en supplément les informations qu'il est inutile d'enregistrer mais qui indiquent à l'utilisateur de quoi est composée la référence choisie, c'est-à-dire la désignation du produit, le conditionnement, le jour.
      En écrivant ceci, je me rends compte que dans le listbox, j'ai oublié qu'il faudra aussi une colonne pour enregistrer le type de produit (comme pour la référence, cette information est essentielle mais il n'est pas indispensable de l'afficher, elle peut aussi être dans une colonne masquée)
      .
    3. @Patrice33740Bonjour Patrice,

      J'ai refait mon formulaire Saisie des menus. Pour la liste box, j'ai réduit le nombre de colonnes à 11 (Nature du menu, Date du menu, Produit, Références (5 colonnes), quantité, observations (à supprimer éventuellement si ton code est exécutable uniquement dans la feuille récapitulatif saisie des menus) et numéro du menu (j'y tiens particulièrement, ce sera un moyen de contrôle pour moi lors de la saisie). Pour l'instant, ce serait bien que tu me fasses un exemple de la liste box pour que je me rende compte de ce qu'elle contiendra en réalité avec, éventuellement, la ou les colonne(s) à masquer. L'ajout du produit du menu et l'ajout du menu devra permettre de remplir la feuille récapitulatif saisie des menus
      https://www.cjoint.com/c/GEbp0d2XKaC
      Bonnes fin de journée et continuation.
    4. J'ai parfaitement compris qu'après les saisies et un clic sur Ajouter le produit au menu, la liste box se remplit. Mais comment, tu ne m'as jamais répondu à cette question. Je suis bloqué par cette non réponse.
  9. Bonjour

    « Je ne l'ai pas retrouvé mais ... » : Ça t'arrive souvent, j'ai l'impression que tu n'as pas compris comment fonctionnent les discussions sur CCM : Lorsqu'il y a trop de commentaires, seuls les derniers apparaissent, les autres sont masqués et remplacés par un message sur lequel il faut cliquer pour les faire apparaître .:


    PS : Il suffit de glisser-déplacer le module mDate dans ton fichier (en conservant le copyright)
    Cordialement
    Patrice
    1. Bonjour

      Voici un tuto pour déboguer ton programme.
      https://www.cjoint.com/c/GDvw06NX7xb
      1. Bonjour Patrice,

        Merci pour ta démonstration très détaillée. Je l'essaierai demain.
        Je suis à la recherche de ton message que je n'ai pas retrouvé concernant la macro pour les observations. Pourrais-tu me dire quel en était le numéro ?
        D'avance merci.
        Bonnes fin de journée, soirée, nuit et continuation.
      2. Bonsoir,

        Je ne sais pas quel est le numéro du post concernant les observations.
        Mais il suffit de relire tous les messages du post pour le retrouver.

        Patrice
      3. @Patrice33740Je ne l'ai pas retrouvé mais par contre j'ai retrouvé le document imprimé. Merci tout de même.
        Concernant les observations, le code qui est de ton invention, pour laquelle je t'ai d'ailleurs félicité, il faut l'écrire dans la feuille ou dans dans le formulaire concerné ?
        Bonnes fin de soirée, nuit et continuation.
      4. Bonjour Patrice,

        Les captures d'écran de ton débogage ne correspondent pas à ce qui se passe réellement dans mon fichier. Dans mon fichier, il va directement au point 8 du tuto. au point 21, j'ai supprimé initialiselescboproduit. À l'exécution, j'ai toujours la même erreur de worksheet mais dans la procédure cmd ajoutercetteréférence. Et je n'ai plus de liste déroulante pour es desserts, les viandes et les légumes !
        dans ton tuto, au point 16, quel est le nom du fichier corrigé qui fonctionne ?
        https://www.cjoint.com/c/GDxnN0bDTpU
      5. @BUDGETSIl n'y a pas d'erreur, c'est mon portable qui déconne. J'ai exécuté liste de choix sur mon pc de bureau et tout a fonctionné correctement. j'ai fait une création de légumes, une de desserts. j'ai sauvegardé puis j'ai transféré ledit fichier sur mon ordinateur portable sous le même nom. Les deux créations faites y figurent bien. J'ai fait une création viande sur mon portable et cela a fonctionné. Je t'envoie mon nouveau fichier : lis les codes : supprime ce qui ne te convient pas et surtout vérifie que tout fonctionne bien correctement et renvoie-moi le. Si tout est ok, je clôturerai types de variables et je m'attaquerai à saisie des menus pour lequel, éventuellement, j'ouvrira une nouvelle discussion suivie. Éventuellement, testes toi même le bon fonctionnement en créant un légume, une viande et un desserts.
        https://www.cjoint.com/c/GDxpDA0QB0U

        Bonnes fin de journée, soirée, nuit et continuation.
    2. Re,

      « Si j'ai bien compris ce que je viens de lire, et contrairement à ce que je pensais, la listbox va afficher le contenu de la feuille Récapitulatif liste de choix et, à partir de cette liste, je vais choisir la référence appropriée : et après, que va-t-il se passer dans la saisie des menus ? »
      Eh bien non, tu n'a rien compris !
      La listbox va afficher les produits que tu as choisi , dans le formulaire, pour constituer le menu, et après quand ton menu sera constitué et que tu auras renseigné les autres champs (date, nature ...) tu pourra l'enregistrer.

      « Je viens de regarder mon fichier Référencesmenus et le module MRéférencesListeDeChoix : les deux procédures sont bien en public et non en private. » c'est possible mais je parle des procédures du formulaire, pas de celles du module standard et ce n'est pas le cas dans le dernier fichier que tu as envoyé, c'est à dire au post 189.

      Au post 192, je parles de ce que tu n'a pas fait dans ton fichier du post 189.

      Il ne suffit d'exécuter une macro pour savoir si elle fonctionne, on peut toujours essayer d'envisager toutes les situations mais c'est quasiment impossible : ce qui est essentiel, c'est de savoir comment elle est structurée, de comprendre le rôle de chaque instruction pour savoir comment elle fonctionne.

      Il est aussi très important de comprendre comment on utilise les puissants outils de débogage que le VBA met à ta disposition, notamment les points d'arrêt, le mode pas à pas et surtout la fenêtre variables locales, non seulement pour dépanner mais aussi, avant que les problèmes ne surviennent, tout simplement pour comprendre et analyser le déroulement du programme, en particulier quand tu n'a pas compris.

      Le nom du fichier n'a aucune importance, ce qu'il faut c'est corriger tes erreurs. Je n'ai pas l'intention d'écrire le code à ta place.

      Cordialement
      Patrice
      1. "Au post 192, je parles de ce que tu n'a pas fait dans ton fichier du post 189".
        Dans quel post figure ton fichier à partir duquel je dois modifier mon fichier du post 189 ? Et dans quel module ou dans quel formulaire, je dois effectuer des modifications ?
      2. Si tu prenais le temps de relire les post précédent tu ne poserais pas cette question : c'est toujours le même, celui du post 183 !
      3. @Patrice33740Apparemment, je ne t'ai pas envoyé le bon fichier. Je te le renvoie, tu vérifies le formulaire SaisieDesMenus (il doit être conforme à tes instructions maintenant : j'ai supprimé Observations, numéro du menu);le module MRéférencesListeDeChoix a bien ses procédures en public; dans la feuille Historique des menus, faut-il supprimer les colonnes Numéro observations et Observations ou garder seulement la colonne observations ? Si d'autres modifications à apporter à ce fichier, dis-moi où exactement (dans le fichier du post 183 : dans le formulaire machin truc, dns le module bidule, je t'ai dit de faire ceci, cela mais ton fichier, ces modifications n'apparaissent pas).
        https://www.cjoint.com/c/GDtu6HhNyuU
        Essaie de me répondre gentiment : personnellement, je pense être convenable avec toi et tes réponses me donnent l'impression que je te t'emmerde même si je te dérange souvent.
      4. L'aspect du formulaire saisieDesMenus a effectivement l'air conforme, par contre, je n'ai pas regardé son code, je préfèrerais que tu termines le formulaire RéférencesListeDeChoix car son code.n'est toujours pas corrigé.

        En comparant l'exécution en mode pas à pas du code corrigé, puis de ton code, tu te verras que dans le code corrigé c'est la procédure publique d'initialisation du cboProduits qui est utilisée alors que dans ton code c'est encore la procédure privée.

        Les corrections que tu n'a pas encore fait :
        - Les variables locales sont toujours là.
        - Tu n'a pas corrigé la procédure d'initialisation pour utiliser la procédure publique à la place de la procédure locale.
        - Tu n'a pas supprimé la procédure locale Private Sub Initialise_cboProduit() comme je te l'ai demandé au post 192.
        Au lieu de la supprimer, je l'avais renommé pour que tu te rendes compte (grâce au pas à pas) qu'elle ne servait plus à rien et que tu pouvais la supprimer.
      5. @Patrice33740Bonjour Patrice,

        J'ai imprimé ton post 202 et j'ai apporté les modifications. Le résultat : erreur : la méthode 'Range' de l'objet ' _Worksheet' a échoué (dans private sub InitialiselescboDuProduit).
        Par contre, je n'ai pas compris "les variables locales sont toujours là".
        voir le fichier joint : https://www.cjoint.com/c/GDuntgA8msU
    3. Bonjour,

      Quand je dis que ton fichier n'est pas conforme, je ne parles pas du code que tu as ajouté mais des corrections que tu n'as pas effectué !

      « Alors prouves-moi que je n'ai pas tenu de tes corrections. » : Par exemple, dans le module du formulaire MRéférencesListeDeChoix, j'ai, entre autres modifications, supprimé la procédure locale Private Sub Initialise_cboProduit() puisqu'elle est remplacée par une procédure publique et toi, tu ne l'as pas fait !!!

      « D'ailleurs, les saisies se font correctement maintenant, ... » : C'est pas parce que, pour l'instant tu ne constate pas d'erreur, que ton code est correct. C'est simplement que tu ne l'as pas testé dans la configuration qui provoque l'erreur !

      Ceci dit, je n'ai rien à prouver, j’essaie simplement de t'aider à développer cette application par toi-même, puisque c'est ta volonté et je la respecte.

      Par contre j'aimerais que toi aussi tu respectes le travail que je te propose et que tu tiennes compte des réponses et des conseils que je te donnes. Je t'ai aussi fourni des méthodes de travail élémentaires, des liens vers les meilleurs cours d'autoformation au VBA. Le VBA ne s'apprend pas en un jour et il ne faut pas chercher à aller trop vite. Il serait bon que tu assimiles progressivement ces données. Je te rappelle aussi que l'aide intégré au VBA est très bien fait, qu'il suffit d'utiliser la touche F1 pour avoir des explications détaillées sur chaque élément du langage.

      Depuis le début (le 2 octobre 2016) je te dis qu'il ne faut pas avancer trop vite, qu'avant de démarrer le développement d'une nouvelle partie de ton application, il faudrait finir ce que tu as commencé. Sans oublier que, ce qui est déjà fait est susceptible d'évoluer pour satisfaire un besoin plus général (par exemple la modification d'éléments privés vers des éléments publics).

      « Je ne demande pas que tu m'écrives tout le code mais pour chaque procédure, que tu m'écrives une ou 2 lignes, à charge pour moi de compléter ... » : c'est ce que j'ai fait, et au final, vu que tu n'y arrivais pas, je t'ai aussi fourni un code complet fonctionnel, et là encore tu n'arrives pas à le copier correctement, tu y ajoutes de nombreuses erreurs que tu n'arrives pas à détecter.
      Bon prince, je te fournis les corrections de ton code avec des commentaires explicatifs et là, tu ne les appliques pas.

      C'est bien pour cela, parce que tu veux développer par toi-même, que je ne réponds pas aux questions qui peuvent attendre que tu aies corrigé et compris les erreurs signalées que subsistent dans ton code.

      Évites aussi de poser des questions pour lesquelles tu as déjà la réponse, c'est très désagréable. Par exemple : « à quoi sert lstProduit ? », relis le post 144 : [...] un listbox multicolonnes pour visualiser les produits (un produit par ligne) qui composent le menu avec les colonnes : Produit, Jour, conditionnement, destination, quantité.
      Si la réponse n'est pas suffisamment explicite, demandes les précisions requises !
      1. mea culpa : à la lecture de ton post, en effet je n'ai pas fait de rectifications sur le formulaire frmListeDeChoixMenus : comme il est rempli en entier et qu'il fonctionne, je n'ai pas jugé utile d'aller voir comment il se présentait.
        Pour le lstProduit: que dois-je faire alors pour qu'il soit multicolonne ? Dois-je écrire également l'intitulé des colonneset si oui, comment m'y prendre ?
      2. Ordre de travail :
        1)Création de la feuille de réception des données;
        2)Création du ou des modules;
        3)Création du ou des formulaire(s)
        4)Création des objets (outils) du ou des formulaire(s)
        Pour l'écriture du code, quel est l'ordre à suivre (pour chaque point ci-après, mettre un chiffre qui correspondra à ce qui est à faire en premier, puis en second et ainsi de suite)
        A. Module (s)
        B. Formulaire (s)
        C. Feuille Accueil (création du ou des bouton(s) de commande puis écriture du code dudit (desdits) bouton (s) de commande
        Quelle est la meilleure solution : créer uniquement un module MCommun ou créer un module MCommun et un module qui a le même nom que le formulaire (sans le préfixe frm) ?*
        Merci de répondre prioritairement à ce post puis, éventuellement, au précédent.
        Bonnes fin de journée, soirée, nuit et continuation.
        • J'ai constaté que des fois il n'y a qu'un module Mcommun, d'autres fois un module Mcommun et un module ayant le même nom que le formulaire, dans tes exemples.Évidemment, il faudra tenir des instructions contenues dans chacun d'eux dans l'hypothèse où ces instructions seraient utilisées dans le code du formulaire.
      3. Re,

        « Pour le lstProduit: que dois-je faire alors pour qu'il soit multicolonne ? »
        Comme dans un combobox, pour un listbox c'est la propriété ColumnCount qui défini le nombre de colonnes (déjà a 5 dans ton formulaire menus).
        « Dois-je écrire également l'intitulé des colonnes et si oui, comment m'y prendre ? »
        C'est toi qui doit choisir, mets-toi à la place d'un futur utilisateur de ton application et demandes-toi si ces informations lui seront utiles ?
      4. @Patrice33740"me mettre à la place d'un futur utilisateur ..." Pour moi, la réponse est oui malgré que je ne sache pas comment va se présenter le listbox, il va de soi de savoir que la première colonne est celle des références, la seconde la désignation (le nom du produit) et ainsi de suite. Si mon raisonnement est bon, comment faire apparaître le nom des colonnes (même nom que les combo boxes ou un autre nom) ? Je crois avoir vu ou lu quelque part, qu'il y a une propriété qui permet d'inclure le titre des colonnes. Je vais essayer d'aller voir l'aide que je ne trouve pas assez explicite.
        Si j'ai bien compris ce que je viens de lire, et contrairement à ce que je pensais, la listbox va afficher le contenu de la feuille Récapitulatif liste de choix et, à partir de cette liste, je vais choisir la référence appropriée : et après, que va-t-il se passer dans la saisie des menus ?
        Je viens de regarder mon fichier Référencesmenus et le module MRéférencesListeDeChoix : les deux procédures sont bien en public et non en private.
      5. Dans ton post 192, de quels fichiers (le mien et le tien) parles-tu afin que puisse voir les modifications que tu as apportées.
        Si tu es d'accord, je travaille sur un fichier que tu auras fait, modifié, par exemple il s'appellera fichier Patrice Menus ou Menus patrice;tu me signales là où tu as fait des modifications (module, formulaire tant en création qu'en exécution);tu me l'envoies, je regarde tout ce que tu as fait comme modifications et je les reporte dans mon propre fichier (Références menus) et je l'exécute pour voir la réaction.
    4. Bonjour,

      Le fichier que j'ai envoyé au post 183 n'est pas mon fichier mais ton fichier que tu as mis au post 181 auquel j'ai apporté les corrections nécessaires pour supprimer l'erreur que tu signalait au post 179, avec des commentaires explicatifs. Je n'y ai pas ajouté d'autre code.

      Tu dis : « Pour ce qui est du fichier de ton post 183, j'ai essayé de faire vainement des enregistrements mais je me suis aperçu qu'il n'y avait pas de code pour le bouton de commande Ajouter ce produit au menu » ça me parait tout à fait normal puisque tu n'avais pas écris ce code.

      Par contre le fichier que tu renvoies au post 186, contrairement à ce que tu écris, ce n'est pas celui que j'ai corrigé au post 183. Et dans le fichier renvoyé, tu n'a même pas apporté toutes les corrections que j'ai indiqué dans le code.

      Et je te rappelle car je te l'ai dit et répété maintes et maintes fois, que moi aussi je ne suis pas un professionnel.
      Je fais beaucoup d'efforts pour comprendre et trouver toutes les erreurs que tu ajoutes dans les exemples parfaitement fonctionnels que je te donnes.
      Et en plus, tu oses te plaindre du fait que ça marche pas !

      Patrice
      1. Bonjour Patrice

        Dans le formulaire Saisie des menus, dois-je initialiser_cboréférences, _cbodésignation, _cbo_jours,_cbo conditionnement, _cbodestination, prévoir une MiseÀJourIndexRéférences, d'une manière générale prévoir les autres procédures du module comme dans le formulaire RéférencesListeDeChoix ?
        https://www.cjoint.com/c/GDrt7r272kD
      2. Bonsoir Patrice,

        Sauf erreur ou omission de ma part, le fichier est conforme au tien. Que faire maintenant pour que la nouvelle erreur ne sorte plus ? J'attends des réponses fiables à mes deux pquestions précédentes : initialisations des combo boxes et à quoi sert lstProduit ?
        Bonnes soirée et continuation.
        https://www.cjoint.com/c/GDstea28zZU
      3. Ça sert à quoi que je me décarcasse à te fournir un fichier avec les corrections à apporter et des commentaires explicatifs si tu n'en tiens pas compte !!!!

        Tes deux fichiers des post 188 et 189 ne sont pas conformes à ton fichier que j'ai corrigé au post 183 !
      4. @Patrice33740Bonjour Patrice,

        Il ne peut pas être conforme puisque dans le fichier duc post 183 il n'y a rien pour le bouton de commande Ajouter ce menu dont j'ai écrit le code d'après le formulaire liste de choix menus avec les call. D'autre part, je te pose une question, tu n'y répond jamais. Alors prouves-moi que je n'ai pas tenu de tes corrections. D'ailleurs, les saisies se font correctement maintenant, alors pourquoi en est-il ainsi si je n'ai pas tenu compte de tes observations ?
        Je ne demande pas que tu m'écrives tout le code mais pour chaque procédure, que tu m'écrives une ou 2 lignes,, à charge pour moi de compléter pour qu'il devienne exécutoire (sans erreurs). Là, tu me distilles tout au compte gouttes et je suis obligé de te contacter tous les jours.
    5. Bonsoir

      Ci-joint Ton fichier avec le code corrigé (et avec des commentaires)
      https://www.cjoint.com/c/GDquOKvFMT7

      J'ai aussi réorganisé la disposition des contrôles du formulaire comme je l'aurais fait. sans en supprimer aucun, j'ai simplement mis à droite ceux dont je ne vois pas l'utilité.
      Comme je t'ai déjà dit, dans une base de données il faut éviter tout ce qui est inutile : je ne vois pas à quoi sert le numéro du menu (la date est un excellent numéro), la période et les observations sont calculables à partir de la date (donc inutiles dans la base de données)
      1. PS :
        Quand tu dis : « RéférencesMenus déconne sans aucune raison valable, » tu te trompes lourdement : il y a toujours une raison valable !!!

        Et je te rappelle qu'au post #159 je t'avais donné une méthode simple et efficace pour trouver d'où viennent les erreurs.
      2. @Patrice33740En effet, tu m'avais donné la méthode que j'ai essayée d'appliquer mais cela n'a jamais rien donné. À chaque, il n'y a jamais eu d'erreur qui soit ressortie. Donc je n'ai toujours pas compris ni le fonctionnement ni la marche à suivre ni ce qui doit apparaître à l'écran an cas où une erreur serait décelé. Désolé mais je te rappelle car je te l'ai dit et répété maintes et maintes fois, je ne suis pas un professionnel.
        Pour ce qui est du fichier de ton post 183, j'ai essayé de faire vainement des enregistrements mais je me suis aperçu qu'il n'y avait pas de code pour le bouton de commande Ajouter ce produit au menu : relation de cause à effet ?
        À quoi sert l'outil lstProduit ?
        bonnes fin de journée et continuation.
      3. @Patrice33740Je te renvoie ton fichier que j'ai modifié (il y avait une erreur en ce qui concernait Nature du produit et Nature du menu dans le module Mcommun : deux fois la même référence à Nature du Produit) : j'ai écrit le code pour Ajouter le menu mais les combo boxes Désignation, Jours, Conditionnement, Destination ne sont pas reconnus dans shHistorique des menus. Je suis têtu mais excuses-moi de te le dire franchement, toi aussi. Comme tu ne veux pas m'expliquer en détail le fonctionnement du code du formulaire Saisie des menus, j'essaie de me démerder seul mais je n'y arrive pas. Merci de me répondre à ce post et au précédent (numéro 185). Je suis donc obligé de te déranger continuellement. Les deux autres boutons de commande seront traités ultérieurement. Regarde également toutes les instructions qui suivent UserForm_Initialize pour me signaler les éventuelles erreurs. Comme je ne sais pas à quoi sert Lstproduit, j'ai écrit le code qui donne un résultat mais pour l'instant je n'ai pas compris son utilité. Dans Historique des menus, j'ai supprimé Nature du Produit et Nature du Menu qui ne servaient à rien et qu'il était impossible de placer à partir de la saisie des menus : cela donnait des aberrations.
        Dans le formulaire Saisie des menus, dois-je initialiser_cboréférences, _cbodésignation, _cbo_jours,_cbo conditionnement, _cbodestination, prévoir une MiseÀJourIndexRéférences, d'une manière générale prévoir les autres procédures du module comme dans le formulaire RéférencesListeDeChoix ?
        https://www.cjoint.com/c/GDrt7r272kD
        Bonnes soirée, nuit et continuation.
    6. Bonjour

      Les suggestions du post 144 sont toujours valables.
      Celles des posts #148 et #150 aussi.

      En réponse au post 170 :
      1) Quand je parle de table, d'état, de base de données, il s'agit de termes génériques qui sont indépendants du logiciel utilisé. Une table, c'est ce qu'autrefois, avant l'arrivée massive de l'informatique, on appelait un fichier, c'est à dire l'endroit où on stocke des fiches. Les fiches que maintenant on appelle souvent 'enregistrement'. Sous Excel une fiche se matérialise par une ligne dans un tableau. mais le terme tableau n'est pas très approprié, dans une base de données ça s'appelle une table.
      2) Pour l'instant je ne vois pas l'utilité de créer d'autres formulaires.
      3) Gardes en mémoire ce que je te disais il y a 2 mois au post #29 :
      « Quand cet outils fonctionnera, mais pas avant, tu pourras envisager, dans le même classeur, un autre outil (un autre formulaire) pour créer les menus, qui seraient enregistrés dans un ou plusieurs autres fichiers, pour une historisation, c'est-à-dire des simples fichiers de données sans aucune macro. »
      Dans un premier temps, pour mettre au point ton formulaire tu peux utiliser un nouvel onglet pour stocker les menus (pour faciliter la création ultérieure des états il est préférable que tous les menus soient dans la même base de données).

      Cordialement
      Patrice
      1. Bonjour Patrice,

        Cette après-midi, je vais revoir mon fichier Références menus car certaines colonnes ne contiennent pas l'information exacte puisque tant le mien que le tien sont erronés. D'autre part, j'ai vu quelque chose dans un livre qui pourrait m'intéresser. Je ferai un essai pour voir ce que cela donnera.
        Bonnes fin de journée et continuation. Si je n'ai pas de message de ta part d'ici demain, je te souhaite de joyeuses fêtes de Paques.
      2. Voilà, Patrice j'ai effectué les modifications nécessaires selon ta méthode qui a fonctionné correctement : modification ou suppression. Donc mon fichier est maintenant correct et répond bien à mes souhaits.
        Maintenant, je vais essayer la deuxième partie de mon post 177.
        https://www.cjoint.com/c/GDpprpjiaoD
      3. Bonjour Patrice,

        Pourquoi SaisieDesMenus ne fonctionne pas ? J'ai repris tes instructions (en modifiant éventuellement les références susceptibles de l'être). Dans Comptabilité, cela fonctionne correctement. Que des emmerdement avec ce fichier RéférencesMenus !
        Je veux bien faire ce que tu veux, mais alors que cela fonctionne partout. Quand tu auras réglé cette connerie de message incompréhensible comme d'habitude, j'aurai une autre question à te poser.
        https://www.cjoint.com/c/GDqnXUgnWCD
      4. @BUDGETSBonjour,

        Je voudrais bien regarder ton fichier du post 178 (avant de regarder ceui du post 179) mais je ne peux pas :
        1) c'est à nouveau un fichier au format xltm au lieu d'un xlsm !
        2) il est protégé par un mot de passe !
    7. Bonjour,

      Je ne comprends pas ta méthode de travail.

      Le 6 avril tu utilisais un fichier nommé Référencesmenus dans lequel il y avait un formulaire pour établir les références des menus qui était presque terminé et un autre formulaire a développer pour les menus.

      Maintenant tu utilises un autre fichier nommé Comptabilité dans lequel je ne retrouve pas les formulaires précédents.

      Pourquoi ne pas terminer le premier fichier avant de te lancer dans autre chose ?
      1. Bonsoir Patrice,

        Je ne sais pas pour quelles raisons, mais le fichier Référencesmenus a été endommagé et tout s'est trouvé décalé ou déplacé et impossible d'y apporter des modifications, elles ne sont pas prises en compte. Comme j'ai été victime d'un piratage, je pense que ce fichier a été une cible pour mon pirate. J'ai donc tout recommencé.
        Pour ce fichier, tu m'as donné des chemins à suivre pour lequel tu n'as pas répondu ) ma question, à savoir comment utiliser la zone de liste (utilisation, code).
      2. @Patrice33740Bonsoir Patrice,

        Merci de répondre à mon post 170 qui fait réponse à ton post 169. N'oublie pas : dans un précédent message (post 144), tu avais réduit les combo boxes nécessaires pour le formulaire Saisie des menus.
    8. Bonsoir,

      « je ne retrouve pas celui que tu m'as envoyé le 07 avril 2017 à 1h10. »
      Il est toujours à sa place ici : Post 152

      « Je compte sur toi pour me donner toutes les consignes de création du formulaire » C'est aussi toujours là : Post 144
      1. Bonjour Patrice,

        D'après les trois exemples envoyés dans le post 166, confirmes-tu le contenu du post 144 ?
        Un clic sur la liste (d'après post 152, impossible de le trouver là ou alors il n'est pas à sa place), va-t-il automatiquement enregistrer dans le formulaire saisie des menus toutes les références ?
        Bonnes journée et continuation.
      2. Les exemples du post 166 sont des "états" c'est-à dire le résultat d'une requête de la base de données.
        Lorsqu'une base de données est bien construite on peut obtenir tous les états qu'on veut, c'est pour cela que la première étapes est la construction de la base de données.
        La difficulté étant de bien analyser le besoin pour que toutes les informations se trouvent dans les différentes tables (tableaux ou feuilles) de la base de données sans doublon pour éviter toute ambigüité.
        D''où la nécessité d'enregistrer dans chaque table, uniquement les données indispensables et d'éliminer toutes les données superflues qui peuvent être obtenues soit par calcul, soit à partir d'une autre table de données.

        Par exemple au lieu d'écrire dans une table :
        02 janvier 2017 LMR09 Pâtes à la sauce tomates Rôti de porc Pomme Menus midi retraite numéro du menu : 1 Période concernée : Janvier 2017

        Il suffit de mettre uniquement dans une table :
        02 janvier 2017 LMR09 1 Mensuel

        et dans une autre table (que tu as déjà créé) de :
        LMR09 Pâtes à la sauce tomates Rôti de porc Pomme Menus midi retraite

        à partir de ces infos, tu pourra ensuite créer un état qui donnera :
        02 janvier 2017 LMR09 Pâtes à la sauce tomates Rôti de porc Pomme Menus midi retraite numéro du menu : 1 Période concernée : Janvier 2017

        mais ça c'est l'étape finale, en attendant il y a du pain sur la planche : il faut créer les différentes tables de la base de données et les formulaires pour les renseigner.
      3. @Patrice33740Bonsoir Patrice,

        Je veux bien faire tout ce que tu veux mais expliques-moi comment procéder. Le fichier Comptabilité.xlsm peut-il servir pour ce que tu as écrit ci-dessus. Pour ce qui est de ce que je veux, les trois imprimés te le disent (à l'exception que sur ces imprimés, il n'y a pas la quantité). En créant plusieurs tables comme tu le suggères ci-dessus (personnellement, je préfère feuilles ou onglets car pour moi tables = Microsoft Access), quels seraient leur contenu et leur nom ? Quels formulaires (nom du (des) formulaire(s) et avec quels objets pour chacun d'eux) seraient nécessaires ?

        De tout ce qui précède, voilà mes suggestions, que tu confirmeras ou infirmeras :
        - un onglet (feuille) Menus midi retraite, avec les colonnes dates, codes légumes, légumes, jours légumes, conditionnement légumes, destination légumes, quantité légumes, codes observations, observations, numéro du menu, période concernée;à partir de là, dans le même onglet (ou feuille) ou dans un autre, on fera un état comparable à celui du post 166 et un autre état pour le calcul des quantités (ces deux derniers ne me posant aucun problème).
        - un onglet Menus journaliers (mêmes colonnes que précédemment avec six colonnes supplémentaires pour légume deux) et états identiques à celui du post 166 sur le même principe que Menus midi retraite.
        - un onglet Menus viandes week-end avec le même principe que menus midi retraite.

        Combien de formulaires nécessaires : 1? 2? 3? Avec quels objets (outils) pour chacun d'eux ? Pour les formulaires (unique ou plusieurs), ton code pourra-t-il être repris ? Quels modules seront à créer ?
        Bonnes soirée et continuation.
      4. @Patrice33740Bonjour Patrice,

        Mon formulaire Saisie des menus est terminé. Si nécessaire, l'ordre des intitulés, des combo boxes pourra être modifié. J'ai écrit quelques lignes de codes qui ne donnent pas le résultat souhaité du fait de ce qui suit.
        Je clique sur Nature menu, la liste déroulante apparaît bien tout comme celle de Produit ainsi que Références. Quand je choisis une référence, je souhaiterais que Désignation, Jours, Conditionnement, Destination se remplissent automatiquement par rapport à Référence;ceci fait, je cliquerai sur Ajouter ce menu et les informations saisies devront se retrouver dans l'onglet Récapitulatif saisie des menus.
        Merci pour ton aide.
        Bonnes soirée et continuation.
        https://www.cjoint.com/c/GDnpSHPjdVD
    9. Bonjour,

      « J'ai essayé mais il ne m'a signalé aucune erreur. » : C'est normal car il n'y a pas d'erreur d'exécution du code mais une erreur d'écriture (i.e. de structure du programme) qui provoque l'anomalie : le tri rapide boucle indéfiniment.

      Pour constater cette erreur (et toutes les autres rencontrées depuis 5 mois) il suffit d'exécuter le code en mode pas à pas. Après chaque pas, le programme passe en mode arrêt : l'analyse des variables permet de vérifier que tout se passe normalement (ou pas) avant d'exécuter le pas suivant.

      Pour exécuter le code en mode pas à pas :
      1. Commencer par mettre un point d'arrêt au début du code à exécuter:
      Cliquer sur la barre grise verticale à droite de la première instruction : un point apparaît sur cette barre et la ligne est alors colorée.



      2. Lancer le code (avec le bouton « Liste de choix »)

      3. Le code s'arrête sur le point (la ligne est alors surlignée en jaune). Exécuter les instructions une pas une en appuyant sur F8 (i.e. en pas à pas), chaque appuis sur F8 exécute une instruction et arrête le code sur l'instruction suivante.
      1. et s'il y a une erreur, comment je le saurais-je ?
      2. J'ai un fichier qui s'appelle Menus faits par Patrice.xlsm (je te recommande beaucoup cette personne) qui fonctionne correctement. Je vais donc supprimer tout mon fichier Comptabilité et le refaire entièrement car je n'ai pas trouvé où était l'instruction qui faisait que la boucle tournait en rond. À chaque modification effectuée, il y a toujours une erreur incompréhensible pour un développeur comme moi. Si tu me réponds avant demain lundi après midi, peut-être m'apporteras-tu le lieu où se trouve vraiment l'erreur afin de m'éviter à devoir refaire tout. J'ai imprimé Menus faits par Patrice en totalité et comparé au mien et je n'ai rein trouvé d'erroné en tenant compte des éventuels changements de nom d'un fichier à l'autre. À force de lire et de relire, il est impossible de voir les erreurs.
        Bonnes soirée, nuit et continuation.
      3. Bonjour Patrice,

        Clic sur le bouton de commande Liste de choix de la feuille accueil : erreur :l'indice n'appartient pas à la sélection : apparition du module MCommun : Loop
        Do While Pivot < Table(D)
        D = D - 1

        Je te joints mon fichier et le tien : même si tu me prends pour un con, tu verras que j'ai bien écrit ce qui figure dans ton fichier. J'en ai marre des erreurs incompréhensibles.
        https://www.cjoint.com/c/GDknEHdbbfk c'est mon fichier
        https://www.cjoint.com/c/GDknFO18sRk Ton fichier qui fonctionne correctement.
        Alors où sont les discordances entre les deux fichiers ?
        Résultats des courses : l'erreur n'était pas à la ligne signalée mais plus bas (loop while p>=d au lieu de loop while p<=d. Mon programme semble fonctionner maintenant. Je vais faire mes créations et voir si tout va fonctionner correctement.
        Presque tout fonctionne : quand la référence est ajoutée , elle apparaît bien dans liste de choix; par contre, désignation, jours et conditionnement, les combo boxes restent vierges.
      4. Post 162 : les combo boxes restent vierges : maintenant, il ne sont plus vierges. J'ai eu du mal à trouver mon erreur mais j'y suis arrivé. J'ai fait des copier-coller et j'avais oublié de modifier là ou cela était nécessaire le nom du combo box dans les initialise_cbo.
      5. C'est en forgeant ....
    10. Bonjour,

      1) Je viens de regarder ton dernier fichier avec le formulaire menu :
      La plupart des cbo sont totalement inutiles !

      Pour créer les menus, on a besoin de 3 combobox uniquement:
      - Nature du menu
      - Choix du produit
      - Référence du produit
      et de 2 ou 3 textbox :
      - Date
      - Quantité de produit
      - [selon le cas] Numéro du menu (numérotation manuelle)
      et d'un ou 2 labels :
      - Observations (calculées automatiquement d'après la date)
      - [selon le cas] Numéro du menu (numérotation automatique)
      et des boutons
      - ajouter un produit
      - ajouter le menu
      - modifier le menu
      - supprimer le menu

      et surtout un listbox multicolonnes pour visualiser les produits (un produit par ligne) qui composent le menu avec les colonnes :
      Produit, Jour, conditionnement, destination, quantité

      2) « Je choisis de nouveau un produit; je tape la lettre (L,V ou D) et là le premier code, par exemple LD02 tel qu'il figure dans l'onglet Récapitulatif liste choix apparaît : dans toutes les instructions du code, où se trouve l'instruction qui permet cette apparition ? »
      Nulle part, c'est le fonctionnement normal d'un combobox.
      1. Bonjour Patrice,

        Pour créer les menus, on a besoin de 3 combobox uniquement:
        - Nature du menu
        - Choix du produit
        - Référence du produit
        et de 2 ou 3 textbox :
        - Date
        - Quantité de produit
        - [selon le cas] Numéro du menu (numérotation manuelle)
        et d'un ou 2 labels :
        - Observations (calculées automatiquement d'après la date)
        - [selon le cas] Numéro du menu (numérotation automatique)
        et des boutons
        - ajouter un produit
        - ajouter le menu
        - modifier le menu
        - supprimer le menu

        et surtout un listbox multicolonnes pour visualiser les produits (un produit par ligne) qui composent le menu avec les colonnes :
        Produit, Jour, conditionnement, destination, quantité

        Pas de problème pour les combo boxes.
        Pour le numéro du menu, tu me conseilles le texte box (numérotation manuelle) ou le label (numérotation automatique) ?
        le liste box multicolonnes : il va permettre a)de lire les références de l'onglet Récapitulatif liste de choix ? b)De saisir les composants du menu ? c) Les deux à la fois ?
        Bonnes fin de journée et continuation.
      2. J'ai refait mon formulaire et commencé à écrire le code. Pour nature du menu et choix du produit, cela fonctionné. Par contre, Référence du produit, il y a une erreur que je ne comprends pas.
        Pour le listbox, j'ai trouvé comment afficher cinq colonnes mais je ne sais pas comment procéder pour donner un titre à chaque colonne et afficher le contenu de chaque colonne.
        Pour Numéro du menu, supprime celui qui te semble le moins utile.
        https://www.cjoint.com/c/GDdrgTNMEOD
      3. Bonsoir ätrice,
        Le formulaire frmRéférencesListeDeChoix fonctionne correctement et toutes les saisies qui y ont été faites sont répertoriées dans la feuille Récapitulatif liste de choix.
        Initialement, dans le formulaire frmSaisieDesMenus, j'avais prévu Nature du menu, Date du menu, Codes légumes, Légumes, Jours légumes, Conditionnement légumes, Destination légumes, Quantité légumes, code légume deux, Légume deux, jour légume deux, Conditionnement légume deux, Destination légume deux, Quantité légume deux, Codes viandes, Viandes, Jours viandes, Conditionnement viandes, Quantité viandes, Codes desserts, Desserts, Jours desserts, Conditionnement desserts, Destination desserts, Quantité desserts, codes observations, Observations, Période concernée, Numéro du menu. Chacune de ces rubriques étant soit des combo boxes, soit des zones de texte.
        Tu m'as conseillé de faire un formulaire tel qu'il figure actuellement dans mon fichier. Je suis arrivé à trouver le code qui permette d'afficher le contenu de Nature du menu, Choix du menu mais ma compétence s'arrête là, étant un développeur néophyte et peu expérimenté.
        Mon problème est le suivant : quel est le code qui permettra d'afficher le contenu des combo boxes de la feuille Récapitulatif liste de choix dans le formulaire frmSaisiedesMenus, étant entendu que si je tape LD02 comme référence du produit, il devra automatiquement compléter les quatre autres combo box. Dans ce second formulaire, je ne devrai intervenir que pour taper Nature du menu, Choix du produit (éventuellement), Référence du produit, Quantité du produit, observations (il a prévu un code qui permette de trouver l'observation d'après la date du menu), Numéro du menu (deux possibilités pour lui : a)Sortie automatique du numéro qui sera incrémenté de 1 en 1, b) Sortie manuelle (je le taperai moi-même)),et enfin période concernée.Je commencerai par saisir tout ce qui concerne les menus midi retraite qui vont du lundi midi au vendredi midi, ensuite les menus journaliers qui iront du lundi soir au vendredi soir ainsi que le samedi et le dimanche midis et soirs et, enfin, les menus viandes weekend qui concernent les samedis et dimanches midi : donc les dates des menus midi retraite serviront pour les menus journaliers lesquels, à leur tour, seront utiles pour les menus viandes weekend.
        D'autre part, tant pour les formulaires que pour les modules, une explication détillée et claire de chacune des instructions du codes serait très appréciée car je n'ai pas tout compris).
        J'ai apporté des modifications, c'est mieux mais ce n'est pas ce que je veux : le cboRéférenceDuProduit se remplit mais pas avec les codes mais avec le conditionnement. Si possible, il devra se remplir d'après le choix du cboChoixDuProduit, c'est-à-dire les codes commençant par L pour les légumes, par V pour les viandes, D pour les desserts. Je n'arrive pas à trouver l'endroit du code qui permet de se positionner dans le cboRéférencesDuProduit
        https://www.cjoint.com/c/GDevkdhnjmk
      4. Bonjour,

        Tu as fait un amalgame des bases de données, il ne faut jamais dupliquer des données dans 2 bases différentes (tes 2 feuilles excel), : il faut aller chercher les données là où elles se trouvent (par exemple pour les cbo produit de chaque formulaire : une seule base de données = Récapitulatif liste de choix)

        Tu devrais vérifier cette base, il me semble que les données ne sont pas toutes correctes.
        Ton formulaire liste de choix comporte encore des erreurs de fonctionnement : dans le cbo produit, lorsqu'on choisit Périodicité, il se produit une erreur.
      5. @Patrice33740Bonsoir Patrice,

        En effet, hier, je me suis aperçu que des erreurs existaient dans ma base de données, je ne sais pas ce qui s'est passé. Dans les jours et le conditionnement, ça ne correspond plus. Mais ce qui me tient à cœur, c'est la partie suivante.
        Je suis bien d'accord avec toi, c'est bien ce que je cherche à faire : dans le second formulaire, aller chercher les renseignements souhaités dans récapitulatif liste de choix. Mais comment procéder ? C'est la question. Quitte à recommencer tout pour que la lecture d'un formulaire à l'autre se fasse correctement, même si je dois transformer les combo boxes en je ne sais quoi.
        dans le formulaire Saisie des menus : le combo box Référence produit devra me sortir la liste des références correspondant à la nature du produit : toutes les références commençant pat D si la nature du produit est desserts puis, à partir de cette référence, la désignation le jour, le conditionnement et la destination, à charge pour moi de remplir les autres combo boxes et zones de texte puis de cliquer sur le bouton de commande Ajouter le menu, et toutes ces informations devront aller soit dans la base déjà existante (récapitulatif liste de choix) ou dans une nouvelle base (récapitulatif menus). D'après mes lectures, quel objet peut recevoir x colonnes (un combo box, une zone de liste simple, une zone de liste déroulante, une liste box), quitte à refaire les saisies pour remplir la feuille récapitulatif liste de choix, cela ne me dérangerait pas à la condition que cela facilite la saisie dans le deuxième formulaire. Je suis prêt à tout mais à condition que cela fonctionne correctement.
    11. Re,

      « Quand je poste un message sur ccm et que quelqu'un répond, je reçois un mail de ccm me disant que j'ai une réponse à la question posée. » : c'est ton choix. (dans les paramètres de ton compte)

      « Je n'ai aucune idée de la façon dont tu es averti que tu as un message venant de moi.»
      Pour ma part j'ai choisi de ne pas recevoir de mail de ccm, donc je ne suis pas averti quand quelqu'un poste sur un des 5500 messages suivis.

      « Comment je peux voir si tu as répondu ou pas ? »
      il suffit de regarder le forum : dans la liste des discussions suivies, celles qui ont reçu une réponse apparaissent en gras.

      Quand au fonctionnement de l'intellisense, vérifie les options de l'éditeur VBA (outils / options) :



      et ici, quelques raisons du dysfonctionnement :
      https://software-solutions-online.com/vba-intellisense-not-working/

      Cordialement
      Patrice
      1. Bonsoir Patrice,

        Les listes déroulantes apparaissent maintenant.
        Pour le formulaire frmSaisieDesMenus, comment faire pour que les références de la feuille Données apparaisse dans chacun des cbo du formulaire frmSaisieDesmenus ? J'aiessayé quelque chose mais j'ai le message d'erreur la méthode "Range" de l'objet '_Worksheet' a échoué malgré que j'ai signalé qu'il fallait aller dans la feuille récapitulatif liste de choix.
        Bonnes soirée, nuit et continuation.
      2. Bonjour Patrice,

        Comme nous sommes dimanche, j'ai travaillé sur ton fichier. Comme je n'ai pas encore reçu de réponse de ta part à mon post 135, j'ai essayé de comprend le comment et le pourquoi des instructions. Ce qui m'a permis d'écrire le code afin que dans le formulaire frmSaisieDesMenus, La liste des menus (journaliers, midi retraite, viandes weekend) d'une part, la liste du contenu des différents cbo d'autre part apparaissent. Seules des instruction individuelles pour chaque cbo a été possible : j'ai essayé plusieurs instructions pour n'avoir qu'une seule initialisation des cbo mais cela n'a pas marché.
        Pour éviter une erreur, quelle qu'elle soit, le cbo DateDuMenu (je l'ai mis en cbo car pour les menus retraite, la date ira d'un lundi à un vendredi, pour les menus journaliers elle ira du lundi au dimanche, donc les dates des menus midi retraite pourront servir de nouveau, comme pour les menus viandes weekend qui concerneront eux les samedis et les dimanches) devra-t-il répondre à certains critères et, si oui, lesquels ? Maintenant, je vais attaquer la suite du code d'après ton travail. Je n'ai pas tout tapé, j'ai fait ds copier-coller puis des sélectionner tout ou des sélections partielles et utiliser "remplacer" puis j'ai modifié les commentaires en conséquence, j'espère que, dans les commentaires, je n'ai rien oublié. Pour ce qui est du numéro du menu, deux solutions sont possibles : une suite ininterrompue de 1 à quelque 730, ou une suite ininterrompue de 1 à quelque 265 pour les menus midi retraite, une suite ininterrompue de 1 à 365 (366) pour les menus journaliers, ou une suite innterrompue de 1 à 104 (105) pour les menus viandes weekend. À ton avis, quelle serait la meilleure solution ? D'autre part, à mon avis, d'après ce que je comprends des instructions, les zone de texte (quantités) ne sont pas à initialiser puisqu'une liste déroulante ne me serait pas utile. Quant à Observations, soit qu'elle soit initialisée, soit j'inclus le code que tu mconcernant la macro que tu as écrite pour observations.'as envoyé qui risque de ne pas fonctionner car il ne peut servir que dans une table. Je ne retrouve pas ton post
        https://www.cjoint.com/c/GDcpzd0dNND
        Bonnes fin de journée et continuation.
      3. Bonsoir Patrice,

        Pour tout ce qui suit, je pose mes questions par rapport au formulaire frmRéférencesListeDeChoix.
        a) Le formulaire est sous mes yeux. Tout d'abord, je choisis le produit (Légumes ou viandes ou desserts);
        b) Je remplis les cinq combo boxes;
        c) Je clique sur le bouton de commande Ajouter cette référence;
        d) L'instruction "avec feuille Récapitulatif liste de choix", il va transférer les données saisies dans les colonnes adéquates;
        e) Puis il va réinitialiser les combo boxes (appel réinitialiser les combo boxes du produit);
        f) Dans cet appel, de nouveaux appels individuels sont faits vers chacun des combo boxes afin de les mettre à jour;
        Je choisis de nouveau un produit; je tape la lettre (L,V ou D) et là le premier code, par exemple LD02 tel qu'il figure dans l'onglet Récapitulatif liste choix apparaît : dans toutes les instructions du code, où se trouve l'instruction qui permet cette apparition ?

        Pour ce qui est du formulaire frmSaisieDesMenus, le choix initial n'étant plus le produit mais le menu (journalier, midi retraite ou viandes weekend), penses-tu qu'il serait possible de créer un formulaire avec seulement neuf combo boxes (Nature du menu, Numéro du menu, Date du menu, Références, Désignation, Jours, Conditionnement et Destination, Période concernée) et trois zones de texte (Quantité légume, Quantité viande et Quantité Dessert)?

        Je suis contraint de te poser ces questions faute de réponse à mon post 135. J'ai compris pas mal de choses mais pas tout. Savoir tout me permettrait certainement de ne pas te déranger continuellement.
    • 1
    • 2
    • 3