Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…