Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1428to1432
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable Arbeitsblätter als pdf exportieren

Variable Arbeitsblätter als pdf exportieren
10.06.2015 08:59:48
Sarah
Hallo zusammen,
ich habe eine Datei in der bestimmte Arbeitsblätter als eine pdf-Datei abgespeichert werden sollen.
In Tabelle1 ist eine Auswahlliste und alle Arbeitsblätter die hier mit einem x vermerkt werden sollen gespeichert werden.
Wie kann ich das mit einem vba code lösen?
Vielen Dank für die Hilfe!
Sarah

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable Arbeitsblätter als pdf exportieren
10.06.2015 10:17:02
Nepumuk
Hallo,
wo genau (in Spalte ab Zeile) befinden sich die Namen?
Gruß
Nepumuk

AW: Variable Arbeitsblätter als pdf exportieren
10.06.2015 10:33:50
fcs
Hallo Sarah,
nachfolgend ein entsprechendes Makro, dass du ggf. noch ein wenig anpassen muss.
Gruß
Franz
Sub PDF_Speichern()
Dim arrSheets() As String, Zeile As Long, intS As Integer, objSheet As Object
Dim objSheetAktiv As Object
Dim strSheet As String, strDateiPDF
Dim wksAuswahl As Worksheet
Dim StatusMapPaperSize As Boolean
'Die nachfolgenden Konstanten ggf. anpassen
Const SpaName As Long = 1   'Spalte A - Spalte mit den Blattnamen
Const SpaX  As Long = 2     'Spalte B - Spalte mit den "x"
Const ZeiName_1 As Long = 2 'Zeile mit dem 1. Blattnamen
Const varAuswahl As Variant = 1 'Blatt mit derAuswahlliste, Index-Nr. _
ggf. anpassen oder Blattname in Anführungszeichen verwenden
On Error GoTo Fehler
With ActiveWorkbook
'Datei-Auswahl-Dialog für Name der PDF-Datei anzeigen
strDateiPDF = Application.GetSaveAsFilename(InitialFileName:= _
Left(.Name, InStrRev(.Name, ".") - 1) & Format(Now, " YYYY-MM-DD hhmmss"), _
FileFilter:="PDF-Datei (*.pdf),*.pdf", _
Title:="Bitte Dateiname für PDF-Datei eingeben/auswählen")
End With
If strDateiPDF = False Then Exit Sub
'Blatt mit mit Auswahlliste setzen
Set wksAuswahl = ActiveWorkbook.Worksheets(varAuswahl)
'Option - Inhalt für Papierformate A4 oder 8.5 x 11 Zoll skalieren
StatusMapPaperSize = Application.MapPaperSize 'Status merken
Application.MapPaperSize = False 'Option deaktivieren
Set objSheetAktiv = ActiveSheet 'aktives Blatt merken
'markierte Blattnamen in Datenarray sammeln
With wksAuswahl
For Zeile = ZeiName_1 To .Cells(.Rows.Count, SpaName).End(xlUp).Row
strSheet = .Cells(Zeile, SpaName).Text 'Blattname in Spalte A
'Prüfen, ob in Spalte B der Zeile ein "x" oder "X" eingetragen ist
If UCase(.Cells(Zeile, SpaX).Text) = "X" Then
Set objSheet = ActiveWorkbook.Worksheets(strSheet)
intS = intS + 1
ReDim Preserve arrSheets(1 To intS)
'Blattname aus Spalte A in
arrSheets(intS) = strSheet
End If
Next_Zeile:
Next Zeile
End With
If intS > 0 Then
'markierte Blätter selektieren und als PDF-Speichern.
ActiveWorkbook.Sheets(arrSheets).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strDateiPDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Else
MsgBox "Es wurden keine Blätter zur Ausgabe ins PDF gewählt!", _
vbOKOnly, "PDF erzeugen"
End If
Fehler:
With Err
Select Case .Number
Case 0 'alles Ok
Case 9 'Index-Fehler - Blatt mit Name existiert nicht
If MsgBox("Index-Fehler - Blatt mit Name """ & strSheet & """ existiert nicht", _
vbRetryCancel, "PDF erzeugen") = vbRetry Then
Resume Next_Zeile
End If
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
objSheetAktiv.Select
Application.MapPaperSize = StatusMapPaperSize 'Option zurücksetzen
End Sub

Anzeige
AW: Variable Arbeitsblätter als pdf exportieren
10.06.2015 13:10:27
Sarah
Hallo Franz,
vielen Dank! Das funktioniert super. Hab die entsprechenden Sachen angepasst.
Nun noch eine Frage: ich würde gerne den Auswahldialog zum Name und Speicherort auswählen ersetzen durch einen festen Namen und Ort.
Hast du dafür vielleicht auch eine Lösung?
Viele Grüße
Sarah

AW: Variable Arbeitsblätter als pdf exportieren
10.06.2015 13:40:57
Rudi
Hallo,
ersetzte das
  With ActiveWorkbook
'Datei-Auswahl-Dialog für Name der PDF-Datei anzeigen
strDateiPDF = Application.GetSaveAsFilename(InitialFileName:= _
Left(.Name, InStrRev(.Name, ".") - 1) & Format(Now, " YYYY-MM-DD hhmmss"), _
FileFilter:="PDF-Datei (*.pdf),*.pdf", _
Title:="Bitte Dateiname für PDF-Datei eingeben/auswählen")
End With
If strDateiPDF = False Then Exit Sub

durch
strDateiPDF = "dein Pfad und Dateiname"

Gruß
Rudi

Anzeige
AW: Variable Arbeitsblätter als pdf exportieren
10.06.2015 14:10:31
Sarah
Hallo Rudi,
super!
Danke euch beiden für die Hilfe!
Viele Grüße!
Sarah

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige