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

Monhtc

XLDnaute Occasionnel
:( :( :( :(
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 !!! ;)

Regarde la pièce jointe 1072315

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
Je ne peux m'en vouloir qu'à moi-meme alors quegrace à vous, je voyais la lumière brillée au bout du tunnel. Je veux bien si vous me le permettez reprendre les calcul avec le monde de 10 000 sur la ligne 0016 du don
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonsoir

Je "jouais" avec mon nouveau "joujou" sans modifier une virgule de lignes de code de la v01 pour faire ceci :

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

J'ai remis à zéro la base BDD et les numéros du sSETUP :
J'ai changé engagement budget comptable du 0016 à 250,000 pour DON ...

Donc Première Entrée sur DON 0016 :
1593972462185.png


Validation de l'entrée ci-dessus....


Seconde Entrée sur DON 0016 :

1593973047300.png


Donc impossible de refaire ton exemple ! Jamais je n'ai les 15,000 antérieur au départ !!!


Reprends vraiment tes calculs avec un vrai exemple qui provient de notre base d'exemple.

Pas des exemples à la noix qui ne correspondent à rien, juste pour se prendre la tête !

Bien à toi
@+Thierry
 

Monhtc

XLDnaute Occasionnel
Dans notre exemple qui suit. On travaillera exclusivement sur le code 0005 du budget "emprunt" dont la dotation est 469 000
Captureex.PNG

0001/piece-emprunt: C'est le premier engagement et un paiement Définitif sur le code
0005,l'antérieur sera donc 0

0002/piece-emprunt:
Le second engagement sur le meme code, l'antérieur sera donc le cumul du précédent egagement donc 9 000

0004/piece-emprunt:
C'est la régularisation du paiement provisoire (0003/piece). l'antérieur sera toujours l'ancien cumul c'est à dire celui du 0003: 66 000. Par contre étant dans le calcul du cumul intervient le montant de l'engagement provisoire 0003 qui est de 12 000. Ici l'engagement provisoire sera régulariser par le 0004/pièce-emprunt. Le cumul devient donc montant engagé + Antérieur - le montant du provisoire concerné
Avec le modèle d'impression suivant:
Capture 2.PNG
 

Pièces jointes

  • Captureex.PNG
    Captureex.PNG
    44.9 KB · Affichages: 12

_Thierry

XLDnaute Barbatruc
Repose en paix
Re !

Bon voilà déjà pour ta "logique comptable" sur la Feuille BDD avec l'exemple 005 EMPRUNT...
C'est quand même plus plus clair avec un exemple qui correspond à quelque chose !!!

Tu regarderas, pour ce qui est de la Feuille d'impression c'est livré en "vrac" sans aucune vérification car j'en ai raz le bol avec la soupe Comptable...

Je te laisse faire tes pointages de cette v02 !!!
Attention à partir de demain je risque de ne pas avoir trop de temps...

Bon travail
@+Thierry
 

Pièces jointes

  • XLD_Monhtc_GESTION_DES_PAIEMENTS_VF_v02.xlsm
    147.7 KB · Affichages: 18

Monhtc

XLDnaute Occasionnel
:D :D :D à l'issue de ce travail je sens que je vous réconcilierai avec la comptabilité:D.
Bref je viens de "pointer" la V2.
L'affichage ne devrait pas changer on garde le meme affichage suivant pour les optionbutton1 (Ordre de paiement Definitif) optionbutton2 (Ordre de paiement provisoire) optionbutton4 (Annulation Ordre de paiment) qui se présente comme suit:
ap.PNG

Seulement la regularisation d'ordre de paiement en optionbutton3 doit se présenter comme suit:
Captureregul.PNG

Pour les calculs on aura l'exemple précédent:
0001/piece-emprunt: C'est le premier engagement et un paiement Définitif sur le code
0005,l'antérieur sera donc 0

0002/piece-emprunt:
Le second engagement sur le meme code, l'antérieur sera donc le cumul du précédent egagement donc 9 000

0004/piece-emprunt:
C'est la régularisation du paiement provisoire (0003/piece). l'antérieur sera toujours l'ancien cumul c'est à dire celui du 0003: 66 000. Par contre étant dans le calcul du cumul intervient le montant de l'engagement provisoire 0003 qui est de 12 000. Ici l'engagement provisoire sera régulariser par le 0004/pièce-emprunt. Le cumul devient donc montant engagé + Antérieur - le montant du provisoire concerné
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Oui bon la présentation on s'en fiche un peu à ce stade là !

Mais c'est bon les calculs au moins ? tu as au moins regardé les résultats de mes tests faits depuis le UserForm sur la feuille BDD, car je te pose une question en commentaires...

Bonne nuit
@+Thierry

EDIT pour moi on est bon, mis à part où je stocke les -12,000 (voir comments) :

1593987769755.png
 
Dernière édition:

Monhtc

XLDnaute Occasionnel
Oui les calcule fonctionnent parfaitement pour ce qui est de l ordre de paiement definitif les soldes sont excat mais impossible de verifier quand il s'agit de la regularisation de paiement etant donnée que je ne vois plus la textboxopprovisoire
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re

Je me demande ce que tu as écrit en code dans le premier exemplaire de ce projet que tu as posté !

Me.TextBoxOPprovisoire.Visible = True

C'est ici que ca se passe :
VB:
Private Sub OptionButton1_Click()
If BoolIni = True Then Exit Sub
Me.TextBoxOPprovisoire.Visible = False
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = False
Me.Label6.Caption = "Cumul (d)= b + c"
End Sub

Private Sub OptionButton2_Click() 'op prov
Me.TextBoxOPprovisoire.Visible = True
Me.TextBoxMontant.Visible = False
Me.Label12.Visible = True
Me.Label6.Caption = "cumul (d) = b - (OP Provisoire) + c"
End Sub

Private Sub OptionButton3_Click()
Me.TextBoxOPprovisoire.Visible = False
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = False
Me.Label6.Caption = "Cumul (d)= b + c"
End Sub

Private Sub OptionButton4_Click()
Me.TextBoxOPprovisoire.Visible = False
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = False
Me.Label6.Caption = "Cumul (d)= b + c"
If Me.TextBoxMontant <> "" Then Me.TextBoxMontant.Value = Me.TextBoxMontant.Value * -1
End Sub

Tu mets true ce que tu veux voir ...

@+Thierry
 

Monhtc

XLDnaute Occasionnel
VB:
Private Sub OptionButton1_Click()
If BoolIni = True Then Exit Sub
Me.TextBoxOPprovisoire.Visible = False
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = False
Me.Label6.Caption = "Cumul (d)= b + c"
End Sub

Private Sub OptionButton2_Click() 'op prov
Me.TextBoxOPprovisoire.Visible = true
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = False
Me.Label6.Caption = "Cumul (d)= b - OP Prov + c"
End Sub

Private Sub OptionButton4_Click() 'regul op
Me.TextBoxOPprovisoire.Visible = False
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = False
Me.Label6.Caption = "Cumul (d)= b + c"
End Sub

Private Sub OptionButton4_Click()
Me.TextBoxOPprovisoire.Visible = False
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = False
Me.Label6.Caption = "Cumul (d)= b + c"
If Me.TextBoxMontant <> "" Then Me.TextBoxMontant.Value = Me.TextBoxMontant.Value * -1
End Sub
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Donc en OP Provisoire tu veux saisir dans les deux TextBoxMontant ET TextBoxOPprovisoire en même temps ?
Faut voir comment il va réagir ....
@+Thierry

edit /
Private Sub OptionButton4_Click() 'regul op
C'est OptionButton3 pour 'regul op' .................
 

Monhtc

XLDnaute Occasionnel
Donc en OP Provisoire tu veux saisir dans les deux TextBoxMontant ET TextBoxOPprovisoire en même temps ?
Faut voir comment il va réagir ....
@+Thierry
En Op provisoire je veux juste saisir la textboxmontant comme en mode op definifi et annulation
mais en Regularisation de OP provisoire je veux saisir les deux montants TextBoxMontant ET TextBoxOPprovisoire car la regularisation OP vient annuler L'op Provisoire extBoxOPprovisoire et ajouter le montant textboxmontant
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Pour la "Double Saisie" Simultanée
Dans CommandButtonValider_Click
Change quand tu vois le if If Me.OptionButton2 = True Then ... Pour écrire en J !

VB:
    If Me.OptionButton2 = True Then
        If Me.TextBoxMontant = "" Or Me.TextBoxMontant = 0 Then
        If Me.TextBoxOPprovisoire <> "" Then .Range("J" & Lig).Value = CDbl(Me.TextBoxOPprovisoire.Value)
        Else
        If Me.TextBoxMontant <> "" Then .Range("J" & Lig).Value = CDbl(Me.TextBoxMontant.Value)
        End If
    Else
        If Me.TextBoxMontant <> "" Then .Range("J" & Lig).Value = CDbl(Me.TextBoxMontant.Value)
   End If
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Euh je ne suis plus du tout , dans ton post #25 tu mets les deux TextBoxes à visibles sur OptionButton2

VB:
Private Sub OptionButton2_Click() 'op prov
Me.TextBoxOPprovisoire.Visible = true
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = False
Me.Label6.Caption = "Cumul (d)= b - OP Prov + c"
End Sub

Et maintenant tu dis dans le Post #27 :
Regularisation de OP provisoire je veux saisir les deux montants TextBoxMontant ET TextBoxOPprovisoire
Regularisation Ordre Paiement = OptionButton3 !!!

C'est un vrai panier de crabes ton truc LoL !

Bon je vais aller me coucher sur ce !
Bonne nuit
@+Thierry
 

Discussions similaires

Réponses
11
Affichages
2 K

Statistiques des forums

Discussions
312 174
Messages
2 085 942
Membres
103 053
dernier inscrit
Beubax