AW: Makro PDF-Datei erstellen + Name/Blätter aus Zelle
21.01.2016 10:59:18
fcs
Hallo Chris,
das könnte man evtl. wie folgt lösen.
Die zu speichernde PDF-Variante muss vor dem Start des Makros in Spalte A selektiert werden.
Gruß
Franz
'Zu speichernde PDF Variante wird aus aktiver Zelle in Spalte A ausgelesen
Sub Make_PDF()
Dim wksMakro As Worksheet
Dim strPDF As String
Dim rngVariante As Range
Set rngVariante = ActiveCell
Dim varSheets(), Zelle As Range, intSheet As Integer
Set wksMakro = ActiveSheet
If wksMakro.Name "Makro" Then
MsgBox "Makro darf nur gestartet werden, wenn Blatt ""Makro"" aktiv ist!", _
vbOKOnly, "Speichern PDF"
Else
'Prüfen, ob PDF-Variante in Spalte A gewählt wurde
If rngVariante.Cells.Count = 1 And rngVariante.Column = 1 And rngVariante "" Then
Select Case rngVariante.Row
Case Is >= 4
If MsgBox("Variante """ & rngVariante.Text & """ als PDF speichern?", _
vbQuestion + vbOKCancel, "PDF erstellen") = vbOK Then
'Name der PDF-Datei
strPDF = ThisWorkbook.Path & Application.PathSeparator & rngVariante.Text & ".pdf"
'Blattnamen zur Variante in Datenarray schreiben
With wksMakro
For Each Zelle In .Range(rngVariante.Offset(0, 1), .Cells(rngVariante.Row, .Columns. _
Count).End(xlToLeft)).Cells
If Zelle.Text "" Then
intSheet = intSheet + 1
ReDim Preserve varSheets(1 To intSheet)
varSheets(intSheet) = Zelle.Text
End If
Next
End With
If intSheet > 0 Then
'PDF speichern
ActiveWorkbook.Sheets(varSheets).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strPDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Erase varSheets
End If
Sheets("Makro").Select
End If
Case Else
End Select
Else
MsgBox "Bitte Zelle der zu speichernde Variante in Spalte A vor dem Start des Makros auswä _
hlen!", _
vbOKOnly, "Speichern PDF"
End If
End If
End Sub