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é
Voici ce que j'ai fait
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)

WshBCVierge.Activate 'afficher la feuille en fin de procédure

Application.ScreenUpdating = False
    WshBCVierge.ExportAsFixedFormat xlTypePDF, "BC" & Range("I1") & Range("G7")
        Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "F:\Exportation\BC\ BC " & " " &  Range("I3") &  " " & Range("G7") & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
      
End Sub
J'ai bien un mon bon de commande qui se remplis et un fichier pdf qui s'ouvre avec le nom BC JURATOYS, par contre le PDF est vierge :/, par contre je pense qu'il manque la plage de selection
 

Dranreb

XLDnaute Barbatruc
Vérifie si un aperçu avant impression de la feuille affiche aussi une page vierge, et si oui définit peut être une zone d'impression correcte, je ne sais pas moi.
Non mais, je n'avais pas vu: le Selection.ExportAsFixedFormat est à enlever !!!
Jamais utiliser Select ni Selection, sauf tout en fin d'une macro si c'est à l'intention de l'utilisateur.
 

gbstyle

XLDnaute Impliqué
Mon soucis c'est que en supprimant tout ce petit chapitre :
VB:
'Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
         '"F:\Exportation\BC\ BC " & " " & Range("I3") & " " & Range("G7") & ".pdf", Quality:=xlQualityStandard, _
         'IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

Je n'ai plus rien qui fonctionne, en rajoutant ce code
j'ai bien l'ouverture de mon PDF avec le nom souhaitait et il est bien copié dans le chemin d'accés demandé par contre mon corp de document est vierge

la actuellement j'ai tout remplace par ceci :
WshBCVierge.ExportAsFixedFormat xlTypePDF, "BC" & " " & Range("I1") & " " & Range("G7"), xlQualityStandard, True, False, , "F:\Exportation\BC\", True, xlTypePDF
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Pour récapituler :
avec le print.review meme si ca plante j'ai réussi à voir que la feuille était bien afficher avec ses information

Comme je suis un peu perdu je remet le code global :
Et l'ancien qui lui fonctionnais globalement mais sans le corp du message :/

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)

WshBCVierge.Activate 'afficher la feuille en fin de procédure
'WshBCVierge.PrintPreview
Application.ScreenUpdating = False
     WshBCVierge.ExportAsFixedFormat xlTypePDF, "BC" & " " & Range("I1") & " " & Range("G7"), xlQualityStandard, True, True, , "F:\Exportation\BC\", True, xlTypePDF

        'Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        '"F:\Exportation\BC\ BC " & Range("I3") & Range("G7") & ".pdf", Quality:=xlQualityStandard, _
        'IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
  
          
End Sub
 

gbstyle

XLDnaute Impliqué
Bon bah c'est nickel il me reste juste un petit peu de mise en forme sur la page pour l'améliorer mais le résultat est nickel.
Encore merci Dranreb

Ah oui j'oubliais est ce que tu sais si il est possible sur un bouton macro d'une feuille paramétrer ce type de sauvegarde :
Enregistrer le fichier actuel + enregistrer une copie de sauvegarde avec une destination prédéfinis, le bouton doit pouvoir effectuer les 2 afin d'éviter des oublis.
J'ai commencé par ceci mais je sais qu'il me manque des choses.

VB:
Sub Saveas()
ActiveWorkbook.Saveas 'sauvegarde de la base à son lieu actuel d'utilisation
ActiveWorkbook.Saveas Filename:="F:\Exportation\ARCHIVES\" & "GDSTK" & Range("A2").Value 'sauvegarde pour archiver la base

End Sub
 

gbstyle

XLDnaute Impliqué
Bonjour DRANREB
je te lis à l'instant et j'ai donc essayer de faire quelque modif :
ci joint commande :
VB:
Sub Saveas()
ThisWorkbook.Save
ThisWorkbook.Saveas "F:\Exportation\ARCHIVES\GDSTK" & " " & Format(Date, "yyyymmdd") & ".xlsm"
End Sub

A prioris tout fonctionne, n'hésite pas à me dire si tu y vois quelque chose de non conforme surtout ca me rassurera
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour
Ben la 1ere fois c'est peut être bon, mais une seconde fois la 2ième instruction fait double emploi avec la 1ère. Parce que dans la mesure où celle ci était un SaveAs et non un SaveCopyAs le classeur en mémoire est devenu lui même sa copie et ne peut plus se définir comme le classeur d'origine modifié.
 

gbstyle

XLDnaute Impliqué
Alors j'ai effectué cette modif ci :
VB:
Sub Saveas()
ThisWorkbook.Save
ThisWorkbook.SaveCopyAs "F:\Exportation\ARCHIVES\GDSTK" & " " & Format(Date, "yyyymmdd") & ".xlsm"
End Sub

A prioris après des essais ca fonctionne, par contre je n'ai pas de message me disant que j'ai déjà un fichier portant le meme nom mais ceci dit c'est pas forcement obligatoire, du moment que le lendemain la sauvegarde se fasse à date
 

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib