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-Bonjour @Monhtc , Le Forum et ceux qui suivent ce Fil "RocambulescoComptable"

Voici une v03, qui commence la partie Correction depuis le ListBox Click pour remettre un Item dans le Masque de saisie pour le Modifier.... En bloquant la ComboBoxEngagementCode car c'est un minimum pour la cohérence... (faudra faire la liste de ce qui doit être bloqué en modification)

J'ai aussi renommé les OptionButtons et les ComboBoxs pour essayer d'attacher les pinces des crabes dans le panier !!!
Car je suis convaincu que tu n'es toujour pas clair avec tes OP Provisoires et tes OP Regularistions, tu verras les transactions Provisoires ne se remettent pas à zéro que ce soit dans v02 ou dans v03...

Mais bon les crabes seront plus gentils !!!
1594014992111.png


Bien à toi et bonne journée
@+Thierry
 

Pièces jointes

  • XLD_Monhtc_GESTION_DES_PAIEMENTS_VF_v03.xlsm
    88.4 KB · Affichages: 17

Monhtc

XLDnaute Occasionnel
Bonjour @_Thierry j'ai visionner le fichier "Les crabes" :D .
la bonne version est :
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 = 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"
End Sub

Private Sub OptionButton3_Click() 'Regul op
Me.TextBoxOPprovisoire.Visible = True
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = True
Me.Label6.Caption = "Cumul (d)= b + - Op Prov + c"
If Me.TextBoxopprovisoire <> "" Then Me.TextBoxopprovisoire.Value = Me.TextBoxopprovisoire.Value * -1
End Sub

je constate un beug quand je choisi dans la combobox1 je choisi le code budgetaire qui a deja un antérieur different de 0, meme en changeant, le montant reste sur le code choisi. Exemple en image avec le code 0005 et 0009
 

Pièces jointes

  • 11.PNG
    11.PNG
    17.4 KB · Affichages: 10
  • 12.PNG
    12.PNG
    55.3 KB · Affichages: 9

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @Monhtc , le Forum

Tu ne travailles pas sur la bonne Version !!!

La v03 n'a plus les OptionButton1, OptionButton2, OptionButton3, OptionButton4 !!!!

Idem plus de ComboBox1 mais la ComboBoxEngagementCode à partir de la v03.
Ce que tu signales, ce n'est pas un bug, c'est juste que tu n'as pas encore indiqué un Montant...
On verra pour agir sur les Contrôles en ordre inverse pour plus tard....

Mets à la poubelle la v02 et travaille sur la v03 stp.

Bien à toi
@+Thierry

EDIT PS Je l'avais pourtant signalé clairement :
J'ai aussi renommé les OptionButtons et les ComboBoxs pour essayer d'attacher les pinces des crabes dans le panier !!!
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re,

Pour ton "Terrible Bug" voilà une prévilualisation de la future v04 pas encore en "client candidate", j'attends qu'il y ait la marée haute pour enlever les crabes pour te la délivrer !!!

(Entends par ceci que j'attends une "vraie analyse" et pas sur une version obsolète !)

monhtc.gif


Hahaha !!!
@+Thierry
 

Monhtc

XLDnaute Occasionnel
je peux pousser un ouff de soulagement ca marche nickel au niveau des calculs c'est enfin ce que je souhaitais avoir en intervertissant le code entre la OPB_OrdrePaiementProvisoire et la OPB_RegularisationOrdrePaiement.
Ainsi on obtiendra:
VB:
Private Sub OPB_OrdrePaymentDefinif_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 OPB_OrdrePaiementProvisoire_Click() 'op prov
Me.TextBoxOPprovisoire.Visible = False
Me.TextBoxMontant.Visible = True
Me.Label12.Visible = False
Me.Label6.Caption = "Cumul (d)= b + c"
End Sub

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

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

Reste à faire la meme chose au niveau de l'impression mais je suis un peu perdu niveau code. Car c'est dans le mode "RegularisationOrdrePaiement" que l'on doit voir les deux textbox
Me.TextBoxOPprovisoire.Visible et Me.TextBoxMontant.Visible apparaitre.
MERCI MERCI le boulot est superbe
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @Monhtc , le Forum

Je ne sais pas où tu en es avec le checking de la v03... Mais je suis sur le point de faire la "release" de la v04 ...
Comme je te vois connecté, c'est le moment où jamais si tu as quelque chose à modifier en plus des OptionButtons ci-dessus (ça s'est fait)...
(Jamais eu de détails techniques pour la Feuille IMPRESSION)

@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir ou Bonjour @Monhtc , le Forum

Bon vu que tu dors ou tu es occupé à autre chose, voici la release de v04 qui sera probablement la dernière pour le moment....

Bonne découverte
@+Thierry
 

Pièces jointes

  • XLD_Monhtc_GESTION_DES_PAIEMENTS_VF_v04_BETA.xlsm
    92.6 KB · Affichages: 20

Monhtc

XLDnaute Occasionnel
Bonjour @_Thierry Bonjour maître et bonjour le forum. La version v4 comme annoncée est parfaite :):):):) je suis entièrement satisfait votre boulot est impec.
J'ai modifié le dernier crabe ainsi:
VB:
TextBoxCumul = TextBoxMontant * 1 + TextBoxOPprovisoire * -1 + TextBoxAnterieur * 1
TextBoxSolde = TextBoxDotation * 1 - TextBoxCumul * 1
Me.TextBoxOPprovisoire = Format(TextBoxOPprovisoire, "#,#0")
En effet pour qu'il ait régularisation de paiement faudrait qu'il est eu au préalable un paiement provisoire sur le même code. C'est donc ce montant qui sera en négatif
 

Monhtc

XLDnaute Occasionnel
allo, Bonjour le fil, Bonjour et bonsoir @_Thierry j'ai deux petites suggestions mais avant j'aimerais savoir si cela était possible.
En effet depuis le masque d'impression (La feuille IMPRESSION) serait il possible d'avoir:
  1. Dans la cellule "D
    123456.PNG
    24" un "X" comme pour cocher la cellule si et seulement la valeur ComboBoxFinancement est "EMPRUNT" ou "DON" (Voir Image)
  2. et si non le "X" sera dans la cellule "G24" si la valeur de la ComboBoxFinancement est "SUBVENTION"

Pour qu'il ait régularisation de paiement faudrait qu'il ait eu au préalable un provisoire sur le même code. Serait il donc possible de pouvoir choisir le paiement provisoire à régulariser à partir de la listbox? (Un modele de tri qui affiche au choix le paiement provisoire concerné par la regularisation?
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @Monhtc , le Forum

Ah une "attaque de crabes" LoL ;)

Non là c'est simple, il suffit d'ajouter dans :
  • CommandButtonValider_Click()
  • CommandButtonModifier_Click()
à l'intérieur de cette partie de code :

VB:
With WSprint
   .Range("B20") = Me.ComboBoxBeneficiary.Value
   .Range("C22") = Me.ComboBoxBenefAccount.Value
   .Range("C25") = Me.ComboBoxReglementMethod.Value
   .Range("C27") = Me.ComboBoxBenefAccount
   .Range("C29") = Me.TextBox9.Value
   .Range("C33") = Me.TextBox10.Value
'a ajouter ==================================================
   If Me.ComboBoxFinancement.Value = "SUBVENTION" Then
   .Range("G24") = "X"
   .Range("D24") = ""
   Else
   .Range("G24") = ""
   .Range("D24") = "X"
   End If
'fin ajout ==================================================
   .Range("D35") = Me.TextBoxMontant.Value
   .Range("D37") = "Code Budget Engagement : " & Me.ComboBoxEngagementCode.Value
   .Range("A37") = Me.Label1.Caption
   .Range("A41") = Me.Label3.Caption
   .Range("A43") = Me.Label4.Caption
   .Range("A45") = Me.Label5.Caption
   If Me.OPB_RegularisationOrdrePaiement = True Then
   .Rows("47:48").Hidden = False
   .Range("A47") = Me.OPB_OrdrePaiementProvisoire.Caption
   .Range("D47") = Me.TextBoxOPprovisoire
   Else
   .Range("A47") = "OP Prov"
   .Range("D47") = 0
   .Rows("47:48").Hidden = True
   End If
   .Range("A51") = Me.Label7.Caption
   .Range("D41") = Me.TextBoxDotation.Value
   .Range("D43") = Me.TextBoxAnterieur.Value
   .Range("D45") = Me.TextBoxMontant.Value
   .Range("D49") = Me.TextBoxCumul.Value
   .Range("D51") = Me.TextBoxSolde
   .Range("D5") = Me.TextBoxSolde.Value
   .Range("A13") = Range("A" & Lig).Value
   .Range("A12") = Opt
   .Range("I15") = Me.Textdate
End With

Voilà, je pense que tu t'en sortiras sans te faire pincer !!!

Bonne soirée
@+Thierry
 

Monhtc

XLDnaute Occasionnel
Bonjour le fl, Bonjour @_Thierry . J'ai rencontré un léger beug la faute peut etre à une information. Il s'agit de du mode annulation de paiement (OPB_AnnulationOrdrePaiement). En effet quand il 'sagit de ce mode de paiement le montant c'est à dire la valeur de la textboxmontant devra etre en négatif. ainsi le cumul (Textboxcumul) serait égale à l'anterieur (textboxanterieur) dans laquelle on retranche la textboxmontant.
VB:
if OPB_AnnulationOrdrePaiement = true then
textboxcumul=textboxanterieur-textboxmontant
textboxsolde=textboxanterieur-textboxcumul
with textboxmontant=(format, "-#,##0")
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re

Ben tu sais bien que ta "soupe comptable" ne m'inspire pas du tout !!

Si on inverse la valeur de TextBoxMontant ça risque d'avoir un impact sérieux pour les 3 autres cas... Je ne sais pas pour l'instant je n'ai pas la tête à faire des emboucanes comptables...

Prends le temps d'expliquer en détails.

@+Thierry
 

Discussions similaires

Réponses
11
Affichages
2 K

Statistiques des forums

Discussions
312 113
Messages
2 085 430
Membres
102 889
dernier inscrit
monsef JABBOUR