Servus,
Ich möchte aus einer Excel Mappe 2-5 Tabellenblätter in einer
pdf exportieren. Und zwar jeweils nur Teilbereiche (quasi druckbereiche). Dafür habe ich folgendes Makro geschrieben:
Sub pdf_drucken()
Dim IntZeilenZahl, i As Integer
Dim BoBlatt7, BoBlatt8, BoBlatt9, BoBlatt10 As Boolean
Dim StrPfad, StrName, StrBereich As String
Dim wks6, wks7, wks8, wks9, wks10 As Object
Call Anfang
BoBlatt7 = False
BoBlatt8 = False
BoBlatt9 = False
BoBlatt10 = False
StrBereich = ""
StrPfad = ActiveWorkbook.Path
StrName = ActiveWorkbook.Name
For i = 6 To 10
IntZeilenZahl = Sheets(i).Cells(Rows.Count, 3).End(xlUp).Row
If IntZeilenZahl > 9 Then
With Sheets(i).PageSetup
.PrintArea = "A1:G" & IntZeilenZahl
.Orientation = xlPortrait
.PaperSize = xlPaperA4
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
End With
Select Case i
Case Is = 7
BoBlatt7 = True
Case Is = 8
BoBlatt8 = True
Case Is = 9
BoBlatt9 = True
Case Is = 10
BoBlatt10 = True
Case Else
GoTo Fehler
End Select
End If
Next i
Set wks6 = Sheets(6) 'StrBereich = Chr(34) & Sheets(6).Name & Chr(34)
If BoBlatt7 = True Then Set wks7 = Sheets(7) 'StrBereich = StrBereich & ", " & Chr(34) & Sheets(7).Name & Chr(34)
If BoBlatt8 = True Then Set wks8 = Sheets(8) 'StrBereich = StrBereich & ", " & Chr(34) & Sheets(8).Name & Chr(34)
If BoBlatt9 = True Then Set wks9 = Sheets(9) 'StrBereich = StrBereich & ", " & Chr(34) & Sheets(9).Name & Chr(34)
If BoBlatt10 = True Then Set wks10 = Sheets(10) 'StrBereich = StrBereich & ", " & Chr(34) & Sheets(10).Name & Chr(34)
'msgbox StrBereich
With Sheets(Array(wks6, wks7, wks8, wks9, wks10))
.ExportAsFixedFormat , _
Type:=xlTypePDF, _
Filname:=StrPfad & StrName & ".pdf", _
Quality:=xlQualityStandard, _
ignoreprintareas:=False, _
openafterpublish:=True
End With
Ich bekomme jedesmal in der Zeile "with Sheets(Array(wks6, wks7...))" sie Fehlermeldung: Laufzeitfehler 9, index außerhalb des gültigen bereichs. Ich habe auch schon versucht die Tabellenblattnamen in einer Stringvariablen darzustellen und diese anstelle von wks6-10 einzufügen( also "Sheets(Array(strbereich))) -siehe kommentarzeilen-mit der gleichen Fehlermeldung.
Kann mir jemand sagen wie das besser funktioniert?
Zum Thema "als pdf Drucken": Kann das so funktionieren oder habe ich in meiner Unwissenheit wieder etwas falsch gemacht? (Es soll sich nur noch die "speichern unter" Meldung öffnen, mit dem Namen und Pfad der aktuellen Excel Datei und dem Dateityp pdf Voreingestellt)
liebe Grüße & herzlichen Dank schonmal
SirSolaris