XL 2013 VBA pour enregistrer en PDF avec conditions

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
 

Staple1600

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

etienne33

XLDnaute Nouveau
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,
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 812
dernier inscrit
abdouami