Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Bonsoir.
Non. Ce n'est pas bon. Il faut calculer d'abord l'expression et l'affecter à Revenu et ensuite seulement affecter à LabRevenu Format(Revenu, "0 000.00 €"). Pareil pour Charges.
 
Dernière édition:

gbstyle

XLDnaute Impliqué
donc quelque chose comme ca
VB:
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 €")
   LabRevenus Format(Revenus, "0 000.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:

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é
 

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.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…