Microsoft Excel

Herbers Excel/VBA-Archiv

Drucken von Druckbereichen nach Zellinhalt


Betrifft: Drucken von Druckbereichen nach Zellinhalt
von: Jens
Geschrieben am: 02.12.2018 18:24:31

Hallo,

ich hoffe mir kann hier im Forum geholfen werden.

In einer umfangreiche Exceltabelle sind Druckbereiche angelegt, welche in Abhängikeit vom Inhalt einzelner Zellen in einer pdf-Datei gedruckt werden sollen.

Ich möchte das an diesem Beispiel aufzeigen:

SpalteA SpalteB SpalteC

Text1 Druck A20:K29
Text2 kein_Druck A30:K39
Text3 kein_Druck A40:K49
Text4 Druck A50:K59
Text5 Druck A60:K69

Je nach Inhalt der Zellen (Druck, kein_Druck) sollen die Bereich in der Spalte C geruckt werden.

Habe bis jetzt alle Seiten über VBA gedruckt, mit Angabe des Dateinamen aus Zellinhalten.

Sub Datei_drucken_als_PDF()

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        Range("A6") & "_" & Format(Date, "YYYYMMDD") & "_" & Range("A7") & ".pdf", Quality _
        :=xlQualityStandard, IncludeDocProperties:=True, PrintArea:  IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
End Sub
Ich würde mich freuen, wenn mich hier jemand unterstützen kann.

Viele Grüße
Jens

  

Betrifft: AW: Drucken von Druckbereichen nach Zellinhalt
von: fcs
Geschrieben am: 06.12.2018 16:03:14

Hallo Jens,

in diese Richtung sollte es funktionieren.

Sub Datei_drucken_als_PDF()
    Dim wks As Worksheet
    Dim Zeile As Long, rngBereich As Range
    Set wks = ActiveSheet
    
    With wks
        .Range(.Rows(20), .Rows(69)).Hidden = False
        .PageSetup.PrintArea = _
                .Range(.Cells(20, 3), .Cells(69, 3)).Address(False, False, xlA1)
        For Zeile = 1 To 5
            If .Cells(Zeile, 2).Value = "kein_Druck" Then
                 .Range(.Cells(Zeile, 3).Text).EntireRow.Hidden = True
            End If
        Next
        
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            .Range("A6") & "_" & Format(Date, "YYYYMMDD") & "_" & Range("A7") & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
            
        .Range(.Rows(20), .Rows(69)).Hidden = False
    End With
End Sub


LG
Franz