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

  • Initiateur de la discussion Initiateur de la discussion gbstyle
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
J'avance mais encore quelque soucis, je n'ai pas encore fait tout le tri car je suis perturbé par le TLC
VB:
Private Sub CommandButton1_Click()
Dim TDon(), TR(), Ldon As Long, LR As Long, C As Long
TDon = CLsC.PlgTablo.Value 'résultat de la plage suivi commande
ReDim TR(1 To WshBCVierge.[CorpsFacture].Rows.Count, 1 To 5)
For LR = 1 To UBound(TLC)
   Ldon = TLC(LR)
  For C = 1 To 5: TR(LR, C) = TDon(Ldon, Choose(C, 8, 9, 10, 11, 12)): Next C, LR
WshBCVierge.[RéfBC].Value = TR
WshBCVierge.[DateCommande].Value = TR
WshBCVierge.[Port].Value = TR
WshBCVierge.[Delailivraison].Value = TR

End Sub
ci joint résultat :
upload_2018-6-7_11-23-54.png


j'ai simuler avec un autre numéros de commande et mon corps de facture Réf/Dés.... ne change pas
 
Bah justement j'ai fais quelque essais et je n'obtiens pas le résutat escomptés, soit j'ai un résultat vierge, soit j'ai la référence du 1er article qui ressort dans mes champ noms, je n'arrive meme pas à ressortir la réf commande.
 
Voici sur quoi j'étais partis,j'arrive à avoir le résulat escompté par contre je n'ai plus mon corp de facture
VB:
Private Sub CommandButton1_Click()
Dim TDon(), TR(), Ldon As Long, LR As Long, C As Long
TDon = CLsC.PlgTablo.Value 'résultat de la plage suivi commande
ReDim TR(1 To WshBCVierge.[CorpsFacture].Rows.Count, 1 To 5)
For LR = 1 To UBound(TLC)
   Ldon = TLC(LR)
  For C = 1 To 5: TR(LR, C) = TDon(Ldon, Choose(C, 8, 9, 10, 11, 12)): Next C, LR
WshBCVierge.[RéfBC].Value = TDon(Ldon, 1)
WshBCVierge.[Fournisseur].Value = TDon(Ldon, 4)
WshBCVierge.[DateCommande].Value = TDon(Ldon, 2)
WshBCVierge.[Port].Value = TDon(Ldon, 6)
WshBCVierge.[Delailivraison].Value = TDon(Ldon, 5)

End Sub
 
Dernière édition:
Depuis mon retour de pause je reprend toute ma chronologie et j'arrivais pas à comprendre,
Enfin de compte j'ai supprimé par inadvertence la ligne de corp facture, j'aurai pu passer encore 30mn a chercher car je reprenais notre historique pour voir quel fausse manip j'avais fait.

Qu'est ce que tu veut dire par LDon fixé ?

VB:
Private Sub CommandButton1_Click()
Dim TDon(), TR(), Ldon As Long, LR As Long, C As Long
TDon = CLsC.PlgTablo.Value 'résultat de la plage suivi commande
ReDim TR(1 To WshBCVierge.[CorpsFacture].Rows.Count, 1 To 5)
For LR = 1 To UBound(TLC)
    Ldon = TLC(LR)
  For C = 1 To 5: TR(LR, C) = TDon(Ldon, Choose(C, 8, 9, 10, 11, 12)): Next C, LR
WshBCVierge.[CorpsFacture].Value = TR
WshBCVierge.[RéfBC].Value = TDon(Ldon, 1)
WshBCVierge.[Fournisseur].Value = TDon(Ldon, 4)
WshBCVierge.[DateCommande].Value = TDon(Ldon, 2)
WshBCVierge.[Port].Value = TDon(Ldon, 6)
WshBCVierge.[Delailivraison].Value = TDon(Ldon, 5)

End Sub
 
a prioris oui ca fonctionne bien il faudra que je simule une saisie de commande et une création de bon de commande dans la foulée, pour vérifier que tout fonctionne bien.
Par contre comme je dois faire pour réussir à déclarer mes infos manquante disponible dans la base Fournisseur
 
Bonjour Dranreb, au forum

Je reviens vers vous après utilisation , je n'ai pas réussis à intégrer le complément du bon de commande grâce à la fiche Fournisseur, pour l'instant je viens faire une saisie manuel :/
L'objectif est récupérer les info pour compléter l'adresse fournisseur, le CP, la ville dans le corp du bc Vierge
Sinon pour l'instant je n'ai pas eu trop de soucis de fonctionnement

VB:
Private Sub CommandButton1_Click()
Dim TDon(), TR(), Ldon As Long, LR As Long, C As Long
TDon = CLsC.PlgTablo.Value 'résultat de la plage suivi commande
ReDim TR(1 To WshBCVierge.[CorpsFacture].Rows.Count, 1 To 5)
'ReDim TLBx(1 To UBound(TLC), 1 To 5)
For LR = 1 To UBound(TLC)
    Ldon = TLC(LR)
  For C = 1 To 5: TR(LR, C) = TDon(Ldon, Choose(C, 8, 9, 10, 11, 12)): Next C, LR
WshBCVierge.[CorpsFacture].Value = TR
WshBCVierge.[RéfBC].Value = TDon(Ldon, 1)
WshBCVierge.[Fournisseur].Value = TDon(Ldon, 4)
WshBCVierge.[DateCommande].Value = TDon(Ldon, 2)
WshBCVierge.[Port].Value = TDon(Ldon, 6)
WshBCVierge.[Delailivraison].Value = TDon(Ldon, 5)

End Sub
 
Je viens enfin de réussis je m'embeter a refaire des déclaration mais j'ai appliquer ce que tu m'a dis de faire les choses simplement voici ce que j'ai ajouter :
A prioris ca fonctionne mais si tu vois des choses qui sont pas cohérente je suis preneur
VB:
Private Sub CommandButton1_Click()
Dim TDon(), TR(), Ldon As Long, LR As Long, C As Long
TDon = CLsC.PlgTablo.Value 'résultat de la plage suivi commande
ReDim TR(1 To WshBCVierge.[CorpsFacture].Rows.Count, 1 To 5)
'ReDim TLBx(1 To UBound(TLC), 1 To 5)
For LR = 1 To UBound(TLC)
    Ldon = TLC(LR)
  For C = 1 To 5: TR(LR, C) = TDon(Ldon, Choose(C, 8, 9, 10, 11, 12)): Next C, LR
WshBCVierge.[CorpsFacture].Value = TR
WshBCVierge.[RéfBC].Value = TDon(Ldon, 1)
WshBCVierge.[Fournisseur].Value = TDon(Ldon, 4)
WshBCVierge.[DateCommande].Value = TDon(Ldon, 2)
WshBCVierge.[Port].Value = TDon(Ldon, 6)
WshBCVierge.[Delailivraison].Value = TDon(Ldon, 5)
WshBCVierge.[AdresseFournisseur].Value = TVLF(1, 4)
WshBCVierge.[CP].Value = TVLF(1, 5)
WshBCVierge.[Ville].Value = TVLF(1, 6)
 
j'avais une de mes vielle marcro qui me disais ceci : mais jene suis pas sur que ca fonctionne car j'étais positioné directement sur la feuille et non dans un userform :/ j'ai donc un message d'erreur bien évidement
le code global :
VB:
Private Sub CommandButton1_Click()
Dim TDon(), TR(), Ldon As Long, LR As Long, C As Long
TDon = CLsC.PlgTablo.Value 'résultat de la plage suivi commande
ReDim TR(1 To WshBCVierge.[CorpsFacture].Rows.Count, 1 To 5)
'ReDim TLBx(1 To UBound(TLC), 1 To 5)
For LR = 1 To UBound(TLC)
    Ldon = TLC(LR)
  For C = 1 To 5: TR(LR, C) = TDon(Ldon, Choose(C, 8, 9, 10, 11, 12)): Next C, LR
WshBCVierge.[CorpsFacture].Value = TR
WshBCVierge.[RéfBC].Value = TDon(Ldon, 1)
WshBCVierge.[Fournisseur].Value = TDon(Ldon, 4)
WshBCVierge.[DateCommande].Value = TDon(Ldon, 2)
WshBCVierge.[Port].Value = TDon(Ldon, 6)
WshBCVierge.[Delailivraison].Value = TDon(Ldon, 5)

WshBCVierge.[AdresseFournisseur].Value = TVLF(1, 4)
WshBCVierge.[CP].Value = TVLF(1, 5)
WshBCVierge.[Ville].Value = TVLF(1, 6)
WshBCVierge.[ConditionPaiement].Value = TVLF(1, 19)


Application.ScreenUpdating = False
    WshBCVierge("A1:J45").Select
        Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "F:\Exportation\BC\ BC " & Range("I1") & Range("G7") & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
       
End Sub
 
Dernière édition:
Ben pour afficher la feuille il suffit de terminer la procédure par WshBCVierge.Activate
Ça depuis le temps tu devrais le savoir. Mais après pour la sauvegarder en PDF je ne sais pas, il faudrait que je cherche un peu.
Probablement l'enregistreur de macro donnerait un bonne piste de départ.
Mais je vois que tu as mis un bout de code depuis que j'ai commencé à rédiger ma réponse.
Après vérification il s'avère que c'est une méthode de l'objet Worksheet. Pas de Select à faire, WshBCVierge.ExportAsFixedFormat devrait opérer.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour