Enregistre un pdf avec le nom de la feuil que je viens de creer macro

Signaler
Messages postés
3
Date d'inscription
mardi 12 janvier 2021
Statut
Membre
Dernière intervention
12 janvier 2021
-
Messages postés
261
Date d'inscription
samedi 7 novembre 2020
Statut
Membre
Dernière intervention
17 janvier 2021
-
Bonjour Je suis en train de faire un document pour mon mari avec des code vba ..... j Y connaissait rien au début de la semaine mais maintenant que j ai presque fini j arrive pas a régler mon dernier petit problème que voici

j essais d enregistrer une copie pdf avec le nom de la page que je viens de créer … j arrive a faire l enregistrement a l endroit voulu mais seulement si j inscris manuellement un nom dans mon vba .. j arrive as a trouver le code pour le faire automatiquement la derniere partie a la fin du chemin_pdf .... dans mon code et ce que je dois inscrire a la main pour réussir a enregistrer ...... Quelqu un peut m aider svp

merci

' enregristrer_bondecommande_pdf Macro
'

'
Columns("A:G").Select
Range("A2").Activate
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
ActiveSheet.Name = [C10] & "_" & [C5]
Application.CutCopyMode = False
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = ""
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.25)
.RightMargin = Application.InchesToPoints(0.25)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(0.75)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperLetter
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Application.PrintCommunication = True
Range("H16").Select

' idendifier nom du PDF
Dim sFilename As String
sFilename = " date"

' identifer chemin d'acces du PDF a creer
chemin_pdf = "C:\Users\14385\OneDrive\Bureau\BON COMMANDE\PDF a envoyer chez Ali-Monde\sFilename"



'identifier onglet
Set onglet = Worksheets("bon de commande")

'selectionner la feuille a enregistrer en PDF
onglet.Select

' creer le PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin_pdf, _
quality:=xlQualityStandar, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False



Sheets("Bon de commande").Select
Range("C15").Select



End Sub

3 réponses

Messages postés
261
Date d'inscription
samedi 7 novembre 2020
Statut
Membre
Dernière intervention
17 janvier 2021
59
Bonjour,

Pour une meilleure lisibilité du code (coloration syntaxique + n° de ligne), utiliser l'outil approprié et choisir le langage dans la liste. En l'occurrence Basic pour le VBA

L eproblème vient d'ici, il faut intégrer le contenu de la variable dans le chemin

chemin_pdf = "C:\Users\14385\OneDrive\Bureau\BON COMMANDE\PDF a envoyer chez Ali-Monde\" & sFilename

chemin_pdf = "C:\Users\14385\OneDrive\Bureau\BON COMMANDE\PDF a envoyer chez Ali-Monde\" & sFilename
Messages postés
3
Date d'inscription
mardi 12 janvier 2021
Statut
Membre
Dernière intervention
12 janvier 2021

WOW merci beaucoup beaucoup beaucop ....... vous me sauvez ca fait deux jours que j essais de régler le problème ..... vous sembler caller .... j aimerais savoir si vous connaissez la formule je voudrais que l enregistrement pdf porte le nom de la feuille que je crée avec le même macro es ce possible ?
Messages postés
3
Date d'inscription
mardi 12 janvier 2021
Statut
Membre
Dernière intervention
12 janvier 2021

WOW merci beaucoup beaucoup beaucoup ....... vous me sauvez ca fait deux jours que j essais de régler le problème ..... vous sembler caller .... j aimerais savoir si vous connaissez la formule je voudrais que l enregistrement pdf porte le nom de la feuille que je crée avec le même macro es ce possible ?
Messages postés
261
Date d'inscription
samedi 7 novembre 2020
Statut
Membre
Dernière intervention
17 janvier 2021
59
Bonjour,

Merci mais vous trouverez bien plus calé que moi ici :-) !

Vous pourrez donner automatiquement le nom que vous voulez depuis la macro du moment qu'il est valide pour votre OS (Windows).

Il faut cependant clarifier ce que vous voulez faire :
pour l'instant tous les fichiers s'appelleront date(.pdf) puisque c'est le contenu de la variable sFilename. Donc une impression en écrasera une autre.
Que voulez-vous ? que le fichier s'appelle "Bon de commande" ?
Il serait plus judicieux qu'il prennent un nom unique intégrant le n° du bon de commande ou le nom du client avec un horodatage. 'D'où peut-être le nom "date" contenu dans votre variable ?

Précisez donc votre besoin : c'est important pour vous comme pour nous.

PS : pour poster le code comme il faut, c'est par ce menu


Et si possible mettez à disposition une version de votre fichier sans données confidentielles (données fictives si besoin mais dans le bon format de votre fichier) en le mettant en ligne ici par exemple https://cjoint.com/ puis en copiant-collant le lien obtenu dans votre réponse du forum.