Microsoft 365 PDF nom = Range("p3") de la feuille "RdVCx".Value

Usine à gaz

XLDnaute Barbatruc
Bonjour à tous et à tous,
Je vous souhaite une belle journée :)

J'ai un code me permettant de sauvegarder sur mon bureau ma feuille de mon fichier excel ... ça fonctionne parfaitement.

Le nom donné au PDF est celui du classeur :
J'ai beaucoup de feuilles à sauvegarder et pour ne pas avoir à renommer chaque PDF, j'aimerais que le nom du PDF soit le contenu de la cellule P3 de ma feuille.
Je n'ai pas trouvé comment modifier mon code :mad:

VB:
Sub PDFcomCaCh()
    ActiveSheet.Unprotect Password:=""
    Dim DernièreLigne As Long

    DernièreLigne = Cells(Rows.Count, 1).End(xlUp).Row
    ActiveSheet.PageSetup.PrintArea = Range("a3:g" & DernièreLigne).Address
    ChDir "C:\Users\lionel\Desktop"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\lionel\Desktop\Partenariat isiTel.pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

    ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlNoRestrictions
    Range("F2").Select
End Sub
Pourriez-vous m'aider ?
Je continue de tenter,
Avec mes remerciements,
Amicalement,
lionel,
 
Dernière édition:
Solution
Bonjour Lionel,

utilise cette instruction :

VB:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\lionel\Desktop\" & [P3], Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

c'est si P3 contient le nom avec aussi l'extension ".pdf" ; sinon, utilise :

VB:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\lionel\Desktop\" & [P3] & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False



edit : salut phil, on s'est croisés. :)

soan

Phil69970

XLDnaute Barbatruc
Bonjour Lionel

Je te propose ceci :
VB:
Dim NFichier As String                                      'Nom du fichier
NFichier = "C:\Users\lionel\Desktop\" & Range("P3")  & ".pdf"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier, Quality _
        :=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

@Phil69970
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Lionel,

utilise cette instruction :

VB:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\lionel\Desktop\" & [P3], Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

c'est si P3 contient le nom avec aussi l'extension ".pdf" ; sinon, utilise :

VB:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\lionel\Desktop\" & [P3] & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False



edit : salut phil, on s'est croisés. :)

soan
 

Phil69970

XLDnaute Barbatruc
Le fil, Soan

VB:
Sub PDFcomCaCh()
ActiveSheet.Unprotect Password:=""
Dim DernièreLigne As Long

Dim NFichier As String
NFichier = "C:\Users\lionel\Desktop\" & Range("P3") & ".pdf"

DernièreLigne = Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.PageSetup.PrintArea = Range("a3:g" & DernièreLigne).Address
ChDir "C:\Users\lionel\Desktop"    '<== je suis pas sur que cela serve !!

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier, Quality _
        :=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoRestrictions
Range("F2").Select
End Sub

@Phil69970
 

soan

XLDnaute Barbatruc
Inactif
@Lionel

les 2 dernières options sont à False, ce qui est le cas par défaut ; tu peux donc abréger ainsi :

VB:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\lionel\Desktop\" & [P3], Quality:=xlQualityStandard, IncludeDocProperties:=True

ou :

VB:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\lionel\Desktop\" & [P3] & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True

j'ai donc juste enlevé cette fin d'instruction :

, IgnorePrintAreas:=False, OpenAfterPublish:=False

soan
 

Discussions similaires

Réponses
3
Affichages
750

Statistiques des forums

Discussions
315 091
Messages
2 116 117
Membres
112 665
dernier inscrit
JPHD