XL 2016 Gestion de dépenses et suivi budgetaire

Monhtc

XLDnaute Occasionnel
Bonjour le forum. J'essaie de monter un programme via VBA pour la gestion des dépense d'un budget qui est subdivisé en ligne budgétaire. Avec pour chaque paiement:

  • La dotation budgétaire initiale
  • le montant des dépenses antérieur sur la ligne budgétaire concerné
  • Le cumul des dépenses. C'est à dire le montant des dépenses antérieures ajouté au montant de la dépense actuel
  • Le solde qu'il reste sur la ligne concernée
Merci infiniment.
 
Solution
Bonsoir ou Bonjour @Monhtc , le Forum

Bon je pense que tu veux encore une fois de plus le beurre et l'argent du beurre et tout ceci aved des explications au compte goutte ...

Je pense qu'entre le mode Correction, qui doit reprendre les Soldes Cummulés, et ton mode Impression Historique à un instant "T", on doit complètement scinder les deux actions, elle n'ont rien à voir...

Tu trouveras un "ToggleButton" maintenant dans cette v07 qui permet de scinder ces actions complètement différentes.

J'espère que cette fois-ci on est bon, car c'est bourré de Verrues qui nourrissent plein de Crabes là dedans, à force ça va te pêter à la figure et te pincer le nez !

Bon Dimanche
@+Thierry

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonsoir @Monhtc , le Forum

Oui comme je t'ai expliqué en aparté :
_Thierry à dit:
.....Si je peux aider quand tu as des problèmes bien précis, postes toujours un fichier exemple sur le Forum sans données confidentielles et bien représentatif de ce que tu n'arrives pas à faire (exactement comme tu as fait ce soir, c'était parfait)
Et si ce n'est moi qui te répond, il y a pas mal de "pointures" sur XLD aussi......

Mais là par contre ce n'est pas comme ton autre Post afficher ou masquer des textbox et label selon la valeur d'un combobox , là tu n'expliques rien en détail, (d'où viennent les infos, si tu veux des solutions par formules, par VBA... etc....) et pas de fichier exemple de ce que tu cherches à faire...

En l'état, ça m'étonnerait que tu aies une réponse...

Bonne nuit
@+Thierry
 

Monhtc

XLDnaute Occasionnel
Re Bonsoir @Monhtc , le Forum

Oui comme je t'ai expliqué en aparté :


Mais là par contre ce n'est pas comme ton autre Post afficher ou masquer des textbox et label selon la valeur d'un combobox , là tu n'expliques rien en détail, (d'où viennent les infos, si tu veux des solutions par formules, par VBA... etc....) et pas de fichier exemple de ce que tu cherches à faire...

En l'état, ça m'étonnerait que tu aies une réponse...

Bonne nuit
@+Thierry
vous trouverez ci joint mon projet sur lequel j'ai déjà avancé mais qui regorge bon nombre de beug
 

Pièces jointes

  • GESTION DES PAIEMENTS VF.xlsm
    64.5 KB · Affichages: 48

_Thierry

XLDnaute Barbatruc
Repose en paix
Re,

Avant de me coucher, j'ai entre-ouvert ton fichier, en clair c'est quoi le problème au juste car une partie fonctionne apparemment :

1593903759033.png


Si tu peux être plus précis ?

Bonne nuit
@+Thierry
 

Monhtc

XLDnaute Occasionnel
Probleme numero 1 est la numérotation:
Je souhaite avoir un numero de pieces automatique mais distinct. Par exemple:
001/PIECE-EMPRUNT...
002/PIECE-EMPRUNT.. quand il s'agit de l'emprunt
et 001/PIECE-DON
002/PIECE-DON et ainsi de suite selon le financement choisi.

Porbleme 2: J'ai souvent un beug sur le montant anterieur de chaque ligne. En effet il arrive que l'anterieur du code budgetaire 00002 se recopie sur celui du code budgetaire 0006
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @Monhtc , le Forum

J'ai un peu/beaucoup "élagué" ce Userform, pour commencer à y comprendre quelque chose, c'est encore assez brouillon.... Mais je pense que ca fonctionne un peu mieux ....

Pour les calculs entre TextBox et les soldes antérieurs je n'ai rien touché car je n'ai pas vraiment compris la problématique, mais tu ajusteras à ta guise maintenant que ca fonctionne un peu mieux (ou tu t'expliqueras ...)

J'ai fait un tour d'horizon, ca ne me "pête" plus trop à la figure comme quand j'ai ouvert le fichier la première fois ;)

J'ai supprimé un des deux Onglets/Tables des engagements car je n'y comprenais plus rien, et j'ai renommé les Onglets et les Tableaux de manière claire.

Pour les Compteurs, je suis plus simple et radical, tu verras.

Bonne découverte et bon dimanche
@+Thierry
 

Pièces jointes

  • XLD_Monhtc_GESTION_DES_PAIEMENTS_VF_v00.xlsm
    76.2 KB · Affichages: 27

Monhtc

XLDnaute Occasionnel
:D :D :D :D :D Grand merci effectivement ca ne pète plus trop à la figure :D Encore merci.

Je m'explique pour tout ce qui est des calculs.
Dotation (a) : Montant initial
Anterieur (b) : le montant total des engagement précédents (il y'a un beug à ce niveau. Il arrive parfois que le montant anterieur de la ligne 0002 par exemple se confond à celle de la ligne 0020.
cumul (d) : le montant total des engagement précédents + montant actuellement engagé.
Dans le cas d'une regularisation de paiement, le cumul sera le montant total des engagement précédents + montant actuellement engagé - Le montant de l'engagement provisoire de la textbox6​
solde (e) : Montant initial - cumul (d)

Pour ce qui est de la listbox, j'aimerais qu'elle affiche tous les engagement qu'on pourra consulter, faire des recherche et imprimer à nouveau si nécessaire avec le bouton impression
Ici également le bouton valider apres consultation c'est à dire double clique sur un élément de la listbox ne devrait pas ajouter encore une autre entrée mais modifier la ligne sélectionnée

Voici decrit briévement ce que je souhaite obtenir. Cordialement
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re @Monhtc

Oui moi j'ai vu qu'on avait tendance à passer en Date US , je regarderai ça, c'est toujours un problème avec VBA qui est américain...

Pour les histoires comptables, c'est ce que je n'aime pas du tout car ce n'est pas mon truc, je crois comprendre que ca vient de là pour le solde antérieur (c'est le code d'origine) :
VB:
 For n = Sheets("BDD").Range("Q" & Rows.Count).End(xlUp).Row To 2 Step -1
     If Sheets("BDD").Range("E" & n) = Me.ComboBox3 And Format(Sheets("BDD").Range("H" & n), "0000") = Me.ComboBox1 Then
        TextBox2 = Sheets("BDD").Range("M" & n)
        Exit For
     End If
 Next

Il n'dentifierait pas le bon code engagement ? c'est ça ?
Mais je ne vois nulle part où il identifie le Bénéficiare non plus ? Ce n'est pas le solde par bénéficaire qui prime, puis par engagement ???

Idem pour Cumul ... Je ne vois rien qui cherche ... Mis à part des addition des autres textbox avec des if, c'est du chinois !


Pour ceci
Pour ce qui est de la listbox, j'aimerais qu'elle affiche tous les engagement qu'on pourra consulter, faire des recherche et imprimer à nouveau si nécessaire avec le bouton impression
Ici également le bouton valider apres consultation c'est à dire double clique sur un élément de la listbox ne devrait pas ajouter encore une autre entrée mais modifier la ligne sélectionnée

C'est le concept qu'il faut repenser alors ... Le bouton "Valider" devrait alors disparaitre au bénéfice d'un bouton "Modifier"....

Voilà pour les remarques
Bon Dimanche
 

Monhtc

XLDnaute Occasionnel
Il n'dentifierait pas le bon code engagement ? c'est ça ?
Mais je ne vois nulle part où il identifie le Bénéficiare non plus ? Ce n'est pas le solde par bénéficaire qui prime, puis par engagement ???

Idem pour Cumul ... Je ne vois rien qui cherche ... Mis à part des addition des autres textbox avec des if, c'est du chinois !

Il faut dire qu'il n'identifie pas le bon cumul des dépense anterieur sur le meme code budgetaire. Le cumul se faire par code de budget et ne prend pas en compte le bénéficiaire.
Exemple:pour le code 0003 du don.
P1: 5000
P2:10000
Le cumul pour le code 0008 serait donc de 15000 et sur le prochain paiement P3 de 1000 l'on doit avoir:

Dotation (a) : 250 000
Antérieur (b) : 15 000
Montant : 1 000
cumul (d) : 16 0000
solde (e) : 234 000


 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re bonjour,

Bon une v01 tu "t'amuseras" avec... Mais pour l'isntant je ne gère QUE l'OptionButton "Ordre de Payment Définitif"... Si c'est une differente "soupe comptable" par option bouton, tu auras intérêt à bien t'expliquer !!!

Maintenant que ca arrive dans la Feuille BDD, je me pose la question sur la différence"infiné" dans cette Table entre la colonne Antérieur et la colonne Cumul, mais bon là ça à l'air de ne plus se mélanger les pinceaux ... Enfin c'est à toi de tester !

J'ai fait un travail de renommage explicit de toutes ces TextBoxs de Montants car une chatte n'y retrouvait plus ses petits !!!

Tu pourras par conséquent intervenir par toi-même, c'est bien plus compréhensible dans ton "alchime comptable" !!! ;)

Pour la partie future Modification, tu verras si tu click sur la ListBox maintenant ce qui se passe...

Pour les Dates format US je pense avoir solutionné.
Je t'ai ajoujé un peu de couleur aussi sur le Solde quand il est négatif...

Maintenant la balle est dans ton camps !

Bon travail
@+Thierry
 

Pièces jointes

  • XLD_Monhtc_GESTION_DES_PAIEMENTS_VF_v01.xlsm
    93.9 KB · Affichages: 37

Monhtc

XLDnaute Occasionnel
53222.gif vous etes excellent et devin pour lire et même aller au dela de mes pensées. Chapeau @_Thierry je suis satisfait. Les calculs au niveaux des textbox marche comme je le souhaite. pour l'antérieur dans la textboxAnterieur, est ce qu'il serait possible de la remplir automatiquement avec la valeur de la textboxcumul du dernier engagement sur la meme ligne? car l'antérieur est aussi égale au dernier cumul de l'engagement précédent sur le meme code budgétaire.
En exemple pour le code 0016 du don, si:
la pièce 0001/don est:
Dotation (a) : 250 000
Antérieur (b) : 15 000
Montant : 1 000
cumul (d) : 16 0000
solde (e) : 234 000


la pièce 002/don du meme code 0016 sera
Dotation (a) : 250 000
Antérieur (b) : 16 000
Montant : 4 000
cumul (d) : 20 0000
solde (e) : 230 000

Pour l'impression
est ce qu'il est possible d'avoir pour ce modele avec l'insertion en ligne 47 (OP Prov et le montant de la textboxOPProvisoire) quand il s'agit de la régularisation d'un Ordre de Paiement
Capture 2.PNG

si tel n'est pas le cas ( Cest à dire un autre Paiement) on obtiendra le modele standard
Capture 1.PNG

NB: pour la remarque j'ai modifier le code sur la ligne 37 de la feuille impression:
VB:
.Range("D37") = "code budget" & Me.ComboBox1.Value
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour

Euh, pour le moment j'ai eu "ma dose" de ces gymnastiques comptables (c'est ce qui fait le plus "caguer" les développeurs LoL), si tu as créé la base que tu as mise sur ce Forum, après tout l'assainissement que j'ai fait depuis tôt ce matin, je pense que tu devrais être en mesure de modifier maintenant un peu par toi même, non ?

En plus en lisant ton exemple, tu ne prends pas la peine de donner un exemple précis sur ton fichier de test car pour Code 0016, je n'ai pas une Dotation de 250,000 mais seulement de 10,000 pour la rubrique "DON" , donc c'est super pour bien en ajouter à la prise de tête !!! ;)

1593959968427.png


Trop souvent hélas, les nouveaux participants oublient le principal de la raison d'existence d'un Forum de partage de connaissance avec des contributeurs/trices bénévol(e)s, notre but et notre satisfaction, comme ce vieux dicton. le dit, c'est de vous apprendre à pêcher, pas de vous donner du poisson...


Bon travail
@+Thierry
 

Discussions similaires

Réponses
11
Affichages
2 K

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87