XL 2019 transformer un fichier excel en PDF à l'aide d'un bouton

crazyguismo

XLDnaute Nouveau
Bonjour

Je suis nouveaux que ce forum, j'essai d'automatisé certains documents et la je suis en face d'un petit problème.
Voila je souhaite transformer une feuille excel en PDF à l'aide d'un bouton.
Pouvez-vous m'aider pour cette astuce.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour le fil,
Avec XL2007 le fichier de JM marche correctement.
Le convertisseur est visible ici :
3.jpg
 

crazyguismo

XLDnaute Nouveau
je doit vraiment mal faire quelques chose car ca ne fonctionne vraiment, ma version d'Excel est 2019.
Je vous joins la macro que j'ai modifié.
une visualisation avant enregistrement est elle possible, il me semble que oui, openafterpublish doit être à true non?

Dim lerep As String
Sheets("demande_de_devis").Select
'Exporter en pdf vers nouveau fichier

ActiveSheet.PageSetup.Orientation = xlPortrait
ActiveSheet.PageSetup.Zoom = False
ActiveSheet.PageSetup.FitToPagesWide = 1
ActiveSheet.PageSetup.FitToPagesTall = 1
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 'From:=1, To:=1, OpenAfterPublish:=False

whith Sheets("demande_de_devis") & Range("F1").Value = Me.label_info.Caption
Sheets("demande_de_devis").ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\j.muller\Documents\Excel sources\" & ("H12")
 

crazyguismo

XLDnaute Nouveau
finalement j'ai pas mal chercher et essayer de nouveaux code et du coup j'ai repris le votre sylvanu

et j'ai de nouveau un soucis décidement

Sub enregistrement_PDF()
Dim Ledossier As String, Leclient As String, LeRep As String
Ledossier = Range("F1").Value
Leclient = Range("H12").Value
LeRep = "C:\Users\inconnu\Desktop\demande de devis" & "\H12\" ' ? adapter
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
LeRep & Ledossier & "_" & Leclient & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
from:=1, To:=1, OpenAfterpublish:=false

lorsque je charge le débogage une fenêtre d'erreur s'affiche comme quoi le fichier ne s'est pas enregistré.

Dans l'attente de vos retour.
 

monnot

XLDnaute Nouveau
e ce forum, j'essai d'automatisé certains documents et la je suis en face d'un petit problème.
Voila je souhaite transformer une feuille excel en PDF à l'aide d'un bouton.
Pouvez-vous m'aider pour cette astuce.
Bonjour ;

Il faut dans un premier temps créer une macro du style :

VB:
Sub ExportPDF()
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
    
    Application.ScreenUpdating = False
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:="c:\temp\test.pdf", _
            OpenAfterPublish:=False

    If Dir("c:\temp\test.pdf") <> "" Then
           Rep = MsgBox("PDF Sauvegardé avec succés", vbYesonly, "Enregistrement")
    Else
    
    End If
    Application.ScreenUpdating = True
End Sub

(tu peux affiner en mettant des variables pour générer ton nom de fichier, par exemple en fonction du contenu d'une cellule...)
Dans la macro, j'ai ajouté un petit contrôle qui teste que le fichier a bien été créé dans le répertoire de destination. (utile parfois si tu enregistres sur un lecteur réseau par exemple, ou si tu as des noms de fichiers qui changent en fonction du contenu d'une cellule, de l'heure etc)

Ensuite dans le menu développeur tu crées un bouton de contrôle de formulaire auquel tu affectes ta macro.
Ton fichier doit être au format xlsm pour prendre en charge les macros.
 

Discussions similaires

Statistiques des forums

Discussions
312 298
Messages
2 086 979
Membres
103 417
dernier inscrit
abaabdelghani