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

Forumthread: Druckbereich variabel+automatisch festlegen?

Druckbereich variabel+automatisch festlegen?
24.01.2005 11:24:10
dieter-j
Hallo Forum,
Eine Waren-Ausgangsliste soll ausgedruckt werden.
Die Liste hat eine feste Spaltenanzahl aber mal mehr mal weniger Einträge (Zeilen)und ist also verschieden lang.
Nun möchte ich erreichen,dass immer die richtige Zeilenanzahl ausgedruckt wird.
Der Druckbereich also nicht jedesmal neu definiert werden muss....
wie kann ich das erreichen?
Und erschwerend noch, soll gleich nach Spalte A aufsteigend sortiert werden.
danke für Euer gehirnschmalz
gruss aus hamburg
dieter
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckbereich variabel+automatisch festlegen?
r.sch.
Hej Dieter,
schreib doch ein Makro, in dem du zuerst die letzte Zelle suchst, deren Zeilennummer feststellst und dann den Range (von ?A1? bis deineSpalte und die ermittelte Zeile) an den Namen "Druckbereich" übergibst.
Gruß aus 'm Vorharz
Reinhard
AW: Druckbereich variabel+automatisch festlegen?
24.01.2005 18:21:49
dieter-j
sicher eine gute idee, r.sch., nur wie geht das? Ich habe sogut wie null ahnung davon...
gruss dieter
Anzeige
AW: Druckbereich variabel+automatisch festlegen?
r.sch.
Hallo Dieter,
mach 's so:
mit alt+F11 öffnest du den VBA editor, klicke auf "Tabelle1" im Projekt-VBA Projekt, in das sich öffnende Fenster (Tabelle1 (Code) kopiertst du die nachfolgenden Zeilen

Option Explicit
Dim letzteZeile, letzteSpalte

Sub druckbereichfestlegen()
letzteZeile = Cells.SpecialCells(xlCellTypeLastCell).Row
letzteSpalte = Cells.SpecialCells(xlCellTypeLastCell).Column
ActiveWorkbook.Names.Add Name:="Druckbereich", RefersToR1C1:=Range(Cells(1, 1), Cells(letzteZeile, letzteSpalte))
End Sub

In Excel mit alt+F8 den Makro suchen und starten.
Gruß aus 'm Vorharz
Reinhard
Anzeige
ich werde es so machen und berichte dann.danke.ot
24.01.2005 20:00:04
dieter-j
AW: ich berichte
25.01.2005 15:42:22
dieter-j
hallo r.sch.,
habe das makro probiert;
irgendetwas hakt noch;
mit dem makro will excel mir 24 seiten ausdrucken,
von a1 bis z408.
tatsächlich sind in meiner liste gerade 16 zeilen belegt
und die spalten gehen bis Spalte O. (nicht null) also musste excel gerade mal ein Blatt drucken....
weist du weiter?
gruss dieter
Anzeige
AW: ich berichte
r.sch.
Hi Dieter,
teste mal mit strg+ende wo das tatsächliche Ende deiner Tabelle liegt! Sollte Z408 dabei herauskommen, und da liegt es eben! Falls aber alle Zeilen/Spalten bis dahin leer sind, bekommst du das 'weg', indem du alle ganzen Zeilen/Spalten von dem 'wahren' (deinem) Ende ab weglöschst und die Datei speicherst.
Gruß aus 'm Vorharz
Reinhard
Anzeige
mach ich. werde berichten. gruss dieter. ot
25.01.2005 21:28:45
dieter-j
AW: ich berichte
26.01.2005 20:17:57
dieter-j
Hallo r.sch.
jetzt klappt es tatsächlich.danke !!!
was mir jetzt nur noch fehlt,
ist, dass das makro die Spalten nach spalte B (spalten b bis o)
aufsteigend sortiert und dann an den drucker übergibt.
Und dann gibt es ja noch die zellen mit "=ANZAHL2(C6:C16)"
und "=SUMME(E6:E16)"
die müssten ja auch "von allein" an die jeweils letzte zeile angepasst werden.
meinst du, dass geht? Das wäre richtig super.
eine taste, die dem makro dann zugewiesen wird, krieg ich alleine hin.
gruss dieter
Anzeige
mit den neuen Fragen stehe(n wir) ich im Walde
r.sch.
Hi Dieter,
hab' ich was verpaßt? ('ne hochgeladene Datei oder so?). Ansonsten: siehe Betreff!
Sotieren: versuch 's doch mal mit der Recherche.
Deine beiden Formeln stehen 'frei im Raum', wo ist er Zusammenhang?
Gruß aus 'm Vorharz
Reinhard
PS nur Mut
AW: mit den neuen Fragen stehe(n wir) ich im Walde
26.01.2005 21:59:58
dieter-j
hallo reinhard,
ja, ist verwirrend.
Ein makro soll mir Inhalt aufsteigend sortieren;
wenn man den bereich weiss,ist das ja einfach.
Wenn man aber -wie in diesem fall- nicht weiss, welches die letzte zeile sein wird- dein makro findet das ja erst raus - was dann?
die beiden formeln kannst du vergessen; da geb ich als zweiten Wert "1000" an.
Und dann ,ja dann soll dass ganze an den drucker übergeben werden...
gruss dieter
Anzeige
AW: mit den neuen Fragen stehe(n wir) ich im Walde
r.sch.
Hi Dieter,
wie, du kennst den Bereich nicht? Mit den beiden Zeilen letzteZeile.. letzteSpalte.. ermittelst du doch das "unbekannte" rechte untere Ende, oder wie?
Benutze mal den Makrorecorder, um den Code für 's Sortieren zu bekommen und passe im Bereich Range... so an, daß ....Cells(letzteZeile,letzteSpalte) den variablen Endpunkt berechnet.
Gruß aus 'm Vorharz
Reinhard
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Druckbereich in Excel dynamisch festlegen


Schritt-für-Schritt-Anleitung

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

  2. Finde das entsprechende Arbeitsblatt: Klicke im Projektfenster auf "Tabelle1" oder das Arbeitsblatt, das du verwenden möchtest.

  3. Füge den Code ein: Kopiere den folgenden VBA-Code in das Code-Fenster:

    Option Explicit
    Dim letzteZeile As Long, letzteSpalte As Long
    
    Sub druckbereichfestlegen()
        letzteZeile = Cells.SpecialCells(xlCellTypeLastCell).Row
        letzteSpalte = Cells.SpecialCells(xlCellTypeLastCell).Column
        ActiveWorkbook.Names.Add Name:="Druckbereich", RefersToR1C1:=Range(Cells(1, 1), Cells(letzteZeile, letzteSpalte))
    End Sub
  4. Führe das Makro aus: Kehre zu Excel zurück und drücke Alt + F8, wähle das Makro druckbereichfestlegen aus und klicke auf "Ausführen".

  5. Überprüfe den Druckbereich: Der Druckbereich sollte nun dynamisch an die Anzahl der Zeilen und Spalten deiner Liste angepasst werden.


Häufige Fehler und Lösungen

  • Problem: Excel druckt mehr Seiten als erwartet.

    • Lösung: Überprüfe die tatsächliche letzte Zelle deiner Tabelle. Drücke Strg + Ende, um zu sehen, wo Excel das Ende erkennt. Wenn es Leerzeilen oder -spalten gibt, lösche diese und speichere die Datei.
  • Problem: Makro funktioniert nicht wie gewünscht.

    • Lösung: Stelle sicher, dass der Code korrekt kopiert wurde und dass du das richtige Arbeitsblatt bearbeitest.

Alternative Methoden

Du kannst den dynamischen Druckbereich auch per Formel festlegen, ohne VBA zu verwenden. Hierzu kannst du die Funktion BEREICH.VERSCHIEBEN in Kombination mit ANZAHL2 nutzen, um den Bereich dynamisch zu definieren. Allerdings ist dies weniger flexibel als die Verwendung von VBA.


Praktische Beispiele

Stell dir vor, deine Waren-Ausgangsliste hat 10 Einträge in Spalte A und 5 Spalten (A bis E). Der VBA-Code passt den Druckbereich automatisch an, sodass nur die 10 Zeilen und 5 Spalten gedruckt werden. Wenn du neue Einträge hinzufügst, musst du das Makro nur erneut ausführen und der Druckbereich wird entsprechend aktualisiert.


Tipps für Profis

  • Kombiniere das Makro zum dynamischen Festlegen des Druckbereichs mit einer Sortierfunktion. Du kannst den Code erweitern, um die Daten vor dem Drucken automatisch aufsteigend zu sortieren.
  • Verwende Application.PrintOut am Ende deines Makros, um den Druckvorgang direkt auszulösen, sodass du nicht manuell drucken musst.

FAQ: Häufige Fragen

1. Kann ich den Druckbereich auch für mehrere Blätter gleichzeitig festlegen? Ja, du müsstest den Code anpassen, um durch die Blätter zu iterieren.

2. Wie kann ich die Sortierung in das Makro integrieren? Du kannst den Code für das Sortieren direkt nach dem Festlegen des Druckbereichs hinzufügen. Nutze Range("B1:O" & letzteZeile).Sort und passe die Parameter an, um die gewünschten Spalten zu sortieren.

3. Muss ich das Makro jedes Mal ausführen, wenn ich die Liste ändere? Ja, um sicherzustellen, dass der Druckbereich immer aktuell ist, solltest du das Makro nach jeder Änderung der Daten ausführen.

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