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

XL 2013 VBA pour enregistrer en PDF avec conditions

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

etienne33

XLDnaute Nouveau
Bonjour à tous,

Je souhaite affecter un VBA à un bouton qui me permette d'enregistrer en PDF.

J'ai 3 contraintes :

1- Enregistrer uniquement la page active
2- Pouvoir choisir le répertoire
3- Avoir d'origine le nom du fichier au format suivant : Nom du fichier excel + " " + Contenu d'une cellule

J'ai retravaillé un peu le VBA ci-dessous trouvé sur le net, qui me permet de répondre à mes 2 premières contraintes mais je ne sais pas comment faire pour ma 3ème contraintes.

Pouvez-vous m'aider svp ?

Merci d'avance,

Sub Enr_PDF()

Dim fichier As String
On Error Resume Next

fichier = Application.GetSaveAsFilename("")
If fichier = "Faux" Then Exit Sub


If Dir(fichier & "pdf") <> "" Then

Dim Rep As VbMsgBoxResult
Rep = MsgBox("Etes-vous sûr de vouloir écraser le fichier existant ?", vbYesNo + vbQuestion, "Confirmation de sauvegarde")

If Rep = vbYes Then
'Si oui, on écrase le fichier existant
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
fichier & "pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
If Rep = vbNo Then
'Si non, on enregistre pas
MsgBox "PDF non enregistré"
End If
Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
fichier & "pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If

End Sub
 
Re : VBA pour enregistrer en PDF avec conditions

Bonsoir à tous

Une façon de faire
NB: en l'état, le code ne vérifie pas si la cellule idoine est vide ou pas
Pensez à adapter l'adresse de la cellule selon votre fichier original
(ici pour l'exemple, j'ai pris A1)
VB:
Sub PDFActiveSheet()
'sur un code de Debra Dalgleish, j'ai juste francisé la chose
'et ajouté un chouià ou deux ;-)
Dim ws As Worksheet, strPath$
Dim myFile As Variant, strFile$
On Error GoTo errHandler

Set ws = ActiveSheet

strFile = ws.Name & Space(1) & ws.Range("A1").Text & ".pdf"
strFile = ThisWorkbook.Path & "\" & strFile

myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strFile, _
        FileFilter:="Fichier PDF (*.pdf), *.pdf", _
        Title:="Selectionner le dossier et le nom du PDF à créer")

If myFile <> False Then
    ws.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=myFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

    MsgBox "Le PDF a bien été créé."
End If
'
exitHandler:
    Exit Sub
errHandler:
    MsgBox "PDF non créé", vbCritical
    Resume exitHandler
End Sub
 
Re : VBA pour enregistrer en PDF avec conditions

Bonjour Staple,

Merci pour votre réponse, le code est quasi parfait.

Dans le cas de mon fichier, l'adresse de la cellule à ajouter au nom du fichier est sur une autre feuille.
Je ne sais pas faire référence à une autre en VBA.

Pouvez-vous me donner la marche à suivre ?

Merci d'avance,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
246
Réponses
3
Affichages
673
Réponses
3
Affichages
887
Réponses
10
Affichages
547
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…