Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1684to1688
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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige