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

Forumthread: druckbereich dynamisch festlegen

druckbereich dynamisch festlegen
23.03.2019 18:07:47
Pfeiler
Hallo,
ich habe eine Tabelle, die sich in ihrer Größe je nach Anzahl der Eingaben ändert.
Der auszudruckende Bereich geht von O1 bis Z****. d.h.: die Spalte Z ist immer gleich, nur die Zeile ändert sich mit der Anzahl der Benutzereinträge und ist unvorhersehbar.
die erste leere Zelle lässt sich ja mit FIND("") leicht finden, weil mir das find
eine Range-Variable zurückgibt. Auch lässt sich die Zeilennummer leicht aus der zusammengesetzten Range herauskitzeln.
Wie bringe ich diese Daten in der Festlegung eines Druckbereichs unter ?
auf deutsch - welche Variablen schreibe ich in die Anweisung "PageSetup.PrintArea = ............ ? in x sollte ja eigentlich alles drinstehn, weile ja x ein Range ist. Nur frisst die PageSetup die nicht.
Ich habe schon gemerkt, dass "FIND" nicht besonders beliebt zu sein scheint, aber es funktioniert tadellos um zB neue Daten in die erste leere Zeile einzutragen oder Spalten automatisch abzurechnen. Ich würde wirklich nicht gern auf find verzichten. Vielleicht eine Anfängermacke, da man ja immer den leichtesten Trampelpfad benuzt.
Private Sub CommandButton4_Click()
Dim x As Range
Dim y
Dim Ende_DB
Dim Bereich
Set x = Sheets(1).Range("Z:Z").Find("")
Ende_DB = x.Row
y = CInt(Ende_DB)
Debug.Print Ende_DB
End Sub

Wer weiss weiter ?
mit freundlichen Grüßen
Alfred Pfeiler
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: druckbereich dynamisch festlegen
23.03.2019 18:09:33
Hajo_Zi
Hallo Alfred,
ohne VBA Druckbereich festlegen über Seite einrichten O:Z

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: druckbereich dynamisch festlegen
23.03.2019 18:25:04
Sepp
Hallo Alfred,
.PrintArea erwartet einen String und kein Range-Objekt!
warum so kompliziert?
Private Sub CommandButton4_Click()
  Me.PageSetup.PrintArea = "O1:Z" & Cells(Rows.Count, 26).End(xlUp).Row
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: druckbereich dynamisch festlegen
23.03.2019 19:58:47
Pfeiler
Danke !!!!!!
funktioniert. So eine blitzschnelle Antwort gibts auch nur einmal.
Tja, kaum hat man was kapiert, muss man wieder was neues lernen.
Dass da eine Stringvariable gefragt ist hab ich schon vermutet, aber nicht weiter gedacht.
Mit VBA scheint es so zu sein wie mit den Frauen. Man muss als Laie immer erraten, was sie wünschen.
blöde Bemerkung , aber das ist der Erleichterung geschuldet.
bin schon neugierig, wie lange es dauert, bis ich den neuen Code kapiere.
auf jeden Fall hats mit abschreiben un activeSheet am Anfang als Bezu einzusetzen geklappt.
Wieder einmal ein erfreuliches Erlebnis in diesem Forum.
:-)
Alfred Pfeiler
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dynamischen Druckbereich in Excel festlegen


Schritt-für-Schritt-Anleitung

Um den dynamischen Druckbereich in Excel festzulegen, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" auswählst.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Private Sub CommandButton4_Click()
       Dim x As Range
       Dim Ende_DB As Long
    
       ' Finde die erste leere Zelle in Spalte Z
       Set x = Sheets(1).Range("Z:Z").Find("")
       Ende_DB = x.Row
    
       ' Setze den Druckbereich dynamisch
       Me.PageSetup.PrintArea = "O1:Z" & Ende_DB
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Füge einen Button (Formularsteuerung) hinzu und verlinke ihn mit dem CommandButton4_Click Ereignis.

  6. Klicke auf den Button, um den Druckbereich automatisch anzupassen.

Dieser Code sucht die erste leere Zelle in Spalte Z und legt den Druckbereich von O1 bis zur gefundenen Zeile fest.


Häufige Fehler und Lösungen

  • Fehler: "Me.PageSetup.PrintArea erwartet einen String."

    • Lösung: Stelle sicher, dass Du den Druckbereich als String angibst, wie im obigen Code gezeigt.
  • Fehler: Die Zeile wird nicht korrekt erkannt.

    • Lösung: Überprüfe, ob Deine Daten in der richtigen Spalte stehen und dass keine Leerzeilen zwischen den Daten existieren.

Alternative Methoden

Wenn Du excel druckbereich dynamisch ohne VBA festlegen möchtest, kannst Du die folgenden Schritte ausprobieren:

  1. Wähle den Bereich O1:Z1 aus.
  2. Gehe zu "Seite einrichten" und wähle "Druckbereich".
  3. Setze den Druckbereich manuell auf O:Z und lasse Excel den Bereich automatisch anpassen.

Diese Methode ist jedoch weniger flexibel als die Verwendung von VBA.


Praktische Beispiele

Hier ist ein Beispiel, wie Du den dynamischen Druckbereich in einer Tabelle anwenden kannst:

  • Angenommen, Du hast eine Liste von Verkäufen, die wöchentlich aktualisiert wird. Mit dem oben genannten VBA-Skript kannst Du sicherstellen, dass immer der aktuelle Verkaufsbereich gedruckt wird, ohne dass Du manuell anpassen musst.

Tipps für Profis

  • Nutze Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste Deinen Code regelmäßig, um sicherzustellen, dass er auch bei verschiedenen Datenmengen funktioniert.
  • Wenn Du den dynamischen Druckbereich ohne VBA bevorzugst, kannst Du auch die Funktion OFFSET nutzen, um dynamische Bereiche zu erstellen.

FAQ: Häufige Fragen

1. Wie kann ich den Druckbereich dynamisch anpassen, ohne VBA zu verwenden?
Du kannst die Funktion OFFSET oder Tabellen verwenden, um dynamische Bereiche zu definieren.

2. Funktioniert dieser VBA-Code in allen Excel-Versionen?
Ja, der Code funktioniert in den meisten modernen Excel-Versionen, einschließlich Excel 2016 und 2019.

3. Was ist, wenn meine Daten in einer anderen Spalte sind?
Passe den Code entsprechend an, indem Du die Spalte in der Find-Methode änderst.

4. Gibt es eine Möglichkeit, den Druckbereich automatisch zu aktualisieren?
Ja, Du kannst den Code in ein Arbeitsblatt-Ereignis einfügen, um den Druckbereich automatisch zu aktualisieren, wenn Änderungen vorgenommen werden.

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