Modifier un code pour enregistrer en PDF

ipotez

XLDnaute Occasionnel
Bonjour

J'ai une macro qui enregistre mon classeur en pdf.
J'aimerais modifier le code pour apporter 2 changements :

1) J'aimerais qu'il crée le pdf de la feuille affichée (et non plus avoir besoin de lui préciser telle ou telle feuille comme c'est le cas dans le code actuel).

2) J'aimerais qu'il donne comme nom au pdf crée, le texte de la cellule A1.

Merci du coup de pouce
Bonne soirée

Code:
Sub PDFDD()

    Sheets("1er SemestreDD").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\PDF\1er SemestreDD.pdf", Quality:=xlQualityMinimum, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
    
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Modifier un code pour enregistrer en PDF

Bonjour,

essaye peut être ceci :
Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\PDF\" & Range("A1").Value, Quality:=xlQualityMinimum, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    False

il y aura lieu de rajouter l'extension, si celle-ci n'est pas présente dans la cellule A1 :
Code:
& Range("A1").Value & ".PDF"

bonne journée
@+
 

ipotez

XLDnaute Occasionnel
Re : Modifier un code pour enregistrer en PDF

Oops, petit problème, je pensais facilement compiler les deux codes suivants mais ça bug :(


1er code permet d'enregistrer le classeur dans un dossier défini avec comme nom la concaténation de la cellule e1 et g1

Code:
Sub PDF()   
Application.DisplayAlerts = False
nom = ActiveSheet.Range("e1")
prénom = ActiveSheet.Range("g1")
nomsave = "C:\PDF\" & nom & " " & prénom & ".xlsm"
ThisWorkbook.SaveAs (nomsave)
Application.DisplayAlerts = True

2nd code qui permet d'enregistrer le classeur en pdf sous le nom de la cellule e1

Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\PDF\" & Range("e1").Value & ".PDF", Quality:=xlQualityMinimum,
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub

J'aimerais compiler les deux codes pour qu'il m'enregistrer le classeur en .xls dans le dossier défini et qu'ensuite il lance la création du pdf.
Ps : dans le code du pdf, j'aimerais aussi concatener E1 et G1 pour nommer le pdf.

Merci encore pour le coup de pouce
Damien
 

Pierrot93

XLDnaute Barbatruc
Re : Modifier un code pour enregistrer en PDF

Re,

peut être comme ceci :
Code:
Sub test()
nom = ActiveSheet.Range("e1")
prénom = ActiveSheet.Range("g1")
nomsave = "C:\PDF\" & nom & " " & prénom
ThisWorkbook.SaveAs nomsave, xlExcel8

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\PDF\" & Range("E1").Value & Range("G1").Value & ".PDF", Quality:=xlQualityMinimum, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

A vérifier le contenu des cellules de la feuille active...
 

ipotez

XLDnaute Occasionnel
Re : Modifier un code pour enregistrer en PDF

j'ai pas trop compris ça : ThisWorkbook.SaveAs nomsave, xlExcel8
Mais j'ai réussi grâce à toi à compiler le nom de fichier comme je le souhaitais, merci encore, ça fonctionne !
Bonne journée
Damien
 

ipotez

XLDnaute Occasionnel
Re : Modifier un code pour enregistrer en PDF

Cela ne fonctionnait pas alors j'ai modifié comme ceci et maintenant ça passe, tu crois que je risque d'avoir des problèmes avec les versions antérieurs a 2007 ?

Code:
Sub save()  
Application.DisplayAlerts = False
nom = Sheets("1er trim").Range("e1")
prénom = Sheets("1er trim").Range("j1")
nomsave = "C:\PLANNING-ESTUAIRES\" & nom & " " & prénom & ".xlsm"
ThisWorkbook.SaveAs (nomsave)
Application.DisplayAlerts = True

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\PLANNING-ESTUAIRES\PDF\" & Range("E1").Value & " " & Range("j1").Value & ".PDF", Quality:=xlQualityMinimum, _
 IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
 False    
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Modifier un code pour enregistrer en PDF

Re,

oui les fichiers .xlsm ne sont pas pris en charge sous 2003... regarde dans l'aide vba, curseur positionné sur le mot "saveas" et touche de fonction F1, vérifie le "fileformat"...

quand tu dis cela ne fonctionne pas .. cela veut dire quoi, message d'erreur ou pas le résultat attendu, et quel est celui obtenu ?
 

ipotez

XLDnaute Occasionnel
Re : Modifier un code pour enregistrer en PDF

Au temps pour moi, ça passe très bien, j'avais dû commettre une autre erreur.

Effectivement il est plus pertinent de l'enregistrer dans une version compatible avec 2003.

Merci encore et bonne journée.
Damien
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 379
Messages
2 087 767
Membres
103 662
dernier inscrit
rterterert