Makro-Code

Bild

Betrifft: Makro-Code
von: Chris
Geschrieben am: 24.10.2015 13:03:07

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

Bild

Betrifft: AW: Makro-Code
von: Daniel
Geschrieben am: 24.10.2015 13:20:38
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

Bild

Betrifft: AW: Makro-Code
von: Chris
Geschrieben am: 24.10.2015 13:51:25
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

Bild

Betrifft: AW: Makro-Code
von: Daniel
Geschrieben am: 24.10.2015 14:17:29
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

Bild

Betrifft: AW: Makro-Code
von: ransi
Geschrieben am: 24.10.2015 13:22:23
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

Bild

Betrifft: AW: Makro-Code
von: Chris
Geschrieben am: 26.10.2015 09:12:42
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


Bild

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

Bild

Betrifft: AW: Makro-Code
von: Esmo
Geschrieben am: 30.10.2015 19:45:17
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

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Auswertung Option Button"