XL 2016 Comment réduire la taille d'un fichier pdf enregistré depuis excel

MINIZ

XLDnaute Nouveau
Bonjour,
j'ai créer un petit programme en vba qui m’enregistre une feuille A4 de classeur en pdf. Tout fonctionne sauf que le fichier pdf avoisine les 400ko et que le serveur où je dois upload mon fichier m'autorise 200ko max.
Avez vous une idée?
J'ai essayé en passant par imprimer => imprimante "pdf creator" cela me donne 48Mo sauf que je préfère la solution d'enregistrer sous .pdf car je peux enregistrer et donner le nom que je veux...
Ce petit programme est à destination d'une personne qui ne maîtrise pas l'informatique.

voici mon code pr enregistrer en pdf
VB:
Sub ImprimePDF()
Dim numfacture As Integer
'Enregistre le fichier excel
        ActiveWorkbook.Save
'Imprime en PDF et rajoute le numéro de facture
    Dim fichier As String
    fichier = "D:\Factures\Facture-" & "-" & [F2].Value & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichier, Quality:=xlQualityMinimum, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
 

zebanx

XLDnaute Accro
Bonjour Miniz

Un petit code qui semble aller très bien pour exporter en PNG, beaucoup moins lourd.
Bien sûr la source de zone d'export est à modifier.

Et sa source de départ pour le code.

@+

VB:
Sub exportpng()
Dim Plage As Range

Set Plage = Application.InputBox(Prompt:="Sélectionner votre zone: (Ex. A1:B10) ", _
                         Title:="Sélection de zone ", Default:="$A$1", Type:=8)

Application.ScreenUpdating = False
  Workbooks.Add
    Plage.CopyPicture
      ActiveSheet.Paste

With ActiveSheet.ChartObjects.Add(0, 0, _
                    Selection.Width, Selection.Height).Chart
    .Paste
    .Export "C:\Users\Duchateau\Desktop\Test.PNG", "PNG"
End With

ActiveWorkbook.Close False

End Sub
 

MINIZ

XLDnaute Nouveau
Salut
Bonjour Miniz

Un petit code qui semble aller très bien pour exporter en PNG, beaucoup moins lourd.
Bien sûr la source de zone d'export est à modifier.

Et sa source de départ pour le code.

@+

VB:
Sub exportpng()
Dim Plage As Range

Set Plage = Application.InputBox(Prompt:="Sélectionner votre zone: (Ex. A1:B10) ", _
                         Title:="Sélection de zone ", Default:="$A$1", Type:=8)

Application.ScreenUpdating = False
  Workbooks.Add
    Plage.CopyPicture
      ActiveSheet.Paste

With ActiveSheet.ChartObjects.Add(0, 0, _
                    Selection.Width, Selection.Height).Chart
    .Paste
    .Export "C:\Users\Duchateau\Desktop\Test.PNG", "PNG"
End With

ActiveWorkbook.Close False

End Sub
Salut, malheureusement je ne peux que transférer la facture en pdf ☹️
 

zebanx

XLDnaute Accro
Re-Miniz et bonjour à Temjeh

Ok pour la réponse #5 mais Temjeh a parfaitement raison, pour une simple facture la taille doit être beaucoup plus petite que cela.

Un exemple à 20K et pourtant il y a deux logos.
Données bidons bien sûr mais c'est une facture classique.

Il est possible que votre fichier concerne des images en BITMAP qui soient beaucoup trop lourdes.
A vous lire.
 

Pièces jointes

  • 20190703163049.pdf
    20.3 KB · Affichages: 5

MINIZ

XLDnaute Nouveau
Je comprend pas pourtant j'ai pas d'image, juste des calculs et des macros!!!
J'ai essayé la méthode de la plage mais ca ne change pas le poids ;-(

je vous joint le fichier si des fois cela vous aide.

Cordialement
 

Pièces jointes

  • Facturation.xlsm
    55.4 KB · Affichages: 11

zebanx

XLDnaute Accro
Bonjour MINIZ, DRANREB, TEMJEH, le forum

Un code testé qui imprime avec une image supplémentaire pour 42Ko au final avec pdf creator
On peut imprimer une page ou toutes les pages sur le workbook.
Ici, choix du paramétrage : sheet.name + range("G2")

xl-ment
 

Pièces jointes

  • Facturation.xlsm
    106 KB · Affichages: 12
  • Facture_593.pdf
    41.1 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 247
Messages
2 086 591
Membres
103 248
dernier inscrit
Happycat