RécupérationCréditsBudgétaires, RécupérationInfosCréditsBudgétaires, Indice

Bonjour à toutes et à tous,

Dans les fichier, feuille code UF02CréditsBudgétaires, actuellement, il y a trois procédures : RécupérationCréditsBudgétairesBP, RécupérationInfosCréditsBudgétairesBP, IndiceCréditsBudgétairesBP. La logique est maintenant de créer trois nouvelles procédures identiques dans lesquelles BP sera remplacé par DM1, puis encore trois autres pour DM2 et encore trois autres pour BM. Ma question est de savoir si cela serait possible et mieux de créer trois procédures sans mentionner BP, DM1, DM2, BM mais en ayant recours à des sélect case cbCatégorie (et éventuellement cbNatureArticle) dans lesquelles il y aurait des cases pour chacun des item du tableau structuré TabCatégorie de la feuille Liste de choix (autant de cases ou moins si il y a une solution le permettant, quitte à modifier ce tableau structuré).

Ce principe de select case pourrait être utilisé également pour d'autres procédures (par exemple la validation, la suppression, éventuellement le tri entre autres) que je vous remercie de me dire lesquelles.

D'autre part, ne serait-il pas mieux d'utiliser un seul cadre en ayant la possibilité de masquer certains Intitulés, certaines Zones de liste modifiable et certaines Zones de texte ? Su oui, je suis prêt à tout recommencer avec l'envie, si nécessaire, de faire appel au forum en cas de problème.

D'avance merci pour votre réponse.

Le nouveau formulaire UF02CréditsBudgétaires (ne pas exécuter, la feuille code n'a pas été mise à jour). Qu'en pensez-vous ? Sur 20, vous me mettriez quelle note 'à motiver éventuellementà.

Bonjour,

Ma question est de savoir si cela serait possible et mieux de créer trois procédures sans mentionner BP, DM1, DM2, BM mais en ayant recours à des sélect case cbCatégorie (et éventuellement cbNatureArticle) dans lesquelles il y aurait des cases pour chacun des item du tableau structuré TabCatégorie de la feuille Liste de choix (autant de cases ou moins si il y a une solution le permettant, quitte à modifier ce tableau structuré).

Bien sûr, passer par un select case réduirait la longueur du code, mais vu l'étendue du nombre d'éléments à modifier, ça risque d'être très compliqué, alors qu'en recopiant 3 fois la même chose en ne changeant que quelques termes, c'est beaucoup plus simple ç réaliser et aussi plus simple pour intervenir dans le code si des modifications sont à apporter.

Je vous propose ceci, attention, je ne fais que ce que vous avez demandé , rien de plus, puisque je ne connais très bien le fonctionnement complet de l'appli.

Mais depuis, vous devriez être en mesure de pouvoir régler quelques petite problèmes de par vous-même.

Donc, regardez dans le module "UF02CréditsBudgétaires" pour voir les modifs apportées.

Cdlt

Bonjour ARTURO83,

J'ai regardé dans le forum pour voir où en était mon dernier fil et je me suis aperçu que vous aviez répondu alors que je n'ai pas reçu de message de la présence de votre réponse.

J'ai regardé les modifications apportées. Doit-on passer par un select case sur Catégorie et comment faire pour créer les instruction concernant par exemple le BM ?

J'ai regardé les modifications apportées. Doit-on passer par un select case sur Catégorie et comment faire pour créer les instruction concernant par exemple le BM ?

Dans Catégorie, sélectionnez "Budgets mensuels" ou "Budgets DM1 ou DM2", après il vous faut créer les tableaux dans les feuilles " BD Budgets DM1" "BD Budgets DM2" BD Budgets mensuels" identiques à "BD budgets primitifs".

Pour le tableau du formulaire, s'il faut masquer certaines parties, vous devriez pouvoir le faire en vous inspirant de qui existe, notamment dans la Sub cbCatégorie_Change, il suffit de mettre à false ou true les éléments qu'on masquer ou afficher.

J'ai regardé les modifications apportées. Doit-on passer par un select case sur Catégorie et comment faire pour créer les instruction concernant par exemple le BM ?

Dans Catégorie, sélectionnez "Budgets mensuels" ou "Budgets DM1 ou DM2", après il vous faut créer les tableaux dans les feuilles " BD Budgets DM1" "BD Budgets DM2" BD Budgets mensuels" identiques à "BD budgets primitifs".

Pour le tableau du formulaire, s'il faut masquer certaines parties, vous devriez pouvoir le faire en vous inspirant de qui existe, notamment dans la Sub cbCatégorie_Change, il suffit de mettre à false ou true les éléments qu'on masquer ou afficher.

Désolé, je n'ai pas compris "après il vous faut créer les tableaux dans les feuilles " BD Budgets DM1" "BD Budgets DM2" BD Budgets mensuels" identiques à "BD budgets primitifs". Le tableau structuré TabBDCréditBudgétaires existe déjà et il permet de remplir le tableau structuré TabBDBudgetPrimitifDépensesAlimentaires. Pour DM1, DM2, BM, aucun tableau n'existe, dont ils seront à créer. C'est ce que vous dites ?

Pour select case, je vois les choses ainsi (exemple pour BP) : le select case et la case ne sont peut-être pas à l'endroit voulu, merci de m'indiquer alors leur emplacement correct avec une instruction supplémentaire qui s'avérerait nécessaire (où ?)

cbArticle_Change : supprimer les 3 derniers call, dans le premier call(BP) supprimer BP;

Select case Catégorie.value

Case Budgets Primitifs

Sub RécupérationCréditsBudgétairesBP(ByVal I As Long)'Ici supprimer le BP; mettre ensuite le select case et la case ou les mettre après le with.
With Range("TabBDCréditsBudgétaires").ListObject
If I > 0 Then
'Si l'article existe : on demande confirmation de la modification.
If MsgBox("L'article " & cbArticle.Value & " " & "existe déjà dans la feuille BD budgets primitifs, tableau structuré TabBDCréditsBudgétaires." & vbCrLf & vbCrLf & _
"Voulez-vous le modifier ou le supprimer ?", vbExclamation + vbYesNo) = vbYes Then
'Modification acceptée : on récupère les infos article non encore renseignées.
'DataBodyRange :Cette propriété renvoie un objet Range qui représente la plage de valeurs, à l'exception de la ligne d'en-tête dans une table. Type de données en
'lecture seule. cbTYpeValue : nom de l'objet, de l'outil dans le formulaire; .ListColumns : Cette propriété renvoie une collection ListColumns qui représente toutes les
'colonnes d'un objet ListObject. Type de données en lecture seule. Le contenu de la parenthèse du .ListColumns représente le nom de la colonne tel qu'il figure dans
'le tableau structuré mentionné sur la ligne With.
cbPériodeBP.Value = .ListColumns("Période").DataBodyRange(I)
tbCodePériodeBP.Value = .ListColumns("Code période").DataBodyRange(I)
cbConditionnementBP.Value = .ListColumns("Conditionnement").DataBodyRange(I)
tbCodeConditionnementBP.Value = .ListColumns("Code conditionnement").DataBodyRange(I)
tbPrixUnitaire.Value = .ListColumns("Prix unitaire").DataBodyRange
tbQuantité.Value = .ListColumns("Quantité").DataBodyRange
tbTotalBudgetPrimitif.Value = .ListColumns("Total BP").DataBodyRange
tbDateCréationBP.Value = .ListColumns("Date création").DataBodyRange(I)
tbNuméroCréationBP.Value = .ListColumns("Numéro création").DataBodyRange(I)
Else
'Modification refusée : on efface le nom article.
cbArticle.Value = Empty
End If
End If
End With
'Recherche existence crédits budgétaires.

I = IndiceCréditsBudgétairesBP(tbCodeArticle.Value) '*********************
'Si I supérieur à Zéro alors
If I > 0 Then
'Crédit budgétaire existant : Affichage d'un message informant de l'existence de ce crédit.
MsgBox "L'article " & cbArticle.Value & " existe déjà dans la feuille BD budgets primitifs, tableau structuré TabBDCrédits budgétaires." & vbCrLf & vbCrLf & _
"Vous pouvez le modifier oule supprimer.", vbInformation
Call RécupérationInfosCréditsBudgétairesBP(I)
J = I
End If

'Renvoie l'indice de l'article dans le tableau TabBDCréditsBudgétaires pour le code article donné si l'article existe. Renvoie zéro si l'article n'existe pas.
IndiceCréditsBudgétairesBP = 0
'On Error Resume Next : Lorsqu'une erreur d'exécution survient, le contrôle est transmis à l'instruction qui suit immédiatement celle où l'erreur s'est produite, et l'exécution
'continue. Il est recommandé d'utiliser cette formulation plutôt que l'instruction On Error GoTo pour accéder à des objets.
On Error Resume Next
'WorksheetFunction.Match : Renvoie la position relative d'un élément dans une matrice (matrice : permet de créer des formules uniques permettant d’obtenir plusieurs résul-
'tats et qui agissent sur un groupe d’arguments répartis dans des lignes et des colonnes. Une plage matricielle partage une même formule tandis qu’une constante matricielle
'est un groupe de constantes qui sert d’argument.), qui correspond à une valeur spécifiée dans un ordre spécifié. Utilisez la fonction MATCH au lieu de l'une des fonctions
'LOOKUP lorsque vous avez besoin de la position d'un élément dans une plage au lieu de l'élément proprement dit.
IndiceCréditsBudgétairesBP = WorksheetFunction.Match(tbCodeArticle, Range("TabBDCréditsBudgétaires[code article]"), 0) '*********************
'On Error GoTo 0 : Invalide dans la procédure en cours tout gestionnaire d'erreurs validé.
On Error GoTo 0

With [TabBDCréditsBudgétaires].ListObject
'Va remplir les Zones de liste modifiable (cb) et les Zones de texte (tb) en allant chercher les informations dans la feuille BD menus, tableau structuré BDMenus.
'DataBodyRange : cette propriété renvoie un objet Range qui représente la plage de valeurs, à l'exception de la ligne d'en-tête, dans un tableau structuré. Type de données
'en lecture seule.
cbCatégorie.Value = .ListColumns("Catégorie").DataBodyRange(Indice)
tbCodeCatégorie.Value = .ListColumns("Code catégorie").DataBodyRange(Indice)
End With

Là, mettre le deuxième case pour DM1 puis à la fin le troisème case DM2 et ainsi de suite.

Il y aura peut-être lieu de supprimer certains With et certains End With

Sur le même principe, seront créées les autres instructions concernant les autres items nécessaires.

Dans ce fichier, j'ai supprimé tous les cadres, créé de nouveaux lb et tb, modifié la feuille code, corriger quelques erreurs (dont celle qui appelait une procédure pour effacerTabBDBudgetprimitifDépensesAlimentaires, je n'avais pas vu que vous me l'aviez proposée et là j'ai eu le message comme quoi les données allaient être effacées). Tout semble fonctionner correctement. Par contre, Budget décision modificative numéro une dépenses alimentaires n'est pas accessible quand on choisit article. Maintenant je vais travailler sur tout ce qui précède (avec les cadres).

Bonjour,

Là, vous m'avez complètement perdu. Faites vous-même les modifications que vous souhaitez et on verra plus tard.

Cdlt

Bonjour Arturo83,

Ok.

Dans ce fichier, j'ai supprimé tous les cadres, créé de nouveaux lb et tb, modifié la feuille code, corriger quelques erreurs (dont celle qui appelait une procédure pour effacerTabBDBudgetprimitifDépensesAlimentaires, je n'avais pas vu que vous me l'aviez proposée et là j'ai eu le message comme quoi les données allaient être effacées). Tout semble fonctionner correctement. Par contre, Budget décision modificative numéro une dépenses alimentaires n'est pas accessible quand on choisit article. Maintenant je vais travailler sur tout ce qui précède (avec les cadres).

4budgets-forum-excel-pratique-v2.zip (241.03 Ko)

Par contre, Budget décision modificative numéro une dépenses alimentaires n'est pas accessible quand on choisit article.

Je ne suis pas sûr de comprendre, la vidéo ci-dessous montre-t-elle bien ce que vous souhaitez faire? sinon expliquez:

budgets

Re,

Feuille accueil : clic sur le bouton de commande Crédits budgétaires

le formule UG02CréditsBudgétaires se charge : Catégorie : Dans la liste déroulante, clic sur Budget décision modificative numéro une dépenses alimentaires; Nature article : dans la liste déroulante, cliquer sur Dépenses alimentaires; Article : dans la liste déroulante, faire un clic sur Agneau; Le message cet article existe déjà, c'est bien, cliquer sur oui. À partir de là, dans le cadre Saisies manuelles création crédits budgétaires, je souhaiterais :

1) que lbPrixUnitaire, tbPrixUnitaire, lbuantité, tbQuantité n'apparaissent pas;

2) que seuls lbPlusDM1, tbPlusDM1 soient visibles;

Dans le cadre Saisies prédéfinies création crédits budgétaires :

a) Que le tbBudgetPrimitif se remplisse à partir du TabCréditBudgétaires, colonne Total BP (je l'ai fait pour qu'il en soit ainsi);

b)Après avoir rempli les tbPlusDM1 et tbMoinsDM1, que les lbTotalBudgetPrimitif, tbTotalBudgetPrimitif, lbTotalDécisionModificativeNuméroDeux, tbTotalDécisionModificativeNuméroDeux, lbTotalBudgetMensuel, tbTotalBudgetMensuel soient invisibles; que les lbTotalDécisionModificativeNuméroUne et tbTotalDécisionModificativeNuméroUne soient actifs et visibles et que le dernier se remplisse comme prévu dans la feuille code.

les cb, tb remplis, valider et transfert des informations dans la feuille BD budgets DM1, le tableau structuré adéquat (il n'est pas encore créé).

Ceci fait, je m'appuierai sur ce principe pour ce qui concerne DM2 et BM.

Merci de voir les colonnes Numéro création pour les deux tableaux structurés de ma feuille BD Budgets primitifs : dans le premier tableau structuré, le tri semble se faire correctement, mais pas dans le second tableau structuré.

Je n'ai pas testé encore, j'ai modifié la fin de cmdvalidation_Click et créé une procédure RenuméroterBudgetPrimitifDépensesAlimentaires.

Bonjour,

Un premier jet:

Cdlt

PS: Beaucoup de vos dernières demandes sont restées ouvertes, il serait préférable que vous les passiez en "Résolus" (même si ce n'est pas vraiment le cas) au du moins fermez-les et n'en conservez qu'une seule. Ceci pour éviter les confusions car, elles font toutes référence au même fichier et on ne sait plus trop où nous en sommes.

Bonjour ARTURO83,

Merci pour le fichier joint. J'ai imprimé la feuille accueil et la feuille code du formulaire UF02CréditsBudgétaires. Je vais modifier mon propre fichier en conséquence dans la journée.

J'ai mis certaines de mes demandes en résolu. Vous me dites de les mettre en résolu ou du moins de les fermer. Comment fait-on pour les fermer ? Un fil entièrement en résolu, peut-on le supprimer de la liste ? Si oui, comment procéder ?

Bonjour,

Comment fait-on pour les fermer ? Un fil entièrement en résolu, peut-on le supprimer de la liste ?Si oui, comment procéder ?

Il ne faut pas les supprimer puisqu'ils peuvent servir. Pour les fermer purement et simplement, je ne sais pas, c'était juste pour signifier que l'on ne soit pas tenter(volontairement ou pas) d'y revenir dessus, d'où ma proposition de les passer en "résolu", ainsi on ne prendra en compte que la dernière demande et les fichiers joints qui vont avec.

ok. Donc ici, tout est conforme à vos désirs ?

J'ai compris le fonctionnement de cbCatégorie_Change. J'ai effectué quelques modifications afin que cela se présente comme je veux quand Budget décision modificative numéro une dépenses alimentaires est sélectionné. Le résultat est correct. Par contre, je dois créer une nouvelle procédure pour le tbTotalDécisionModificativeNuméroUne_Change. Chose faite mais cela ne fonctionne pas (peut-être cela vient-il du fait que la feuille BD budgets DM1 est vierge ?) :

Private Sub tbTotalDécisionModificativeNuméroUne_Change()
tbTotalDécisionModificativeNuméroUne.Value = Format(CDbl(tbTotalBudgetPrimitif.Value) + Format(CDbl(tbPlusDM1.Value) - Format(CDbl(tbMoinsDM1.Value))))
End Sub

J'ai essayé, sans résultat, en supprimant Value.

Quand tout cela sera rempli avec le résultat souhaité, il faudra modifier le code de cmdValidation_Click avec un select case afin que tout ce qui concerne DM1 aille dans la feuille BD budgets DM1 avec deux tableaux structurés créés sur le modèle de la feuille BD budgets primitifs. Des instructions Numéro création seront à créer pour ce qui concerne DM1 sur le même principe que pour budget primitif.

Je vous prie de m'excuser d'être aussi bavard mais c'est pour vous aider à comprendre ce que je veux.

Coucou, me revoilou,

Comme je ne connais rien à la finance, j'ai plusieurs questions qui peuvent influer sur la conception de votre application (pour certaines, je crois avoir compris) :

1) Peut-il y avoir plusieurs budgets primitifs (BP) pour un même article (ex. Agneau DA001)

2) Peut-on avoir un budget primitif dépense alimentaire pour un article autre que alimentaire (ex. Fleurs DH04)

3) Peut-il y avoir un budget décision modificative 1 (DM1) pour un article n'ayant pas de budget primitif (BP), (resp. DM2)

4) Peut-il y avoir plusieurs budgets décision modificative 1 (DM1) pour un même article (ex. Agneau DA001), (resp.DM2)

5) Peut-il y avoir un budget décision modificative 2 (DM2) pour un article n'ayant pas de budget décision modificative 1 (DM1)

6) Peut-on modifier/supprimer un budget primitif (DP) si l'article concerné a fait l'objet d'un budget DM1 ou DM2

7) Comment est calculé le total mensuel, par rapport aux budgets BP, DM1 et DM2

8) Quand ce total mensuel est-il calculé

9) Peut-il y avoir plusieurs budgets mensuels (BM) pour un même article (ex. Pain DA073) par mois (ex janvier)

10) Peut-il y avoir des budgets mensuels (BM) pour un même article (ex. Pain DA073) pour des mois différents (ex. janvier et février, ...)

11) Peut-on modifier les budgets BP, DM1 ou DM2 si l'article concerné a fait l'objet d'un budget mensuel (BM)

12) Pourquoi ne pas faire un exemple simple et cohérent de deux trois lignes remplies à la main pour les différentes tables BP, DM1, DM2, BM afin de mieux cerner votre besoin

Merci de vos réponses

Bonjour BeGood,

1)non

2)non

3oui

4)non

5)oui

6)non

7) total mensuel : indépendant de bp, dm1, dm2; le calcul de total mensuel sera calculé de la même manière que total bp

8) au moment de la création du budget mensuel : quand tous les cb et tb auront été remplis, juste avant la validation

9)non

10)non

11)non

12)Je vais essayer de satisfaire votre demande.

Re,

Je vois que je ne comprends pas grand chose à votre sujet, rappelez-nous en quelques mots le principe des DM1, DM2 et BM

1) ok

2) ok

3) DM1 sans BP : pourtant le total DM1 est calculé à partir de Total BP, plus et moins DM1 !

4) ok

5) ok

6) ok

7) Calcul total BM : indépendant de BP, DM1, DM2, cela veut dire que vous saisissez à nouveau un prix et une quantité ?

8) idem 7

9) ok

10) Pas de BM même article sur des mois différents : je ne comprend pas

11) ok

On attend votre exemple avec impatience

bm : dépenses prévues pour un mois donné : certains articles pourront avoir un crédit à zéro (pas de dépenses prévues pour ce mois pour cet article). Il sera utilisé de la même manière que BP, à cela près que les quantités seront moindres. Un article pourra avoir un crédit à zéro mais, pour des raisons quelconques, il y aura quand même une dépense (ou une recette).

dm1 : crédits budget primitif pour lequel soit on l'augmente (plus dm1) soit on le réduit (moins dm1)

dm2 : crédits DM1 pour lequel soit on l'augmente (plus dm2) soit on le réduit (moins dm2)

re Arturo83,

Désolé, mais sans vouloir vous offenser, vous offusquer, vous déplaire, pour DM1 ce n'est pas exactement ce que je souhaite. Si vous le souhaitez, je vais créer un fil DM1 : visibilité et inactivité dans lequel j'essaierai de dire le plus clairement possible ce que souhaite comme présentation. J'ose espérer que vous n'êtes pas vexé par ce que je vous écris.

Dans les procédures RécupérationInfosCréditsBudgétaires, RécupérationCréditBudgétaires et Function IndiceCréditsBudgétaires, désolé, mais je n'ai vu aucune modification par rapport au fichier joint dans mon message d'hier de 11 heures 19.

Re,

Désolé mais je ne comprends pas vraiment ce que vous voulez faire.

DM1 et DM2 vous dites qu"il est calculé à partir du BP, mais à la question 3) précédente vous avez indiqué que l'on peut avoir un DM1 ou DFM2 sans BP !

Vous n'avez pas répondu à mes remarques sur les autres points 7) et 10)

ReBeGood,

Dans le message de 14h48, j'ai répondu à vos questions.

Rechercher des sujets similaires à "recuperationcreditsbudgetaires recuperationinfoscreditsbudgetaires indice"