Enregistrer le format d'une valeur textbox en monétaire

gbstyle

XLDnaute Impliqué
Bonjour, voila je souhaiterai lors de l'enregistrement sur mon tableau que le format nombre soit monétaire
ci joint mon bout de code
Private Sub BtnAenregistrer_Click()
Ref = Me.TxtARefArticles
With Sheets("Base_Articles")
Set trouvé = .Range("TblBaseArticles").Columns(1).Find(Ref, lookat:=xlWhole, LookIn:=xlValues)
If trouvé Is Nothing Then 'il s'agit d'un nouvelle articles
derlig = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'on se positionne sur la dernière ligne
Else 'existe déjà
derlig = trouvé.Row
If MsgBox("Souhaitez vous modifier l'article ?", vbYesNo) = vbNo Then Exit Sub
End If

.Range("A" & derlig) = TxtARefArticles
.Range("B" & derlig) = CboAFamille
.Range("C" & derlig) = CboASousfamille
.Range("D" & derlig) = TxtADesignation
.Range("E" & derlig) = CboAFournisseur
.Range("F" & derlig) = TxtALongueurcolisage
.Range("G" & derlig) = TxtALargeurcolisage
.Range("H" & derlig) = TxtAHauteurcolisage
.Range("I" & derlig) = TxtACréele
.Range("J" & derlig) = TxtANotes
.Range("K" & derlig) = TxtADelaislivraison
.Range("L" & derlig) = TxtAFraistransport
.Range("M" & derlig) = TxtAFacturation
.Range("N" & derlig) = CboAModedegestion
.Range("O" & derlig) = TxtAminicommande
.Range("P" & derlig) = TxtAPrixUnitHT ' => données à afficher en format Euros lors de la saisie dans le text box et lors de l'enregistrement que sont format se mette en monétaire dans le tableau source
J'ai essaye un code avec .NumberFormat = "#,##0.00 $" mais je n'y arrive pas, il me manque une déclaration de variable je pense


End With

End Sub

D'avance merci
 

gbstyle

XLDnaute Impliqué
Bonjour comment ca va de ce beau temp, en tout cas chez moi en Normandie ;)
Sinon j'ai essayé des choses, est ce que sont ce type de procédure :
VB:
r<Pivate Sub GarnirLabel()
   Dim Revenus As Currency, Charges As Currency, Endettement As Currency
   LabRevenus = Revenus
   Revenus = Format(TVL(1, 33) + TVL(1, 71) + TVL(1, 113) * 0.7 + TVL(1, 118) * 0.7 + TVL(1, 123) * 0.7 + TVL(1, 128) * 0.7 + TVL(1, 133) * 0.7, "0 000.00 €")
   LabCharges = Charges
   Charges = LabCharges.Caption = Format(TVL(1, 16) + TVL(1, 54) + TVL(1, 83) + TVL(1, 89) + TVL(1, 95) + TVL(1, 101) + TVL(1, 107), "0 000.00 €")
   LabEndettement.Caption = Format(100 * Charges / Revenus, "0.00 %")
 

Dranreb

XLDnaute Barbatruc
Non, pas Format, seulement la valeur de l'expression, pas la transformer en texte à ce niveau là, nom d'une pipe, seulement après pour l'affecter au Label !
Et pour l'affectation c'est un signe '=' qu'il faut mettre, en précisant de préférence la propriété affectée. Il vous manque vraiment des bases !
 
Dernière édition:

gbstyle

XLDnaute Impliqué
oula oui pardon désolé c'est une erreur, voila le résultat par contre pour l'endettement je pense que je me suis planté
VB:
Dim Revenus As Currency, Charges As Currency, Endettement As Currency
   Revenus = (TVL(1, 33) + TVL(1, 71) + TVL(1, 113) * 0.7 + TVL(1, 118) * 0.7 + TVL(1, 123) * 0.7 + TVL(1, 128) * 0.7 + TVL(1, 133) * 0.7)
   LabRevenus = Format(Revenus, "0 000.00 €")
   Charges = (TVL(1, 16) + TVL(1, 54) + TVL(1, 83) + TVL(1, 89) + TVL(1, 95) + TVL(1, 101) + TVL(1, 107))
   LabCharges = Format(Charges, "0 000.00 €")
   'Endettement = (Charges / Revenus)
   'LabEndettement = Format(Endettement, "0.00 %")
 

Dranreb

XLDnaute Barbatruc
Ben l'endettement vous n'en avez pas besoin ailleurs que pour l'affecter à LabEndettement.Caption, ou bien si ? Si vous n'en avez pas besoin ailleurs vous pouvez vous passer d'une variable et laisser Format(100 * Charges / Revenus, "0.00 %")
 

Dranreb

XLDnaute Barbatruc
Oui, bien sûr. Garnissez tous les Label.
N'oubliez pas de mettre un même Mode aux Add de toutes les TextBox correspondant aux colonnes qui interviennent dans ces calculs. Si toutefois vous voulez bien qu'on puisse très simplement l'effectuer dès qu'une d'elles change.
 
Dernière édition:

gbstyle

XLDnaute Impliqué
C'est à dire "un même mode" ? (une petite question dois je garder les formules dans mon TVL pour les calcul des revenus, charges, endettement, mensualité ... ?

sinon voici ce que j'ai fait mais pour l'endettement ca ne fonctionne pas
VB:
Dim Revenus As Currency, Charges As Currency
   Revenus = (TVL(1, 33) + TVL(1, 71) + TVL(1, 113) * 0.7 + TVL(1, 118) * 0.7 + TVL(1, 123) * 0.7 + TVL(1, 128) * 0.7 + TVL(1, 133) * 0.7)
   LabRevenus = Format(Revenus, "0 000.00 €")
   Charges = (TVL(1, 16) + TVL(1, 54) + TVL(1, 83) + TVL(1, 89) + TVL(1, 95) + TVL(1, 101) + TVL(1, 107))
   LabCharges = Format(Charges, "0 000.00 €")
   LabEndettement.Caption = Format(100 * Charges / Revenus, "0.00 %")
   End sub
 

Dranreb

XLDnaute Barbatruc
Qu'est-ce qui ne fonctionne pas ?
L'appelez vous déjà quelque part cette procédure, d'ailleurs ?
Je parlais d'un Mode que vous pourrez tester dans la CA_Change comme étant celui d'une des TextBox dont la modification doit déclencher le calcul.
VB:
If CAM.Mode = "CalcLab" Then CA.ValeursVers TVL: GarnirLabel
 
Dernière édition:

gbstyle

XLDnaute Impliqué
1586459451264.png

Le labEndettement mais les autres fonctionne meme avec une mise à jour
Oui dans la CL Change et la CL BingoUn
 

Dranreb

XLDnaute Barbatruc
Dans la CL_Change il ne faut pas l'exécuter. TVL est vide donc ça doit aboutir à une division par 0. À cet endroit mettez simplement les Caption de tous les Label à "" puisque c'est déjà ce que fait le CA.ValeursDepuis TVL pour les autres contrôle: c'est pour tout nettoyer avant création d'un nouvel enregistrement.
 

Dranreb

XLDnaute Barbatruc
Exact. Je viens de tester. J'étais persuadé que le "%" dans le second paramètre de la fonction VB.Format n'affectait pas la manière dont le nombre proprement dit était affiché. Je croyais que ça ne l'affectait que dans les formats de cellules.
 

gbstyle

XLDnaute Impliqué
Exact. Je viens de tester. J'étais persuadé que le "%" dans le second paramètre de la fonction VB.Format n'affectait pas la manière dont le nombre proprement dit était affiché. Je croyais que ça ne l'affectait que dans les formats de cellules.
[/QUOTE
Ce n'est pas moi qui vait te faire des commentaire ca s'est sur ;)
Par contre est ce que maintenant la procèdure de mise en forme en fonction du résultat endettement >33% va fonctionner ? car c'était affecté à une Tbx initiallement ,
VB:
 CA.Add TBxSRev, "Total Revenus", Format:="0 000.00 €"
   CA.Add TBxSChar, "Total Charges", Format:="0 000.00 €"
   CA.Add TBxSEnd, "Taux End Act", Format:="00 %", Mode:="RougeGras" 'CA.Add TBxSEnd, "Taux End Act", Format:="00 %"
   CA.Add TBxSMen, "Mensualité possible", Format:="0 000.00 €"
   CA.Add TBxPTota, "Total Projet", Format:="0 000.00 €"
   CA.Add TBxFTota, "Total Financement", Format:="0 000.00 €"    '.Text = Format(TVLF(1, 197), "0.00 €")

   CL.CouleurSympa
   CL.Actualiser
   'If Not Me.ActiveControl Is FrmC Then CL.Stopper

   End Sub

j'ai également rajouter un labmensualité possible
 

Dranreb

XLDnaute Barbatruc
Non, on n'a pas changé jusqu’à présent d'autres propriétés des Label que leur Caption.
Mais là je reviens sur ce que j'ai dit: Si l'endettement doit donner lieu à des changement de leur apparence, il est aussi souhaitable de le calculer d'abord dans une variable.
 

Statistiques des forums

Discussions
312 215
Messages
2 086 322
Membres
103 178
dernier inscrit
BERSEB50