Bonjour a tous et merci pour votre aide.
Apres de longues recherhches je n'arrive pas a resoudre mon probleme... Je souhaiterai par VBA imprimer en PDF des ranges des différentes worksheet sur un seul et meme PDF.
AUtrement dit par exemple sur la feuille1 j'ai la range A1:C28 , sur la feuille2 la range C58:E99 et sur la feuille 3 la range C20 58...
VOici le code qui fonctionne pour l'impression de plusieurs sheet et non range;..
Sub Enregistrer_1_seul_PDF()
Dim sh As Worksheet, i&, Chemin$
Dim oSh As Object, pfile As Object
Dim pIni As Variant
Application.ScreenUpdating = 0
'For i = 2 To Sheets.Count
With Worksheets("Graphes").PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
.CenterVertically = True
End With
With Worksheets("Analyses").PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
.CenterVertically = True
End With
With Worksheets("Graph").PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
.CenterVertically = True
End With
'Next
Set sh = ActiveSheet
Sheets(Array("Graphes", "Graph", "Analyses")).Select
pIni = ThisWorkbook.Path '"C:\Users\Martial\Documents" 'Si tu veux ouvrir diriger vers un répertoire particulier
Set oSh = CreateObject("Shell.Application")
On Error Resume Next
'Si tu veux voir les fichiers déjà présent, il faut rajouter + &H4000 après + &H200
Set pfile = oSh.BrowseForFolder(0&, "Sélectionnez un dossier", &H1 + &H40 + &H200, pIni)
If Not pfile Is Nothing Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pfile.items.Item.Path & "\" & Worksheets("Enregistrement").Cells(1, 3).Value & ".pdf"
End If
On Error GoTo 0
Set pIni = Nothing
Set pfile = Nothing
Set oSh = Nothing
sh.Select
Application.ScreenUpdating = -1
End Sub
Merci pour votre aide .
Cordialement
Apres de longues recherhches je n'arrive pas a resoudre mon probleme... Je souhaiterai par VBA imprimer en PDF des ranges des différentes worksheet sur un seul et meme PDF.
AUtrement dit par exemple sur la feuille1 j'ai la range A1:C28 , sur la feuille2 la range C58:E99 et sur la feuille 3 la range C20
VOici le code qui fonctionne pour l'impression de plusieurs sheet et non range;..
Sub Enregistrer_1_seul_PDF()
Dim sh As Worksheet, i&, Chemin$
Dim oSh As Object, pfile As Object
Dim pIni As Variant
Application.ScreenUpdating = 0
'For i = 2 To Sheets.Count
With Worksheets("Graphes").PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
.CenterVertically = True
End With
With Worksheets("Analyses").PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
.CenterVertically = True
End With
With Worksheets("Graph").PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
.CenterVertically = True
End With
'Next
Set sh = ActiveSheet
Sheets(Array("Graphes", "Graph", "Analyses")).Select
pIni = ThisWorkbook.Path '"C:\Users\Martial\Documents" 'Si tu veux ouvrir diriger vers un répertoire particulier
Set oSh = CreateObject("Shell.Application")
On Error Resume Next
'Si tu veux voir les fichiers déjà présent, il faut rajouter + &H4000 après + &H200
Set pfile = oSh.BrowseForFolder(0&, "Sélectionnez un dossier", &H1 + &H40 + &H200, pIni)
If Not pfile Is Nothing Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pfile.items.Item.Path & "\" & Worksheets("Enregistrement").Cells(1, 3).Value & ".pdf"
End If
On Error GoTo 0
Set pIni = Nothing
Set pfile = Nothing
Set oSh = Nothing
sh.Select
Application.ScreenUpdating = -1
End Sub
Merci pour votre aide .
Cordialement