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

Dynamischer Druckbereich

Forumthread: Dynamischer Druckbereich

Dynamischer Druckbereich
03.04.2019 15:29:51
Dome
Guten Tag zusammen,
Leider habe ich bis heute im Netz keine vernünftige Lösung zu meiner Problemstellung gefunden. Ich speichere einen bestimmten Bereich einer Excel-Tabelle als PDF unter Verwendung des folgenden VBA-Codes:
Private Sub CommandButton1_Click()
ThisWorkbook.Worksheets(".....").ExportAsFixedFormat Type:=xlTypePDF, Filename:="O:\...\ _
test_druckbereich.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
Dabei wird der hinterlegte Druckbereich verwendet.
Nun möchte ich via "Formeln>Namensmanager" den Druckbereich mit SVERWEIS() und den in den Zellen L1 bis L4 hinterlegten Bereichen so definieren, dass mir mit Wechsel des Produkts in Zelle J1 ein anderer PDF-Export generiert wird.
Nur übernimmt Excel leider immer nur die ganze Tabelle.
https://www.herber.de/bbs/user/128895.xls
Kann mir jemand helfen? Geht das überhaupt?
LG
Dome
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Dynamischer Druckbereich
03.04.2019 16:18:38
UweD
Hallo
Da du sowieso VBA benutzt, dann so
Das ChangeEvent in J1 benutzen
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- dort reinkopieren
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim RNG As Range, Zeile As Long, Druckbereich As String
    If Not Intersect(Range("J1"), Target) Is Nothing Then
        If Target.Count = 1 Then
            Set RNG = Columns(11) 'Spalte K 
            
            'in welcher Zeile? 
            Zeile = WorksheetFunction.Match(Target, RNG, 0)
            
            'Druckbereich 1 weiter rechts 
            Druckbereich = Intersect(RNG.Offset(, 1), Rows(Zeile))
            
            'Druckbereich festlegen, vorher Semikolon in Komma wechseln 
            If Druckbereich <> "" Then
                ActiveSheet.PageSetup.PrintArea = Replace(Druckbereich, ";", ",")
            End If
            
        End If
    End If

End Sub

LG UweD
Anzeige
AW: Dynamischer Druckbereich
04.04.2019 13:52:14
Dome
Guten Tag Uwe,
Ganz herzlichen Dank für Deine Hilfe, das klappt wunderbar.
Ich habe die Auswahl des Produkts und den Button zur Makro-Auslösung noch auf eine andere Tabelle verschoben. Anbei der Code, falls jemand eine ebenso leicht angepasste Anforderung hatte:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range, Zeile As Long, Druckbereich As String
If Not Intersect(Range("B10"), Target) Is Nothing Then 'Auswahl Produkt
If Target.Count = 1 Then
Set RNG = Columns(1) 'Sucht in Spalte A nach Produkt
'in welcher Zeile?
Zeile = WorksheetFunction.Match(Target, RNG, 0)
'Druckbereich 1 weiter rechts
Druckbereich = Intersect(RNG.Offset(, 1), Rows(Zeile))
'Druckbereich festlegen, vorher Semikolon in Komma wechseln
If Druckbereich  "" Then
Worksheets("...").PageSetup.PrintArea = Replace(Druckbereich, ";", ",")
'wenn Druckbereich auf anderer Tabelle geändert werden soll
End If
End If
End If
End Sub
LG
Dome
Anzeige
Prima. Danke für die Rückmeldung
04.04.2019 14:04:25
UweD
;

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