Imprimer en PDF

Bonjour,

Je souhaite imprimer un tableur en PDF, le code que j'ai actuellement fonctionne mais le problème est que, le fichier PDF est beaucoup trop large .. Regardez la PJ, vous allez comprendre ..

Voici mon code :

Sub Enregistrer_PDF_et_ouvrir()
'Permet d'enregistrer la feuille 1 en PDF et de l'ouvrir

Dim i As Variant
Dim MonApplication As Object
Dim MonFichier As String
Dim OuvrirFichier As Variant

If MsgBox("Avez-vous bien changé l'indice du document ?", vbYesNo, "Demande de confirmation") = vbYes Then

  With Sheets("Choix des matériels").PageSetup
    .LeftMargin = Application.InchesToPoints(0)
    .RightMargin = Application.InchesToPoints(0)
    .TopMargin = Application.InchesToPoints(0)
    .BottomMargin = Application.InchesToPoints(0)
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
  End With

i = "TSM - " & Sheets("Choix des matériels").Cells(14, 3) & " - " & Sheets("Choix des matériels").Cells(12, 3)

Sheets("Choix des matériels").ExportAsFixedFormat Type:=xlTypePDF, Filename:="E:\INSA - GCE\Projet méthode\Documents internes\Tableau de sélection de matériels\" & i & ".pdf"

Else
MsgBox ("Le fichier n'a pas été enregistré. Veuillez changer l'indice et recommencer l'opération.")
Exit Sub
End If

    'Permet d'ouvrir le fichier qui vient d'être crée
    Set MonApplication = CreateObject("Shell.Application")
    i = "TSM - " & Cells(14, 3) & " - " & Cells(12, 3)
    MonFichier = "E:\INSA - GCE\Projet méthode\Documents internes\Tableau de sélection de matériels\" & i & ".pdf"

    MonApplication.Open (MonFichier)
    OuvrirFichier = True
   Set MonApplication = Nothing

End Sub
15tsm-a-00a001.pdf (143.93 Ko)

Bonjour,

À droite de tes données, n'y aurait-il pas des cellules qui contiendraient des espaces ou autres choses considérées comme des caractères, mais pas nécessairement visibles à l'écran ?

CTRL+FIN (CTRL+END) selon les claviers apportera la sélection à la dernière cellule en bas et à droite.

On y trouve souvent des lignes et des colonnes qui se servent plus. On supprime ces lignes et colonnes inutiles puis l'on enregistre.

Si ces lignes et colonnes sont essentielles, détermine la zone à imprimer.

ric

Bonjour,

avec :

.FitToPagesTall = 1

on demande à ce que la feuille à imprimer tienne sur une page en hauteur; donc forcément si elle a beaucoup de ligne , sa taille sera réduite pour tenir sur une page d’où une largeur réduite également.

Essayer en supprimant cette instruction.

Sinon voir l'aide sur les propriétés de PageSetup ?

A+

Bonjour à tous,

@ AlgoPlus ... j'ai testé la macro sur mon pc. L'instruction .FitToPagesTall = 1 ne semblait pas avoir d'influence, ni d'ailleurs .FitToPagesWide = 1.

J'ai remarqué que le fichier .pdf soumis par Callitek semble être en format paysage ... (zoomer petit pour voir).

J'ai inséré quelques cellules à droite ne contenant que des espaces et j'ai obtenu la même présentation que sur le .pdf soumis par Callitek.

ric

Bonjour Ric,

je ne peux même pas faire de tests, ma version XL est trop ancienne.

A+

Rechercher des sujets similaires à "imprimer pdf"