Enregistrer une feuille sous PDF avec nom dans une cellule

Bonjour,

Je cherche un code pour créer une macro qui me permettra d'enregistrer une feuille de mon classeur en PDF avec un nom spécifique qui se trouve dans une cellule. Ce nom est variable, car la cellule comporte elle-même une formule qui met en forme le (futur) nom du fichier PDF, je pense judicieux d'utiliser le nom de la cellule, sinon j'ai déjà renommé la cellule "nomdufichier". Mais le problème n'est pas là, je n'arrive pas à écrire le code pour automatiser la sauvegarde en pdf.

Cela parait simple mais avec les différents codes que je trouve sur les forums je n'y arrive pas.

J'utilise VBA sous Excel 2010.

Nom de la feuille : "Facture Agences"

Numéro de la cellule ou se trouve le nom du fichier pour le pdf : Cellule "B31" de la feuille "Informations Agence"s OU cellule nommée "nomdufichier"

Quelqu'un pourrait m'aider ?

Merci d'avance

Bonjour,

Sub enregistrerpdf()
Dim nompdf As String
Dim dossier As String

    dossier = ThisWorkbook.Path

    nompdf = dossier & "\" & Sheets("Informations Agence").Range("B31")
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

End Sub

Merci beaucoup c'est top !

bonjour et bon weekend a vous,

j'ai aussi le meme soucis pour l'enregistrement d'une feuille en pdf. j'ai cette erreur qui s'affiche a chaque fois, je ne vois pas d'ou sors le probleme

ci dessous le code,

Private Sub CommandButton1_Click()

    ChDir "C:\01- LICENCES\" & Sheets("Licence").Cells(42, 1).Value & ".pdf"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Sheets("Licence").Cells(10, 10).Value & ".pdf", _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True

End Sub

besoin d'aide svp

Bonjour,

Ton image est invisible !!

Que contient Sheets("Licence").Cells(42, 1).Value ?

idem Sheets("Licence").Cells(10, 10).Value ?


pourquoi

ChDir "C:\01- LICENCES\" & Sheets("Licence").Cells(42, 1).Value & ".pdf"

?

ChDir change le répertoire ou le dossier actif.


mets dans

Filename:=Sheets("Licence").Cells(10, 10).Value & ".pdf"

directement le nom complet avec le chemin d'accès.


regarde le code ci-dessus

https://forum.excel-pratique.com/excel/enregistrer-une-feuille-sous-pdf-avec-nom-dans-une-cellule-t97720.html#p568085

merci pour la reaction,

[quote="Steelson"]Bonjour,

Ton image est invisible !!

Que contient Sheets("Licence").Cells(42, 1).Value ? un numero (001 par exple) c'est le nom du dossier ou va placer le fichier (la cellule va etre dynamique)

idem Sheets("Licence").Cells(10, 10).Value ? un code alphanumerique (avec le caractere ~, j'ai verifie c'est un caractere autorise) pour renommer le fichier.

ChDir va changer le dossier a chaque fois

Est-ce que Sheets("Licence").Cells(10, 10).Value contient aussi \ ?

Sinon,

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= "C:\01- LICENCES\" & Sheets("Licence").Cells(10, 10).Value & ".pdf", _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True

et remets ton image invisible STP.

Bonjour,

Ma macro marchait très bien jusqu'à aujourd'hui. (code ci dessous) Ce matin j'ai une erreur 1004 qui apparait quand je lance la macro. J'ai vérifié les noms des fichiers et cellules et tout est bon.

Quelqu'un peux m'aider ?

Merci d'avance !

Sub enregistrerpdf()
Dim nompdf As String
Dim dossier As String

dossier = "C:\Users\dany\Desktop\Nouvelles Factures\"

nompdf = dossier & "\" & Sheets("Informations à remplir").Range("B29")

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

End Sub
dossier = "C:\Users\dany\Desktop\Nouvelles Factures\"
nompdf = dossier & "\" & Sheets("Informations à remplir").Range("B29")

Il y a un antislash \ en trop !

Bonjour,

Sub enregistrerpdf()
Dim nompdf As String
Dim dossier As String

    dossier = ThisWorkbook.Path

    nompdf = dossier & "\" & Sheets("Informations Agence").Range("B31")
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

End Sub

Bonjour,

je viens d'utiliser le code cela fonctionne bien merci !

Cependant, j'aimerai exécuter cette macro depuis ma feuille 1 pour imprimer la feuille 2 car elle a une présentation différente.

Est-ce possible de l'intégrer dans le code sans avoir à aller sur la feuille 2 ?

Merci d'avance.

Remplace ActiveSheet par Sheets("le_nom_de_ma_feuille_2")

Rechercher des sujets similaires à "enregistrer feuille pdf nom"