Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1452to1456
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

Makro-Code

Makro-Code
24.10.2015 13:03:07
Chris
Hallo zusammen,
ich habe nun schon einige Stunden mit einer Internetrecherche verbracht, aber bin nicht zum Ziel gekommen.
Folgendes Problem, wir haben in der Arbeit eine Excel-Arbeitsmappe mit 30 oder mehr Tabellenblättern. Die Tabellenblätter müssen als PDF abgespeichert werden. Dies wird aktuell noch manuell gemacht. Ich habe mir gedacht, ich kann hier ein Makro programmieren.
Ziel: Auf ein Knopfdruck werden sämtliche PDF-Dateien (ca. 25 Dateien mit unterschiedlichsten Tabellenblätter) erstellt. Namen werden fest vordefiniert, die ändern sich nicht und der Speicherpfad soll immer der sein, wo die Excelarbeitsmappe abgelegt ist.
Könnt ihr mir dabei helfen? Vielen Dank bereits im Voraus...
Grüße, Chris

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro-Code
24.10.2015 13:20:38
Daniel
Hi
du kannst die Blätter mit Speichern unter als PDF speichern.
sieht als Code so aus:
Sub Makro1()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:= ThisWorkbook.Path & "\" & ws.Name, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Next
End Sub
Gruss Daniel

AW: Makro-Code
24.10.2015 13:51:25
Chris
Vielen Dank für eure schnelle Antwort und für eure Mühe. Leider führt es nicht zu dem gewünschten Ergebnis bei meiner Testdatei. Ich verwende Excel für Mac - in der Arbeit arbeiten wir mit Windowsrechner. Das macht aber denke ich mal keinen Unterschied.
Meine Testdatei hat 4 Tabellenblätter mit den Namen: 11 , 22 , 33 , 44 !
Und jetzt will ich z.B. dass der Makro das Tabellenblatt 11, 22 und 44 auswählt und als PDF im Speicherpfad der Excelmappe unter dem Namen Test1 abspeichert. Anschließend soll er z.B. Tabellenblatt 22 und 33 auswählen und als PDF unter dem Speicherpfad der Excelmappe unter dem Namen Test2 abspeichern. Versteht ihr was ich meine?
Wenn es euch keine Umstände bereitet, könnt ihr ja mal ein Code für das Beispiel schreiben, dann finde ich mich bestimmt zurecht. Ich habe es auch über den Recorder versucht, aber es kommt nicht wirklich was verwertbares raus.
Viele Grüße
Chris

Anzeige
AW: Makro-Code
24.10.2015 14:17:29
Daniel
Hi
soweit ich weiss, verwenden Mac und Windwos unterschiedliche Ordner-Trenner
im Windows ist es der Backslash "\", beim Mac ein anderer.
den solltest du ja kennen und kannst ihn dann anstelle des Backslashs in deinen Code einsetzen.
wenn der Code auf beiden Systemen laufen soll, kannst du das Ordertrennzeichen auch abfragen:
Filename:= ThisWorkbook.Path & application.PathSeparator & ws.Name, _

Gruß Daniel

AW: Makro-Code
24.10.2015 13:22:23
ransi
Hallo Chris,
Ich hab mal den Recorder bemüht und de Code etwas angepasst.
Hilft das weiter ?
Sub machs()
    Dim I As Integer
    For I = 1 To ThisWorkbook.Sheets.Count
        Sheets(I).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            ThisWorkbook.Path & "\" & Sheets(I).Name & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            False
    Next
End Sub


ransi

Anzeige
AW: Makro-Code
26.10.2015 09:12:42
Chris
Hallo zusammen,
ich habe nun folgenden funktionierenden Code im Einsatz. Jetzt besteht nur ein Problem, die PDF-Seiten haben kein Inhalt. Wie kann ich das lösen oder an was liegt es? Danke für eure Hilfe! Und eine zweite Frage, wie kann ich im selben Makro eine weitere PDF-Datei erstellen? Einfach selben Code drunter kopieren? Grüße, Chris
Sub PDF()
Sheets(Array("Deckblatt", "K_700100", "K_700105")).Select
Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\Test.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub

Anzeige
AW: Makro-Code
26.10.2015 10:40:11
Chris
Hat jmd. ein schnellen Tipp für mich?

AW: Makro-Code
30.10.2015 19:45:17
Esmo
Moin!
Der Code funktioniert, obwohl er nicht das tut, was er soll?
In der Excel-Hilfe für ".ExportAsFixedFormat" steht, daß das Objekt, auf das es sich bezieht, ein Zellbereich sein soll. Stimmt nicht ganz, ein Arbeitsblatt oder Arbeitsmappe gehen auch. Du selektierst aber 3 Arbeitsblätter.
Abhilfe: Die 3 Arbeitsblätter kopieren (in eine temporäre Mappe), abspeichern und die temporäre Mappe löschen. Dabei müssen wir den Namen vorher definieren, weil bei einer neuen, noch nicht gespeicherten Mappe der Pfad leer ist.
Sub PDF()
Dim PDFname As String
PDFname = ThisWorkbook.Path & "\test.pdf"
' jetzt die 3 Blätter in eine neue Arbeitsmappe kopieren
Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Copy
' Diese exportieren
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFname, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, openAfterPublish:=True
'Erzeugte Datei schließen
ActiveWorkbook.Close savechanges:=False
' Nächste Datei erzeugen
PDFname = ThisWorkbook.Path & "\test2.pdf"
Sheets(Array("Sheet4", "Sheet5")).Copy
ActiveWorkbook.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=PDFname, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
openAfterPublish:=True
'Erzeugte Datei schließen
ActiveWorkbook.Close savechanges:=False
End Sub

Schönes WE
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige