Modifier un code pour enregistrer en PDF

  • Initiateur de la discussion Initiateur de la discussion ipotez
  • Date de début Date de début

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 !

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
 
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
@+
 
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
 
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...
 
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
 
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
 
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 ?
 
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
 
- 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
245
Réponses
3
Affichages
672
Réponses
3
Affichages
887
Réponses
10
Affichages
547
Retour