Générer table mensuelle
- Messages
- 1'214
- Excel
- 2024 FR
- Inscrit
- 18/07/2014
- Emploi
- Retraité fonction publique territoriale
Bonsoir à toutes, à tous,
J'espère que quelqu'une, quelqu'un va connaître la réponse au probmème posé et pouvoir me répondre.
Dans MENUS 2024 SMP.xlsm, dans le module MGénérerTables, il y a la procédure Sub GénérerMenusMidiRetraite dans laquelle il y a une instruction permettant de générer la table mensuelle à partir de la date du menu.
Dans BUDGETS A83 V2.xlsm, feuille BD Budgets, colonnes Y1:AD50, j'ai créé huit tables TabBudgetPrimitif numérotées de 1 à 8 inclus. Le 1 à 8 inclus peuvent-ils être considérés comme le numéro d'un mois ? Si, c'est comme je le pense, dans le cas présent, Non, alors comment écrire la formule suivante de MENUS 2024 SMP afin de créer la table mensuelle, soit sur catégorie, soit sur numéro article à la place de Month ? Attention, actuellement, la procédure Sub GénérerTabBD() ne tient pas compte des huit tables.
'Si c'est un menu MenuMidiRetraite.
If Range("TabBDMenus[Nom nature création menu]").Item(I) = "Menu midi retraite" Then
'Générer le nom de la table mensuelle concernée TabMMR en fonction de la date du menu.
TableMensuelle = "TabMenusMidiRetraite" & Month(Range("TabBDMenus[Date menu]").Item(I))
Ceci fait, cela me donnera une piste pour DM1 et DM2. Mon but est de limiter les procédures, et à l'intérieur des procédures, de limiter les instructions au strict minimum afin d'obtenir cependant le résultat souhaité.
D'avance merci pour votre aide.
Bonnes fin de soirée, nuit et continuation à toutes et à tous. Prenez bien soin de vous.
- Messages
- 1'214
- Excel
- 2024 FR
- Inscrit
- 18/07/2014
- Emploi
- Retraité fonction publique territoriale
Bonjour BeGood,
Feuille BD budgets : clic sur le bouton de commande Crédits budgétaires.
1. Création d'un crédit budgétaire budget primitif dépenses alimentaires.
Le formulaire UF02CréditBudgétaires apparaît à l'écran : donnons les informations nécessaires :
- cbCatégorie : dans la liste déroulante, cliquer sur budget primitif dépenses alimentaires; le tbCodeCatégorie se remplit automatiquement selon le choix fait dans cbCatégorie.
- cbNatureArticle : dans la liste déroulante, cliquer sur dépenses alimentaires; le tbCodeNatureArticle se remplit automatiquement selon le choix fait dans le cbNatureArticle.
- cbArticle : dans la liste déroulante, cliquer sur n'importe quel article; le tbCodeArticle se remplit automatiquement selon le choix fait dans le cbArticle.
- tbPrixUnitaire : taper n'importe quoi, par exemple 3.00; le programme prévoit la transformation du point en virgule.
- tbQuantité : taper n'importe quoi, par exemple 12.00, le programme prévoit la transformation du point en virgule.
- tbPlusDM1, tbMoinsDM1, tbPlusDM2, tbMoinsDM2 : si ils apparaissent, a) il faudra les mettre en False quand le tbCatégorie comprend les mots Budget primitif; b)Ne pas les remplir;
-- tbPériode, tbCodePériode, tbConditionnement, tbCodeConditionnement : ils se remplissent automatiquement selon le choix fait dans le cbArticle;
- tbTotalBudgetPrimitif : il se remplit automatiquement en multipliant le contenu du tbPrixUnitaire par le contenu du tbQuantité.
- Si tbTotalDM1, tbTotalDM2 apparaissent: a)il faudra les mettre en False quand le tbCatégorie comprend les mots Budget primitif; b) Ne pas les remplir et ils ne doivent pas se remplir automatiquement.
- Toutes ces informations fournies, clic sur le sbouton de commande Validation. 1) Le crédit budgétaire de l'article existe déjà : alors un message devra me le signaler d'une part, et me proposer soit de le modifier, soit de la supprimer. Modification : seuls les tbPrixUnitaire et tbQuantité seront modifiables; le tbTotalBudgetPrimitif se modifiera dans les mêmes conditions signalées précédemment. Dans ce cas précis, la ligne correspondante dans le TabBDCréditsBudgétaires devra être modifiée en conséquences et ne pas faire l'objet d'une nouvelle ligne. Suppression : toutes les données de l'article devront être supprimées dans le tabBDCréditsBudgétaires grâce à un clic sur le bouton de commande Suppression qui ira dans la procédure Private Sub cmdSuppression_Click. 2) Le crédit budgétaire de l'article n'existe pas : alors création de la ligne dans le TabBDCréditsBudgétaires; puis, le cas échéant, il devra faire le tri, renuméroter et créer (ou mettre à jour) le tableau destinataire TabBDBudgetPrimitifDépensesAlimentaires. Concernant les tableaux destinataires, voir le chapitre Module MGénérerTabBudgets.
La création de tous les articles concernant Budget primitif des dépenses ou des recettes se feront selon les mêmes principes énoncés ci-dessus.
Feuille BD budgets : clic sur le bouton de commande Crédits budgétaires.
2. Création d'un crédit budgétaire budget décision modificative numéro une dépenses alimentaires.
Le formulaire UF02CréditBudgétaires apparaît à l'écran : donnons les informations nécessaires :
- cbCatégorie : dans la liste déroulante, cliquer sur budget décision modificative numéro une dépenses alimentaires; le tbCodeCatégorie se remplit automatiquement selon le choix fait dans cbCatégorie.
- cbNatureArticle : dans la liste déroulante, cliquer sur dépenses alimentaires; le tbCodeNatureArticle se remplit automatiquement selon le choix fait dans le cbNatureArticle.
- cbArticle : dans la liste déroulante, cliquer sur n'importe quel article; le tbCodeArticle se remplit automatiquement selon le choix fait dans le cbArticle.
- tbPrixUnitaire, tbQuantité : si ils apparaissent, a) il faudra les mettre en False quand le tbCatégorie comprend les mots Budget décision modificative ; b)Ne pas les remplir;
- tbPlusDM1, tbMoinsDM1 : remplir l'un ou l'autre (si nécessaire, si PlusDM1 rempli, MoinsDM1 sera égal à zéro, Si MoinsDM2 rempli, PlusDM1 sera égal à zéro); ces deux tb ne pourront pas contenir une valeur en même temps, un seul devra être rempli.
- tbPlusDM2, tbMoinsDM2 : si ils apparaissent, a) il faudra les mettre en False quand le tbCatégorie comprend les mots Budget décision modificative numéro une dépenses alimentaires; b)Ne pas les remplir;
-- tbPériode, tbCodePériode, tbConditionnement, tbCodeConditionnement : ils se remplissent automatiquement selon le choix fait dans le cbArticle;
- tbTotalBudgetPrimitif : il devra aller chercher l'information soit dans le tableau source, soit dans le tableau destinataire correspondant.
- Si tbTotalDM2 apparait: a)il faudra le mettre en False quand le tbCatégorie comprend les mots Budget décision modificative numéro une; b) Ne pas les remplir et il ne doit pas se remplir automatiquement.
- Total décision modificative numéro une : une procédure prévoit l'addition du tbTotalBudgetPrimitif et du tbPlusDM1 diminués du tbMoinsDM1.
- Toutes ces informations fournies, clic sur le bouton de commande Validation. 1) Il ne devra pas me signaler que cet article existe déjà (il existe certes, mais en tant que budget primitif et décision modificative numéro une). 2) Le crédit budgétaire de l'article n'existe pas : alors création de la ligne dans le TabBDCréditsBudgétaires; puis, le cas échéant, il devra faire le tri, renuméroter et créer (ou mettre à jour) le tableau destinataire TabBDBudgetDécisionModificativeNuméroUneDépensesAlimentaires. Concernant les tableaux destinataires, voir le chapitre Module MGénérerTabBudgets. De plus, en tant que Budget décision modificative numéro une, les messages d'existence et de modifier ou supprimer devront apparaître.
La création de tous les articles concernant Budget décision modificative numéro une des dépenses ou des recettes se feront selon les mêmes principes énoncés ci-dessus.
Feuille BD budgets : clic sur le bouton de commande Crédits budgétaires.
3. Création d'un crédit budgétaire budget décision modificative numéro deux dépenses alimentaires.
Le formulaire UF02CréditBudgétaires apparaît à l'écran : donnons les informations nécessaires :
- cbCatégorie : dans la liste déroulante, cliquer sur budget décision modificative numéro deux dépenses alimentaires; le tbCodeCatégorie se remplit automatiquement selon le choix fait dans cbCatégorie.
- cbNatureArticle : dans la liste déroulante, cliquer sur dépenses alimentaires; le tbCodeNatureArticle se remplit automatiquement selon le choix fait dans le cbNatureArticle.
- cbArticle : dans la liste déroulante, cliquer sur n'importe quel article; le tbCodeArticle se remplit automatiquement selon le choix fait dans le cbArticle.
- tbPrixUnitaire, tbQuantité : si ils apparaissent, a) il faudra les mettre en False quand le tbCatégorie comprend les mots Budget décision modificative numéro deux ; b)Ne pas les remplir;
- tbPlusDM2, tbMoinsDM2 : remplir l'un ou l'autre (si nécessaire, si PlusDM2 rempli, MoinsDM2 sera égal à zéro, Si MoinsDM2 rempli, PlusDM2 sera égal à zéro); ces deux tb ne pourront pas contenir une valeur en même temps, un seul devra être rempli.
- tbPlusDM1, tbMoinsDM1 : si ils apparaissent, a) il faudra les mettre en False quand le tbCatégorie comprend les mots Budget décision modificative numéro deux dépenses alimentaires; b)Ne pas les remplir;
-- tbPériode, tbCodePériode, tbConditionnement, tbCodeConditionnement : ils se remplissent automatiquement selon le choix fait dans le cbArticle;
- tbTotalBudgetDécisionModificativeNuméroUne : il devra aller chercher l'information soit dans le tableau source, soit dans le tableau destinataire correspondant.
- Si tbTotalDM1 apparait: a)il faudra le mettre en False quand le tbCatégorie comprend les mots Budget décision modificative numéro une; b) Ne pas les remplir et il ne doit pas se remplir automatiquement.
- tbTotalBudgetMensuel : il se remplit automatiquement en multipliant le contenu du tbPrixUnitaire par le contenu du tbQuantité.
- tbMois : dans la liste déroulante, cliquer sur le mois concerné.
- Toutes ces informations fournies, clic sur le bouton de commande Validation. 1) Il ne devra pas me signaler que cet article existe déjà (il existe certes, mais en tant que budget primitif, décision modificative numéro une et décision modificative numéro deux). 2) Le crédit budgétaire de l'article n'existe pas : alors création de la ligne dans le TabBDCréditsBudgétaires; puis, le cas échéant, il devra faire le tri, renuméroter et créer (ou mettre à jour) le tableau destinataire selon le contenu du le TabBDBudgetDécisionModificativeNuméroDeuxDépensesAlimentaires. Concernant les tableaux destinataires, voir le chapitre Module MGénérerTabBudgets. De plus, en tant que Budget décision modificative numéro une, les messages d'existence et de modifier ou supprimer devront apparaître.
La création de tous les articles concernant Budget décision modificative numéro deux des dépenses ou des recettes se feront selon les mêmes principes énoncés ci-dessus.
Feuille BD budgets : clic sur le bouton de commande Crédits budgétaires.
4. Création d'un crédit budgétaire budget mensuel dépenses alimentaires.
Le formulaire UF02CréditBudgétaires apparaît à l'écran : donnons les informations nécessaires :
- cbCatégorie : dans la liste déroulante, cliquer sur budget mensuel dépenses alimentaires; le tbCodeCatégorie se remplit automatiquement selon le choix fait dans cbCatégorie.
- cbNatureArticle : dans la liste déroulante, cliquer sur dépenses alimentaires; le tbCodeNatureArticle se remplit automatiquement selon le choix fait dans le cbNatureArticle.
- cbArticle : dans la liste déroulante, cliquer sur n'importe quel article; le tbCodeArticle se remplit automatiquement selon le choix fait dans le cbArticle.
- tbPrixUnitaire : taper n'importe quoi, par exemple 3.00; le programme prévoit la transformation du point en virgule.
- tbQuantité : taper n'importe quoi, par exemple 12.00, le programme prévoit la transformation du point en virgule.
- tbPlusDM1, tbMoinsDM1 : si ils apparaissent, a) il faudra les mettre en False quand le tbCatégorie comprend les mots Budget mensuel, Ne pas les remplir;
- tbPlusDM2, tbMoinsDM2 : si ils apparaissent, a) il faudra les mettre en False quand le tbCatégorie comprend les mots Budget mensuel; b)Ne pas les remplir;
-- tbPériode, tbCodePériode, tbConditionnement, tbCodeConditionnement : ils se remplissent automatiquement selon le choix fait dans le cbArticle;
- Si tbTotalDM2 apparait: a)il faudra le mettre en False quand le tbCatégorie comprend les mots Budget mensuel; b) Ne pas les remplir et il ne doit pas se remplir automatiquement.
- Total budget mensuel : une procédure prévoit le produit du tbPrixUnitaire multiplé par le tbQuantité.
- Toutes ces informations fournies, clic sur le bouton de commande Validation. 1) Il ne devra pas me signaler que cet article existe déjà (il existe certes, mais en tant que budget primitif, décision modificative numéro une et décision modificative numéro deux). 2) Le crédit budgétaire de l'article n'existe pas : alors création de la ligne dans le TabBDCréditsBudgétaires; puis, le cas échéant, il devra faire le tri, renuméroter et créer (ou mettre à jour) le tableau destinataire TabBDBudgetMensuelDépensesAlimentaires se lon le mois concerné. Concernant les tableaux destinataires, voir le chapitre Module MGénérerTabBudgets. De plus, en tant que Budget décision modificative numéro une, les messages d'existence et de modificer ou supprimer devront apparaître.
La création de tous les articles concernant Budget mensuel des dépenses ou des recettes se feront selon les mêmes principes énoncés ci-dessus.
Quelques remarques : par rapport au budget initial, les feuilles BD budget primitif, BD DM1, BD DM2 BD BM n'existent plus et ont été remplacées par une feuille unique BD Budgets. Dans cette dernière feuille, il existe qu'un seul tableau source (TabBBCréditsBudgétaires) et des tableaux destinataires dont certaines colonnes sont identiques d'un tableau destinataire à l'autre. J'y reviendrai dans le module MGénérerTabBudgets. Compte tenu de l'existence d'un tableau source unique, dans la procédure Private Sub cmdValidation_Click, il n'y a plus lieu de prévoir une différenciation entre les différents items de Catégorie. Si nécessaire, il faudra modifier la procédure en conséquence.
5. Module MGénérerTabBudgets.
Comme signalé plus haut, les tableaux destinataires ont des colonnes communes quelle que soit la catégorie, d'autres qui leur sont propres selon la catégorie. Les colonnes communes sont : Catégorie, Nature article, Article, Date création, Numéro création. Pour catégorie Budget primitif, une colonne Total BP qui se retrouve également dans Budget décision modificative numéro une. Pour décision modificative numéro une, une colonne Total DM1 qui se retrouve également dans budget décision modificative numéro deux. Afin de limiter les procédures de génération, et à l'intérieur de ces procédures, le nombre d'instructions à ne plus en finir, J'ai pensé une instruction pour remplir les tableaux destinataires ayant des colonnes communes puis, un call ou une FinBPDM1 pour remplir les colonnes Total BP et Total DM1; puis un call ou une FinDM1DM2 pour remplir les colonnes Total DM1 et Total DM2. Pour les tableaux Budget mensuel, chaque tableau selon sa nature article est subdivisé en 12 tableaux remplis selon le mois concerné (pour moi, le 1 représentant Janvier 2024, le 2 Février 2024, et ainsi de suite jusqu'à Décembre 2024 inclus). Si nécessaire ou possible, l'emploi de Select Case sur Catégorie avec des cases individuelles ou collectives, de Sélect Case à la fois sur Catégorie et sur Nature article, avec des cases individuelles ou collectives ou l'emploi de With suivi du nom de la feuille (ici BD budgets) suivi éventuellement du nom du tableau destinataire et suivi éventuellement du nom de la colonne ne me déplairait pas.
Avec toutes ces informations, j'espère qu'il vous sera possible de me faire des propositions, des suggestions afin de résoudre les différents problèmes soulevés.
Pour l'instant, le tableau TabBudgetPrimitifDépensesAlimentaires ne se remplit pas correctement.
Bonjour,
Feuille BD budgets : clic sur le bouton de commande Crédits budgétaires.
OU est ce bouton?
Cdlt
- Messages
- 1'214
- Excel
- 2024 FR
- Inscrit
- 18/07/2014
- Emploi
- Retraité fonction publique territoriale
Bonjour Arturo83,
Sur la feuille Accueil. Mille excuses, je m'étais trompé dans le précédent message.
Bonjour,
Ceci fait, cela me donnera une piste pour DM1 et DM2. Mon but est de limiter les procédures, et à l'intérieur des procédures, de limiter les instructions au strict minimum afin d'obtenir cependant le résultat souhaité.Je suppose que cela marchait bien avant, alors pourquoi vouloir toujours tout simplifier, à trop vouloir bien faire, on finit par tout casser.
De plus votre liste de doléances est trop longue, ça n'incite pas à regarder, au contraire, cela fait fuir.
************************************************************************************************************************
Pour ma part, j'y ai jeté un oeil, c'est carrément imbuvable. Seul, celui qui a pondu cela, sait ou il faut mettre les doigts.
Déjà, il faudrait pouvoir comprendre le but a atteindre et à quoi tous ces tableaux peuvent-ils bien servir, parce que bidouiller du code sans trop comprendre, on en arrive à faire n'importe quoi au risque, soit de casser l'existant et qui marchait bien, soit d'ajouter des bouts de code pour des fonctions qui étaient déjà prévues quelque part dans le code existant. Dans tous les cas, ce n'est pas une bonne idée, on doit travailler selon un cahier des charges bien précis, en connaissant les tenants et les aboutissants là, hormis le concepteur et vous-même, vous êtes les seuls à savoir de quoi il retourne, mes précédentes interventions ne s'en sont tenues qu'à des petites corrections bien insignifiantes.
A mon humble avis, si le code fonctionne pour une partie de ce que vous souhaitez et qu'il doit être reproduit pour faire la même chose pour une ou plusieurs autres parties(DM1 et DM2), il est préférable de recopier tout ce code dans un autre module (en changeant certains termes) pour ne le dédier qu'à la partie que vous souhaitez traiter (un module dédié à DM1, un autre module dédié à DM2, etc). Certes, c'est plus lourd, mais tellement plus simple à analyser que de tout vouloir simplifier en minimisant la quantité d'instructions.
Je ne pense pas que je pourrai vous apporter mon soutien encore longtemps, c'est trop chronophage et mes journées sont trop chargées pour y consacrer plus de temps. A la rigueur sur des petits problèmes, pourquoi pas!
Cdlt
- Messages
- 1'214
- Excel
- 2024 FR
- Inscrit
- 18/07/2014
- Emploi
- Retraité fonction publique territoriale
Bonjour Arturo83,
Je suis bien d'accord avec vous, et cela avait été ma première idée, qu'on dit toujours bonne, créer autant de formulaires, de modules que nécessaires. Un contributeur a proposé de réduire le nombre de formulaires et de modules en proposant un programme pour lequel, par la suite, ce contributeur a disparu du site. Un autre a proposé une nouvelle version puis il a refusé de continuer sous prétexte que j'aurai eu des propos malveillants à son égard (je lui ai demandé de m'envoyer le fil dans lequel j'aurai eu ces soit disant propos malveillants, j'attends toujours : je ne le nomme pas, comme il semble fréquenter ce site, il va se reconnaître), ce que je nie farouchement.. Donc, je vais refaire mon programme avec plusieurs formulaires, modules dédiés.
Ceci dit, je vais donc créer autant de formulaire que nécessaires. Pour remplir certains tb concernant les formulaires DM1, DM2, il devra aller chercher les renseignements dans le tableau structuré TabCréditsBudgétairesBP (pour remplir le tbTotalBP du formulaire TabCréditsBudgétairesDM1 et dans le tableau structuré TabCréditsBudgétairesDM1 pour remplir le tbTotalDM1 du formulaire TabCréditsBudgétairesDM2). Dans quelles procédures les instructions nécessaires devront être écrites et sous quelle forme ?