Je dois exporter plusieurs feuilles Excel dans un seul file PDF. J'utilise actuellement ce qui suit:
Sub CreatePDF() Sheets("ReportPage1").Select Range("Print_Area").Select Sheets("ReportPage2").Select Range("Print_Area").Select Sheets("ReportPage3").Select Range("Print_Area").Select ThisWorkbook.Sheets(Array("ReportPage1", "ReportPage2", "ReportPage3")).Select Selection.ExportAsFixedFormat _ Type:=xlTypePDF, _ FileName:="C:\temp\temp.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True Sheets("ReportPage1").Select Range("A1").Select End Sub
Le problème est que toutes les zones d'printing sont différentes. Le file PDF généré utilise l'adresse de plage de la zone d'printing à partir de ReportPage1 pour toutes les pages.
J'ai essayé dans Excel lui-même, en dehors de VBA, et quand j'ai sélectionné, par exemple, ReportPage1! A1: E30 et ReportPage2! A1: F70, lorsque je sélectionne les deux feuilles, cela changera les plages sélectionnées en ReportPage1! A1: E30 et ReportPage2 ! A1: E30.
Des idées pour résoudre ceci?
Toute aide sera très appréciée.
D'accord, je l'ai résolu. Si je ne sélectionne aucune plage sur les pages spécifiques, il enverra automatiquement la gamme Print_Area de chaque feuille.
Sub CreatePDF() ThisWorkbook.Sheets(Array("ReportPage1", "ReportPage2", "ReportPage3")).Select Sheets("ReportPage1").Activate ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ FileName:="C:\temp\temp.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True Sheets("ReportPage1").Select Range("A1").Select End Sub