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 dranreb ci joint modif est ce que c'est cela que voyais, a prioris ça ne me supprime plus mon PUHT
VB:
Private Sub CLsE_Résultat(Lignes() As Long)
Dim TDon(), TLBx(), Ldon As Long, LLBx As Long, C As Long
TLE = Lignes
TDon = CLsE.PlgTablo.Value
ReDim TLBx(1 To UBound(TLE), 1 To 10)
'For LLBx = 1 To UBound(TLC)
'   Ldon = TLC(LLBx)
   'For C = 1 To 6: TLBx(LLBx, C) = Tdon(Ldon, C): Next C, LLBx
'   For C = 1 To 6: TLBx(LLBx, C) = TDon(Ldon, Choose(C, 1, 8, 9, 10, 11, 12)): Next C, LLBx  'choix des colonne à ressortir dans la listbox
'LBxC.List = TLBx
    If LCouC <> 0 Then
        TVLE(1, 3) = TVLC(1, 11)
    End If
    TVLE = CLsE.Lignes(Lignes(1)).Range.Value
    GarnirEntree ' Tout:=False

End Sub

Private Sub GarnirEntree()

Me.TBxCPUHT.Text = TVLE(1, 3)
Me.TBxERéfBL.Text = TVLE(1, 7)
Me.TBxEQte.Text = TVLE(1, 8)
Me.TBxERemarque.Text = TVLE(1, 10)

End Sub
 
Dernière édition:

gbstyle

XLDnaute Impliqué
re Dranreb
Ma Cbn valider fonctionne bien en ajout de ligne par contre je n'arrive pas à effectué une modif il me créer toujour une ligne avec les infos, je n'arrive pas a trouver depuis ce matin d'où viendrait le problème, je sais que mon sujet et long est fastidieux mais j'en vois bientôt le bout je suis désolé de te prendre du temp.
VB:
Private Sub CBnEValider_Click()
'If LCouE <> 0 Then ReDim TVLE(1 To 1, 1 To 10)

TVLE(1, 1) = Me.CBxCRéfArticle.Text
TVLE(1, 2) = Me.CBxCDesArticle.Text
TVLE(1, 3) = ValeurTBx(Me.TBxCPUHT, vbCurrency)
TVLE(1, 4) = Me.CBxCRechecheRéfcommande.Text
TVLE(1, 5) = Me.CBxType.Text
TVLE(1, 6) = Me.CBxEDate.Text
TVLE(1, 7) = ValeurTBx(Me.TBxERéfBL)
TVLE(1, 8) = ValeurTBx(Me.TBxEQte, vbDouble)
TVLE(1, 9) = Me.CBxEemplacement.Text
TVLE(1, 10) = ValeurTBx(Me.TBxERemarque)


If LCouE = 0 Then
    CLsE.ValeursVers TVLE
    CLsE.Lignes.Add.Range.Resize(, 10).Value = TVLE
    CLsE.Actualiser
    Rem. Refaire un Dictionary ? Refiltrer quelque chose ? On verra !
Else
 
    CLsE.Lignes(LCouE).Range.Resize(, 10).Value = TVLE '10=nombre de colonnes contenant des constantes
 
    End If
End Sub
 

Dranreb

XLDnaute Barbatruc
LCouE, disponible dans tout le code puisque c'est une variable globale, n'est pas convenablement initialisée par CLsE_Résultat.
Bien évidemment: LCouE = Lignes(1)
Il y reste plein de chose inutiles s'il ne faut pas de ListBox.
Mais les chose qu'il faut n'y sont pas.
Notamment tout de suite derrière: TVLE = CLsE.Lignes(LCouE).Range.Value
Ah si, plus bas, ça y était. Excuses.
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Tu me parle bien de la procédure Clse_Change ?
Si il y aura une listbox qui retracera les mouvement de l'article mais comme j'ai déjà du mal à valider mes données sans doublon ca s'annonce compliquer
j'ai remodifier ce code : qu'en penses tu ?
VB:
Private Sub CLsE_Résultat(Lignes() As Long)
Dim TDon(), TLBx(), Ldon As Long, LLBx As Long, C As Long
If UBound(Lignes) = 1 Then
   LCouE = Lignes(1)
   TVLE = CLsE.Lignes(LCouE).Range.Value
   GarnirEntree
Else
   TLE = Lignes
   TDon = CLsE.PlgTablo.Value
   ReDim TLBx(1 To UBound(TLE), 1 To 10)
   For LLBx = 1 To UBound(TLE)
      Ldon = TLE(LLBx)
      For C = 1 To 10: TLBx(LLBx, C) = TDon(Ldon, C): Next C, LLBx ' code pour affichage total listbox changer paramètre 1To8 nb colonne affiché dans la list box
      'For C = 1 To 10: TLBx(LLBx, C) = TDon(Ldon, Choose(C, .., .., .., .., .., ..,.., ..)): Next C, LLBx  'choix des colonne à ressortir dans la listbox
   LBxM.List = TLBx: End If
End Sub
 
Dernière édition:

gbstyle

XLDnaute Impliqué
je t'envois le projet que tu vois comment j'ai intégré la listbox dans le frame suivi entrée,
j'ai bien des filtres qui se font par contre ma question était, dois je laisser la listbox dans le frame entrée ou dois la mettre dans un autre frame que viendrai activer en effet j'aimerai par la selection d'un article avoir aussi bien le suivis de ses entrée que de sortie dans la meme listbox ?
Par contre je n'ai pas modifié la Lcouc <>0 ne me gronde pas :/
Ne te préocupe pas non plus de la mise en forme de la listbox je n'ai pas encore selectionné les colonnes à afficher :/
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Je n'ai pas récupéré de fichier depuis 14:30.
D'ailleurs je n'aime pas que tu retire ceux que tu mets.
Peut être faudrait-il un accès à la base Articles…
If LCouC <> 0 Then permet, dans n'importe quelle procédure, de savoir si on est positionné sur une ligne de commande. Ç'aurait donc été un moyen de récupérer le prix sur celle ci (donc de TVLC) si LCouE = 0 (pas de ligne de suivi, vue qu'on veut en créer une, d'où effacement du prix si on le récupère de TVLE).
Mais peut être vaut-il mieux le récupérer de la base article finalement.
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Bonjour Dranreb, désolé je n'ai pu te répondre plus tot cause déplacement.
Je pensais avoir ajouter le fichier mais en effet j'ai du me louper.
J'ai rajouter dans la procédure listbox Click pour garnir mes entrée en cas de modif.
Par contre en effet je pense que tu as raison sur le fait de récupérer le PUHT sur la base article, je m'explique toute mes entrée n'auront pas forcement une réf commande, je peux avoir par exemple SAV comme réf pour un retour client, par contre je peux sélectionner une référence mais pas ca désignation elle s'efface, par contre en effet je n'ai pas d'affichage de PUHT de l'article qui se créer d'où t'on idée de récupérer le PUHT de la base article. (a contrario si je selectionne une réf, puis sa désignation, et ensuite saisir en réf "SAV" la ma désignation article ne disparait pas.
ci joint doc synthétique, j'essaye de travailler par batch pour m'éviter de fausse manip
 

gbstyle

XLDnaute Impliqué
Bonjour dranreb
tu parle de ceci ?
VB:
Private Sub GarnirEntree()

Me.TBxCPUHT.Text = TVLE(1, 3)
Me.TBxERéfBL.Text = TVLE(1, 7)
Me.TBxEQte.Text = TVLE(1, 8)
Me.TBxERemarque.Text = TVLE(1, 10)

End Sub

j'ai ajouter la LbxC aussi pour garnir les infos commande

VB:
Private Sub LBxC_Click()
LCouC = TLC(LBxC.ListIndex + 1)
TVLC = CLsC.Lignes(LCouC).Range.Value
CLsC.ValeursDepuis TVLC
GarnirCommande
End Sub
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Par contre j'essaye mais je n'arrive pas à comprendre comment je dois faire pour récupérer l'information PUHT de la base article, et comment l'intégrer dans la procédure

Je me disais que je devais peut etré déclarer une nouvelle option explicit pour déclarer la base article.
comme ca je peux éventuellement récupérer toute les infos necessaire de la base article meme pour une entrée de type inventaire et donc référence pas suivis par une commande, car a ajd je n'ai dans mes combobox lié que les réf article lié au l'onglet suivis commande

J'ai fait une raide mise à jour en forme et rajout de frame, je peux bien selectionner tout mes articles lié à la base articles, je pense qu'il manque encore quelque renseignement, mais je crois que de faire appel à la base article ca me parait judicieux comme ca je pourrais gerer mes entrée ou mes inventaire sur le meme tableau non ?
 
Dernière édition:

gbstyle

XLDnaute Impliqué
ci joint modif du projet, par contre je n'arrive toujour pas à intégrer cette valeur de PUHT lors d'une rentrée, ainsi que la quantité dans le frame entrée qui s'efface des que je sélectionne une CBxlié
VB:
Option Explicit
Private WithEvents CLsC As ComboBoxLiées, LCouC As Long, TVLC(), TLC() As Long, _
        WithEvents CLsE As ComboBoxLiées, LCouE As Long, TVLE(), TLE() As Long, _
        WithEvents CLsA As ComboBoxLiées, LCouA As Long, TVLA(), TLA() As Long
        Private DicA As Dictionary

Private Sub UserForm_Initialize()
Set CLsA = New ComboBoxLiées
CLsA.Plage [TblBaseArticles]
CLsA.Add Me.CBxARéfArticle, 1, Croissant:=False
CLsA.Add Me.CBxADesArticle, 4
CLsA.CouleurSympa
CLsA.Actualiser
Set DicA = DicoSujet(CLsA.Item(CBxARéfArticle).SujetBdD)
If Not Me.ActiveControl Is FrmA Then CLsA.Stopper
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 425
Membres
103 206
dernier inscrit
diambote