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 ?

45classeur1.xlsm (25.82 Ko)

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.

10devis-test.xlsm (29.27 Ko)

Vous remerciant d'avance pour votre aide.

Bonjour TheBlackCoyotte, gmb , le forum,

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
Spoiler

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.

Rechercher des sujets similaires à "vba export pdf nom fichier seule page"