Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Printout per VBA - in xlsx und PDF

Forumthread: Printout per VBA - in xlsx und PDF

Printout per VBA - in xlsx und PDF
09.05.2023 10:33:11
Tim

Hallo VBA-Gemeinschaft,

nachdem ich hier im Forum auf einen guten Makro gestoßen bin, muss ich nur noch die Feinheiten angehen. Hierzu stecke ich fest und komme einfach nicht weiter. Ich habe mittels Checkboxen eine Prüfung, welches Tabellenblatt gedruckt werden soll. Dies funktioniert auch soweit ganz gut.

Step 1: Ich möchte zuerst aus allen ausgewählten Tabellenreitern eine Datei generieren, die an den Standarddrucker gesendet wird, ohne diese vorab anzusehen.

Step 2: ich möchte je nach Zelleninhalt einen individuellen Pfad (Netzlaufwerk) ansprechen. In Zelle A1 befindet sich beispielsweise DEU, hier ist das Laufwerk via \\nlwDEU1 anzusprechen. Jetzt folgt Step 3

Step 3: jedes ausgewählte Tabellenblatt soll einzeln unter einem Pfad (z.B. \\nlwDEU1\Projekte\" & t & ".xlsx) als xlsx und PDF gespeichert werden. Hier soll allerdings nicht nur der Dateiname, sondern auch der Name des Tabellenreiters gesetzt werden (z. B. DBA - Anlage 1). Bereits vorhandene Dokumente sollen ohne Bestätigung ersetzt bzw. überschrieben werden.

    
    Dim n As Integer
    Dim t As String
    Dim p As Boolean
    Dim s As Worksheet

    For n = 1 To 13

        Select Case n
            Case 1:
                t = "DBA"
                p = Range("H7").Value
                'p = CheckBox1.Value
            Case 2:
                t = "Anlage1"
                p = Range("H8").Value
                'p = CheckBox2.Value
            Case 3:
                t = "Anlage2"
                p = Range("H9").Value
                'p = CheckBox3.Value
            Case 4:
                t = "Anlage3"
                p = Range("H10").Value
                'p = CheckBox4.Value
            Case 5:
                t = "Anlage4"
                p = Range("H11").Value
                'p = CheckBox5.Value
            Case 6:
                t = "Anlage5"
                p = Range("H12").Value
                'p = CheckBox6.Value
            Case 7:
                t = "Anlage6"
                p = Range("H12").Value
                'p = CheckBox6.Value
            Case 8:
                t = "Anlage7"
                p = Range("H12").Value
                'p = CheckBox6.Value
            Case 9:
                t = "Anlage8"
                p = Range("H16").Value
                'p = CheckBox10.Value
            Case 10:
                t = "Anlage9"
                p = Range("H17").Value
                'p = CheckBox11.Value
            Case 11:
                t = "Anlage10"
                p = Range("H18").Value
                'p = CheckBox12.Value
            Case 12:
                t = "Anlage11"
                p = Range("H19").Value
                'p = CheckBox13.Value
            Case 13:
                t = "Anlage12"
                p = Range("H19").Value
                'p = CheckBox13.Value

        End Select
        Set s = Worksheets(t)

        If (p) Then
            
            s.PrintOut preview:=False, printtofile:=True, Collate:=True, prtofilename:="c:\temp\" & t & ".xls", IgnorePrintAreas:=True
            
        End If

    Next

End Sub


Ich hoffe mal wieder auf eure Expertise :)

Lg Tim

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Printout per VBA - in xlsx und PDF
09.05.2023 11:37:35
mumpel
Stichwort für PDF: ExportAsFixedFormat.


AW: Printout per VBA - in xlsx und PDF
09.05.2023 12:02:06
Rudi Maintaire
Hallo,
so?
  strPfad = "\\nlw" & Range("A1") & "1\"
'Code
'Code
'Code
    If p Then
      s.PrintOut
      'Blatt in neue Mappe kopieren und speichern
        s.Copy
        With ActiveWorkbook
          .SaveAs strPfad & s.Name, xlOpenXMLWorkbook                '.xlsx
          .ExportAsFixedFormat xlTypePDF, strPfad & s.Name & ".pdf"  '.pdf
          .Close False
        End With
    End If
Gruß
Rudi


Anzeige
AW: Printout per VBA - in xlsx und PDF
09.05.2023 13:03:53
Tim
Hallo Rudi,

du bist der beste. Klappt wunderbar. Dank dir :)

Lg Tim

;
Anzeige

Infobox / Tutorial

Printout in Excel mit VBA: So funktioniert's


Schritt-für-Schritt-Anleitung

Um einen VBA Printout in Excel zu realisieren, der sowohl im XLSX- als auch im PDF-Format ausgegeben wird, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Füge ein neues Modul ein: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub PrintOutSheets()
       Dim n As Integer
       Dim t As String
       Dim p As Boolean
       Dim s As Worksheet
       Dim strPfad As String
    
       strPfad = "\\nlw" & Range("A1").Value & "1\"
    
       For n = 1 To 13
           Select Case n
               Case 1: t = "DBA"
               Case 2: t = "Anlage1"
               ' Füge weitere Cases für alle Tabellenblätter hinzu
           End Select
           Set s = Worksheets(t)
    
           p = Range("H" & (n + 6)).Value ' Dynamische Zellenreferenzierung
    
           If p Then
               s.PrintOut preview:=False
               ' Speichern als XLSX
               s.Copy
               With ActiveWorkbook
                   .SaveAs strPfad & s.Name, xlOpenXMLWorkbook
                   .ExportAsFixedFormat xlTypePDF, strPfad & s.Name & ".pdf"
                   .Close False
               End With
           End If
       Next n
    End Sub
  4. Passe den Code an: Stelle sicher, dass die Namen der Arbeitsblätter und die Zellreferenzen zu deinem Workbook passen.

  5. Führe das Makro aus: Gehe zurück zu Excel und drücke ALT + F8, wähle PrintOutSheets und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Laufwerk nicht gefunden": Überprüfe den Pfad in Range("A1") und stelle sicher, dass er korrekt ist.
  • Fehler: "Workbook not saved": Stelle sicher, dass die Variablen strPfad und die Dateinamen korrekt formatiert sind.
  • Problem beim Drucken: Wenn .PrintOut nicht funktioniert, überprüfe die Druckereinstellungen und ob der Drucker angeschlossen ist.

Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, kannst du auch die integrierten Excel-Funktionen nutzen:

  • Speichern unter: Manuell als PDF speichern über Datei > Speichern unter > und wähle PDF aus.
  • Drucken: Nutze die Druckfunktion in Excel, um das aktuelle Blatt zu drucken.

Für umfassendere Automatisierungen sind jedoch VBA-Methoden wie vba printout pdf effektiver.


Praktische Beispiele

Hier sind einige nützliche Anwendungsfälle für printout vba excel:

  1. Berichtserstellung: Erstelle automatisierte Berichte, die wöchentlich oder monatlich erstellt und per E-Mail versendet werden.
  2. Datenanalyse: Drucke spezifische Datenblätter für Meetings, um die Informationen schnell verfügbar zu machen.
  3. Kundendokumente: Generiere individuelle PDF-Printouts für Kundenaufträge.

Tipps für Profis

  • Variablen dynamisch gestalten: Nutze Arrays oder Collections, um die Blattnamen und Pfade zu verwalten.
  • Fehlerbehandlung einfügen: Implementiere On Error Resume Next für robustere Skripte.
  • Testing: Teste deinen VBA Code in einer Kopie deines Excel-Dokuments, um unbeabsichtigte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Drucker wechseln?
Du kannst den Drucker in den Excel-Druckeinstellungen ändern. Gehe zu Datei > Drucken und wähle den gewünschten Drucker aus.

2. Kann ich den VBA-Code anpassen, um nur bestimmte Zellen zu drucken?
Ja, du kannst die PrintOut Methode anpassen, um nur einen spezifischen Bereich zu drucken, indem du From und To Parameter verwendest, z.B. s.PrintOut From:=1, To:=1.

3. Wie speichere ich mehrere Blätter in einem PDF?
Du kannst mehrere Blätter in eine neue Mappe kopieren und dann mit ExportAsFixedFormat als PDF speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige