J'utilise le code suivant pour exporter les feuilles sélectionnées d'Excel 2010 vers un fichier pdf unique ...
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="C:\temp.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Mon problème est qu'il exporte uniquement la première feuille. Des idées?
Une fois que vous avez sélectionné un groupe de feuilles, vous pouvez utiliser Sélection
Considérer:
Sub luxation()
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="C:\TestFolder\temp.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub
EDIT # 1:
Des tests supplémentaires ont révélé que cette technique dépend du groupe de cellules sélectionné de chaque feuille de calcul. Pour obtenir une sortie complète, utilisez quelque chose comme:
Sub Macro1()
Sheets("Sheet1").Activate
ActiveSheet.UsedRange.Select
Sheets("Sheet2").Activate
ActiveSheet.UsedRange.Select
Sheets("Sheet3").Activate
ActiveSheet.UsedRange.Select
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\James\Desktop\pdfmaker.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub
Je suis assez mélangé à ce sujet. J'utilise également Excel 2010. J'ai essayé d'enregistrer deux feuilles en tant que fichier simple PDF en utilisant:
ThisWorkbook.Sheets(Array(1,2)).Select
**Selection**.ExportAsFixedFormat xlTypePDF, FileName & ".pdf", , , False
mais je n'ai rien d'autre que des pages blanches. Cela a sauvé les deux feuilles, mais rien sur elles. Ce n'est que lorsque j'ai utilisé:
ThisWorkbook.Sheets(Array(1,2)).Select
**ActiveSheet**.ExportAsFixedFormat xlTypePDF, FileName & ".pdf", , , False
que j’ai reçu un seul fichier PDF avec les deux feuilles).
J'ai essayé de sauvegarder manuellement ces deux pages en utilisant Sélection dans la boîte de dialogue Options pour enregistrer les deux feuilles que j'avais sélectionnées, mais j'avais des pages vierges. Lorsque j'ai essayé l'option Active Sheet (s), j'ai obtenu ce que je voulais. Lorsque j'ai enregistré cela sous forme de macro, Excel a utilisé ActiveSheet pour publier le PDF. Ce qui donne?
c’est ce que j’ai trouvé car j’avais des problèmes avec la réponse @ asp8811 (peut-être mes propres difficultés)
'ceci fera le mettre les 2 premières feuilles dans un pdf' Note chaque ws devrait être contrôlé avec des sauts de page pour l'impression qui est un peu fastidieux 'ceci mettra explicitement le pdf dans le répertoire courant
Sub luxation2()
Dim Filename As String
Filename = "temp201"
Dim shtAry()
ReDim shtAry(1) ' this is an array of length 2
For i = 1 To 2
shtAry(i - 1) = Sheets(i).Name
Debug.Print Sheets(i).Name
Next i
Sheets(shtAry).Select
Debug.Print ThisWorkbook.Path & "\"
ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "/" & Filename & ".pdf", , , False
End Sub