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é
Ci joint doc.

Désolé après une journée de formation, je vais devoir me déconnecter ce soir je reprendrai des demain matin ton éventuelle retour en commentaire suite à l'essais de la base ;)
Encore merci pour ton aide, j'admire les rendus de projet que tu me permet de développer
 

Dranreb

XLDnaute Barbatruc
La ligne qui aurait dû le faire est en commentaire dans la Sub CA_Change, et conditionnée par quelque chose qui n'a rien à voir.
La bonne nouvelle c'est que la CA_Change est bien exécutée quand on tape quelque chose dans la TextBox.
 

Dranreb

XLDnaute Barbatruc
Aïe, un imprévu: le mode, s'il n'est pas précisé peut avoir la valeur Missing. En attendant je le teste d'abord pour que ça ne plante pas. Mais il faudra que je fasse une modif plus en profondeur dans ControlsAssociés.
Les 4 procédures impliquées sont comme ça :
VB:
Private Sub CA_Change(ByVal CAM As CAsso)
   If IsMissing(CAM.Mode) Then Exit Sub
   If CAM.Mode = "CalcLab" Then CA.ValeursVers TVL: GarnirLabel
   End Sub
Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
   Select Case NbrLgn
      Case 1: CBnAjouter.Enabled = False: CBnModifier.Enabled = True: CBnSupprimer.Enabled = True: Exit Sub
      Case 0: CBnAjouter.Enabled = True: CBnModifier.Enabled = False: CBnSupprimer.Enabled = False
      Case Else: CBnAjouter.Enabled = False: CBnModifier.Enabled = False: CBnSupprimer.Enabled = False
      End Select
   ReDim TVL(1 To 1, 1 To CL.Colonnes.Count)
   LabRevenus.Caption = "": LabCharges.Caption = "": LabEndettement.Caption = "": LabMensualité.Caption = ""
   CA.ValeursDepuis TVL
   End Sub
Private Sub CL_BingoUn(ByVal Ligne As Long)
   LCou = Ligne
   TVL = CL.Lignes(LCou).Range.Value
   GarnirLabel
   CA.ValeursDepuis TVL
   End Sub
Private Sub GarnirLabel()
   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
   Charges = TVL(1, 16) + TVL(1, 54) + TVL(1, 83) + TVL(1, 89) + TVL(1, 95) + TVL(1, 101) + TVL(1, 107)
   Endettement = Charges / Revenus
   LabRevenus.Caption = Format(Revenus, "0 000.00 €")
   LabCharges.Caption = Format(Charges, "0 000.00 €")
   LabEndettement.Caption = Format(Endettement, "0.00 %")
   If Endettement > 0.33 Then
      LabEndettement.ForeColor = vbRed: LabEndettement.Font.Bold = True
   Else
      LabEndettement.ForeColor = 0: LabEndettement.Font.Bold = False
      End If
   LabMensualité.Caption = Format(Revenus * 0.33, "0 000.00 €")
   End Sub
 

Dranreb

XLDnaute Barbatruc
En fait la modif dans le ControlsAssociés n'est pas très compliquée, il suffit d'ajouter = Empty à la fin de l'instruction Sub de la méthode Add de l'objet ControlsAssociés :
VB:
Public Sub Add(ByVal Ctl As MSForms.Control, Optional ByVal Colonne As Variant = -1, _
   Optional ByVal Format As String = "", Optional ByVal Mode = Empty)
 

gbstyle

XLDnaute Impliqué
Bonjour Dranreb, alors en effet après plusieur modif tout a l'air de bien fonctionner cependant une petite question ?
Connais tu une possibilité pour faire descendre la scrollbar avec une molette de souris plutôt que d'aller sur la barre et devoir la faire défiler en descendant dessus, il est vrais qu'a l'utilisation c'est un peu moin intuitif, mais à mon avis ca n'est pas faisable :/
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je ne sais pas faire en tout cas. Je conseille de considérer une ComboBox avant tout comme une zone saisissable, ne recourant au choix dans la liste qu'à partir du moment où on ne sait plus quoi taper d'existant. Pour un intitulé, l'objet ComboBoxLiées peut s'accommoder d'un greffon sous forme de Sub CL_SujFltChg permettant la recherche intuitive (groupes de caractères tapés contenus n'importe où dans la désignation)
 

gbstyle

XLDnaute Impliqué
quelque chose de ce type ? mais c'est bisarre j'ai déjà l'impression qu'il y a une selection intuitive dans la saie de la cbx Nom :/
VB:
Private Sub CL_SujFltChg(ByVal CBM As ComboBoxMmbr, ByVal Filtré As Boolean)
If Not FrmC Is Me.ActiveControl Then Exit Sub
If Not CBM.CBx Is FrmC.ActiveControl Then Exit Sub
If Not CBM.CBx Is CBxNom Then Exit Sub
If CBM.CBx.MatchFound Or CBM.CBx.Text = "" Then Exit Sub
Dim S ' Sujet temporaire pour recherche intuitive
S = SujCBxLike(CBM.SujetFlt, "*" & CBM.CBx.Text & "*")
If IsEmpty(S) Then Exit Sub
CBM.SujetFlt = S ' Affectation du sujet temporaire.
CBM.CBx.DropDown ' Affichage de la liste
End Sub
 

gbstyle

XLDnaute Impliqué
oui mais j'arrive pas à le déclarer à l'ouverture de l'userform
d'ailleur je dois avoir un problème car dans la Cbn ajouter je n'ai pas de fiche qui se créer il me modifie systématiquement l'existente, j'étais tellement pris par nos sujet que je n'avais pas tester la création d'une 2eme identité en exemple lol
 

Statistiques des forums

Discussions
312 329
Messages
2 087 324
Membres
103 516
dernier inscrit
René Rivoli Monin