VBA export PDF : Nom du fichier par des cellules et export d'une seule page
Bonjour à tous,
Comme l’indique mon titre, je souhaiterai nommé le fichier que j’export en PDF via ma macro avec un début de phrase « Liste de fourniture de » puis compléter avec les cellules « B2 » et « B1 ».
De plus, j’aimerai exporter la page 2 uniquement qui s’étend de « A51 » à « J80 ».
La formule de ma macro (ci-après) fonctionne pour l’export en PDF mais me le nomme avec le nom de mon fichier et me l’export entierement.
Sub Editer_liste_fourniture_en_PDF()
Dim TempFile As String
Dim FinalFile As String
FinalFile = "/Users/JC/Documents/Taff/" & ActiveWorkbook.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
TempFile, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False
End Sub
Je vous remercie d’avance pour votre aide.
Quelqu'un pour m'aider, please ??
Bonjour
Un essai mais sans garantie : il marche sur mon PC mais sur MAC ?
Le doc PDF se retrouve dans le même dossier que celui où tu auras enregistré le fichier.
Cela te convient-il ?
Bonjour
Un essai mais sans garantie : il marche sur mon PC mais sur MAC ?
Le doc PDF se retrouve dans le même dossier que celui où tu auras enregistré le fichier.
Cela te convient-il ?
Bonjour GMB,
Très bon début!!! Merci... J'ai bien l'export (uniquement) de la page 2 de mon PDF, il s'enregistre bien dans mon dossier où est enregistrer le fichier. Le hic, c'est qu'il n'a pas de nom, le fichier se nomme .pdf.
Ce que j'aimerai c'est utiliser, le début de nom "Liste de fourniture de" suivi de la cellule "B3".
Tu pourrais m'aider pour ce dernier détail?
Bonjour
Un essai mais sans garantie : il marche sur mon PC mais sur MAC ?
Le doc PDF se retrouve dans le même dossier que celui où tu auras enregistré le fichier.
Cela te convient-il ?
Bonjour GMB,
Très bon début!!! Merci... J'ai bien l'export (uniquement) de la page 2 de mon PDF, il s'enregistre bien dans mon dossier où est enregistrer le fichier. Le hic, c'est qu'il n'a pas de nom, le fichier se nomme .pdf.
Ce que j'aimerai c'est utiliser, le début de nom "Liste de fourniture de" suivi de la cellule "B3".
Tu pourrais m'aider pour ce dernier détail?
J'ai actuellement un module qui fonctionne et me sert a trier cette page 2 en supprimant les lignes contenant un zéro dans la colonne A.
Sub Editer_liste_fourniture_PDF()
Dim n As Integer
Application.ScreenUpdating = False
For n = Range("B65536").End(xlUp).Row To 51 Step -1
If Left(Range("A" & n).Formula, 1) = "=" And Range("A" & n).Value = 0 Then
Range("L" & n) = 1
End If
Next n
For n = Range("B65536").End(xlUp).Row To 51 Step -1
If Range("L" & n) = 1 Then Rows(n).Delete
Next n
End Sub
J'ai tenté de le compléter avec ton module car mon but final est d'avoir une seule macro pour trier ma liste et l'exporter en PDF. Le souci c'est que cela m'indique des erreurs et je n'arrive pas a comprendre le pourquoi du comment.
Pourrais-tu m'aider a le caler comme il faut stp?
UP! UP!
Mon problème n'étant toujours pas résolu et très proche du but, je continue à vous solliciter afin de me venir en aide...
Je vous fait un récap', j'ai un module qui me supprime les lignes contenant un zéro dans la colonne A de la page 2 (entre A51 et J80) :
Sub Trier()
Dim n As Integer
Application.ScreenUpdating = False
For n = Range("B65536").End(xlUp).Row To 51 Step -1
If Left(Range("A" & n).Formula, 1) = "=" And Range("A" & n).Value = 0 Then
Range("L" & n) = 1
End If
Next n
For n = Range("B65536").End(xlUp).Row To 51 Step -1
If Range("L" & n) = 1 Then Rows(n).Delete
Next n
End Sub
J'ai un autre module qui m'export cette page 2 en PDF dans le dossier où se trouve mon fichier et me le nomme "Liste de fourniture de "B3"" :
Option Explicit
Dim sPath As String, sFile As String
Const RNG As String = "$A$51:$J$80"
Sub Exporter()
Application.ScreenUpdating = False
sPath = ThisWorkbook.Path & Application.PathSeparator
With ActiveSheet
sFile = .Cells(2, 2).Text & "Liste de fourniture de " & .Cells(2, 2).Text
.Range(RNG).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=sPath & sFile, _
Quality:=xlQualityStandard, _
IncludeDocproperties:=True, _
ignoreprintareas:=False, _
openafterpublish:=True
End With
End Sub
A présent, j'aimerai réunir ces deux formules sous une seule et même macro.
Vous remerciant d'avance pour votre aide.
Bonjour TheBlackCoyotte, gmb
Si tes 2 macros fonctionnent comme tu le souhaites, il te suffit d'appeler la macro "Trier" avant de faire l'export, non ?
Un truc du genre:
Option Explicit
Dim sPath As String, sFile As String
Const RNG As String = "$A$51:$J$80"
Sub Exporter()
Call Trier
Application.ScreenUpdating = False
sPath = ThisWorkbook.Path & Application.PathSeparator
With ActiveSheet
sFile = .Cells(2, 2).Text & "Liste de fourniture de " & .Cells(2, 2).Text
.Range(RNG).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=sPath & sFile, _
Quality:=xlQualityStandard, _
IncludeDocproperties:=True, _
ignoreprintareas:=False, _
openafterpublish:=True
End With
End Sub
Sinon, à tester:
Option Explicit
Dim n As Integer
Dim sPath As String, sFile As String
Const RNG As String = "$A$51:$J$80"
Sub Exporter()
Application.ScreenUpdating = False
sPath = ThisWorkbook.Path & Application.PathSeparator
With Sheets("Feuil2")
For n = Range("B65536").End(xlUp).Row To 51 Step -1
If Left(.Range("A" & n).Formula, 1) = "=" And .Range("A" & n).Value = 0 Then
.Range("L" & n) = 1
End If
Next n
For n = .Range("B65536").End(xlUp).Row To 51 Step -1
If .Range("L" & n) = 1 Then .Rows(n).Delete
Next n
sFile = "Liste de fourniture de " & .Cells(2, 2).Text
.Range(RNG).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=sPath & sFile, _
Quality:=xlQualityStandard, _
IncludeDocproperties:=True, _
ignoreprintareas:=False, _
openafterpublish:=True
End With
End Sub
Cordialement,
Perfect! affaire conclu. Merci gmb et xorsankukai pour votre aide!
Re,
Merci pour ton retour,
Evite les MP, s'il te plait, tu prives le forum des solutions apportées et te prive également d'autres propositions qui pourraient etre plus pertinentes où plus optimisées
Re-bonjour Xorsankukai,
J'aurai besoin d'une toute petite aide si tu le veux bien. Voila, j'aimerai créer un module afin d'enregistrer mon fichier au format "xlsm" dans un dossier spécifique "/Users/JC/Documents/".
Si ton chemin est correct....
Essaie cette macro:
Sub sauvegarder()
Dim Chemin As String, NomFichier As String
Dim extension As String
Application.ScreenUpdating = False
Chemin = "/Users/JC/Documents/"
extension = ".xlsm"
On Error Resume Next
MkDir Chemin
On Error GoTo 0
NomFichier = "Liste de fourniture de " & ActiveSheet.Cells(3, 2).Text & extension
ActiveSheet.Copy
With ActiveWorkbook
.SaveAs Filename:=Chemin & NomFichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
.Close
End With
End Sub
SOURCE:......https://forum.excel-pratique.com/viewtopic.php?t=36642
Cordialement,
Re,
Merci pour ton retour,
Evite les MP, s'il te plait, tu prives le forum des solutions apportées et te prive également d'autres propositions qui pourraient etre plus pertinentes où plus optimisées
Re-bonjour Xorsankukai,
J'aurai besoin d'une toute petite aide si tu le veux bien. Voila, j'aimerai créer un module afin d'enregistrer mon fichier au format "xlsm" dans un dossier spécifique "/Users/JC/Documents/".
Si ton chemin est correct....
Essaie cette macro:
Sub sauvegarder() Dim Chemin As String, NomFichier As String Dim extension As String Application.ScreenUpdating = False Chemin = "/Users/JC/Documents/" extension = ".xlsm" On Error Resume Next MkDir Chemin On Error GoTo 0 NomFichier = "Liste de fourniture de " & ActiveSheet.Cells(3, 2).Text & extension ActiveSheet.Copy With ActiveWorkbook .SaveAs Filename:=Chemin & NomFichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False .Close End With End Sub
SOURCE:......https://forum.excel-pratique.com/viewtopic.php?t=36642
Cordialement,
Ça fonctionne mais il me l'enregistre dans le même dossier du fichier et pas dans celui que je souhaite. Saurais-tu d'ou peux venir le problème?
J'ai fait une légère modification pour le nom du fichier :
.SaveAs Filename:=Chemin & NomFichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
'.SaveAs Filename:=NomFichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Re,
Désolé, je ne saurai t'aider d'avantage.... cela fonctionne correctement chez moi....mais tu es sous MAC....
Bon courage,
Cordialement,
Re,
Désolé, je ne saurai t'aider d'avantage.... cela fonctionne correctement chez moi....mais tu es sous MAC....
Bon courage,
Cordialement,
Je ferais avec, tant pis! Merci pour ton aide en tout cas.