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é
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
 

gbstyle

XLDnaute Impliqué
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.
 

gbstyle

XLDnaute Impliqué
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:

gbstyle

XLDnaute Impliqué
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
 

gbstyle

XLDnaute Impliqué
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
 

gbstyle

XLDnaute Impliqué
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
 

gbstyle

XLDnaute Impliqué
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)
 

gbstyle

XLDnaute Impliqué
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:

Dranreb

XLDnaute Barbatruc
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.
 

Statistiques des forums

Discussions
312 198
Messages
2 086 146
Membres
103 130
dernier inscrit
FRCRUNGR