Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Druckbereich automatisch festlegen und drucken

Druckbereich automatisch festlegen und drucken
03.01.2006 13:41:15
Konni
Hallo Freaks,
eine neue leichte Aufgabe:
Wie kann ich per Schaltfläche einen Druckvorgang auslösen, bei dem der Druckbereich vorher automatisch von A1 bis Kx (x=variabel, unterschiedliche Zeilenanzahl je nach Tabelle) festgelegt wird? Ich kriege es einfach nicht hin!
Vielen Dank, wie schon so oft
Konni :-)
Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 13:54:46
volker
Hallo Konni.
probiers mal so , geht bestimmt auch anders:
xxx = 30
Range("A1:K" & xxx).Select
Selection.PrintOut Copies:=1
gruß volker
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 14:08:43
Konni
Hallo Volker,
ich kann Deine Lösung leider nicht umsetzen. Muss das Ganze nicht mit "Xy Sub" anfangen und mit "End Sub" enden. Was bedeutet xxx=30? Kommt das in ein Modul?
Gruß
Konni
Anzeige
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 14:13:29
volker
hallo konni,

Sub drucken()
AnzSpalten = 30
Range("A1:K" & AnzSpalten).Select
Selection.PrintOut Copies:=1
End Sub

xxx ist eine variable die das ende des druckbereichs angibt und die du selbst füllen mußt könnte natürlikch auch anzSpalten heißen.
gruß volker.
Anzeige
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 14:25:36
Harald
hi,
oder so

Sub drucken()
Dim Zeilen As String
On Error GoTo ende
Zeilen = Application.InputBox("Wieviele Zeilen Du wolle drucke ?")
'MsgBox Zeilen
Range("A1:K" & Zeilen).PrintOut Copies:=1
ende:
End Sub

Gruss Harald
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 14:31:03
Konni
Hallo Harald,
danke für Dein Mitwirken. Aber siehe meine Nachricht an Volker
Gruß
Konni
Anzeige
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 14:28:48
Konni
Hallo Volker,
die Anzahl der Spalten habe ich doch genannt, von A bis K!
Mir geht es darum, den Druckbereich automatisch ermitteln zulassen, und zwar von der 1. nicht leeren Zeile bis zur letzten nicht leeren Zeile. Mit der manuellen Zeilenvorgabe geht nicht, da ich die Tabelle für andere Nutzer ohne Spalten- und Zeilenüberschriften versehen werde (mit Passwortschutz) und somit das Ablesen der Zeilenanzahl nicht mehr möglich ist. - Kurzum, das Ganze soll idiotensicher sein!
Gruß
Konni
Anzeige
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 14:45:17
volker
hallo konni,
von dem druck bis zur letzten zeile wußte ich nichts
mit dem variablen namen AnzSpalten hab ich mich vertan müßte Anz Zeilen heißen ist aber egal.
wenn du bis zur letzten zeile in Spalte A (weiß nicht ob bei dir alle spalten immer gefüllt sind) drucken willst dann geht das so:

Sub drucken()
Range("A1:K" & Cells(Rows.Count, 1).End(xlUp).Row).Select
Selection.PrintOut Copies:=1
End Sub

die 1 hinter Cells(Rows.Count, gibt die spalte an 1= a 2 = b usw.
gruß volker.
Range("A1:K" & Cells(Rows.Count, 1).End(xlUp).Row).Select
Selection.PrintOut Copies:=1
Anzeige
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 14:54:42
Konni
Hallo Volker,
leider steht nur die 1. Zeile auf dem Papier. Vor den restlichen 42 Zeilen fehlt jede Spur. Info: keine leeren Spalten vorhanden
Gruß
Konni :-(
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 15:23:36
volker
hallo konni
dann weiß ich auch nicht weiter , bei mir gehts :-)
wenn deine spalten immer gefüllt sind dann probiere es mal so

Sub drucken()
Range("A1:K" & Rows.Count).Select
Selection.PrintOut Copies:=1
End Sub

gruß volker.
Anzeige
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 15:32:47
Harald
oder so

Sub drucken()
dim x as long
x = Cells(Rows.Count, 11).End(xlUp).Row
Range("A1:K" & x).PrintOut Copies:=1
End Sub

AW: Druckbereich - Harald und Volker
03.01.2006 15:58:46
Konni
Hallo Harald und Volker,
danke für Eure Hilfe. Ich befinde mich inzwischen zu Hause und kann das Drucken nicht nachvollziehen, da ein Druckkopf meines HP 2500C leider den Geist aufgegeben hat. Ich probiere es morgen im Büro und melde mich wieder.
Bei der Heimfahrt ist mir derGedanke gekommen, dass es vielleicht auch daran liegen kann, weil es in der Tabelle auch ein paar Leerzeilen gibt. Es müsste also der letzte Eintrag in einer Zeile am Tabellenende ermittelt werden.
Ich glaube, dass aus vorgenanntem Grund der Code nicht funzte.
Grüße und Dank, bis Morgen
Konni :-)
Anzeige
AW: Druckbereich - Harald und Volker
04.01.2006 09:49:34
Konni
Guten Morgen Harald und Volker,
gute Nachricht, beide Code funktionieren prima, aber beide verbunden mit dem Nachteil, dass nach dem korrekten Ausdruck noch mehrere weiße (leere) Blätter folgen. Läßt sich dies ändern?
Viele Grüße aus Karlsruhe und Danke
Konni
AW: Druckbereich - Harald und Volker
04.01.2006 11:03:56
Harald
Hi,
lass mal so laufen. Statt Druck, wird der Bereich selektiert.

Sub drucken()
dim x as long
x = Cells(Rows.Count, 11).End(xlUp).Row
Range("A1:K" & x).Select
End Sub

Dann siehst du den Bereich.
Der Code sucht nach der letzten gefüllten Zelle in Spalte 11 (also K).
Ggf. mal einen andere Spalte probieren.
Gruss Harald
Anzeige
AW: Alternative 2
04.01.2006 11:24:26
Harald

Sub drucken1()
dim x as long
x = Cells(Rows.Count, 11).End(xlUp).Row
ActiveSheet.PageSetup.PrintArea = "A1:K" & x
ActiveSheet.PrintOut Copies:=1
ActiveSheet.PageSetup.PrintArea = False
End Sub

Gruss Harald
AW: Druckbereich - Harald und Volker - ich glaube
04.01.2006 11:51:31
Konni
.... dass ich die Ursache gefunden habe, warum leere Blätter rauskommen:
In der Spalte K befinden sich Formeln bis ans Ende der Tabelle. Die sind zwar nicht direkt sichtbar, aber werden vielleicht vom Code als nicht leere Zeilen erkannt.
Eure beiden letzten Vorschläge brachten das gleiche Resultat. Beim Markieren wird die gesamte Tabelle bis Zeile K markiert.
Ich entschuldige mich jetzt schon mal vorab, falls ich Euch versehentlich durch die nicht leere Spalte K auf die falsche Fährte gelockt haben sollte.
Gruß
Konni
Anzeige
AW: Druckbereich - Harald und Volker - ich glaube
04.01.2006 13:04:21
volker
hallo konni,
dir fällt ja immer mehr dazu ein.
um das mit den formeln hinzukriegen fällt mir eigentlich nur diese nicht so schöne lösung ein.

Sub drucken()
For x = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If trim(Cells(x, 1)) <> "" Then anzzeilen = x
Next x
Range("A1:K" & anzzeilen).Select
Selection.PrintOut Copies:=1
End Sub

referenzspalte (die die den druckbereich bestimmt) ist a
hoffe es geht referenzspalte (die die den druckbereich bestimmt) ist a
gruß volker.
Anzeige
AW: Druckbereich - Harald und Volker - ich glaube
04.01.2006 13:44:57
Konni
..., dass Dein Code funktioniert. Der von Harald brachte leider keine Besserung.
Die Idee mit der Referenzspalte war ein genialer Einfall! Hut ab!
Zu Deiner Lösung: Man kann auch von Berlin über Hamburg nach München fahren. HAUPTSACHE IST DOCH, MAN KOMMT AN!!!
Ich habe mir gedacht, dass Ihre Beide verärgert seid, daher die Vorabentschuldigung!
Jetzt kommt: Die Nachherentschuldigung!! ;-)
Momentan bin ich wunschlos glücklich und bedanke mit sehr herzlich für Euren wirklich starken Einsatz. - Das Forum hier hat wirklich super Mitglieder.
Viele Grüße
Konni :-))))
Anzeige
AW: Druckbereich - Harald und Volker - ich glaube
04.01.2006 13:20:43
Harald
oder vielleicht so.

Sub test()
Dim i As Long, Lrow As Long
For i = Cells(Rows.Count, 11).End(xlUp).Row To 1 Step -1
If Cells(i, 11).Value >= 1 Then 'wenn Formelergebnis Spalte K größergleich 1
Lrow = Cells(i, 11).Row
Exit For
End If
Next i
'MsgBox Lrow
ActiveSheet.PageSetup.PrintArea = "A1:K" & Lrow
ActiveSheet.PrintOut Copies:=1
ActiveSheet.PageSetup.PrintArea = False
End Sub

Bin mal gespannt, was jetzt noch kommt ;-))))
Gruss Harald
Anzeige
AW: Druckbereich - Harald und Volker - ich glaube
04.01.2006 13:48:22
Konni
..., dass ich Dich an dieser Stelle auf meine Anwort an Volker verweisen muss.
Vielen Dank und Gruß
Konni :-)))
AW: Druckbereich automatisch festlegen und drucken
03.01.2006 14:46:08
volker
hallo konni,
den text hinter gruß volker kannst du vergessen.
gruß volker
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Druckbereich automatisiert festlegen und drucken in Excel


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:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)".
    • Wähle Einfügen > Modul.
  3. Kopiere und füge den folgenden VBA-Code ein:

    Sub drucken()
       Dim letzteZeile As Long
       letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row
       Range("A1:K" & letzteZeile).Select
       Selection.PrintOut Copies:=1
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Füge eine Schaltfläche hinzu:

    • Gehe zu Entwicklertools > Einfügen > Schaltfläche (Formularsteuerelement).
    • Ziehe eine Schaltfläche auf das Arbeitsblatt.
  6. Verknüpfe die Schaltfläche mit dem Makro:

    • Wähle das erstellte Makro drucken aus.
  7. Klicke auf die Schaltfläche, um den Druckbereich automatisch festzulegen und zu drucken.


Häufige Fehler und Lösungen

  • Problem: Nur die erste Zeile wird gedruckt.

    • Lösung: Stelle sicher, dass die Zellen in Spalte A keine leeren Zellen haben. Der Code sucht nach der letzten gefüllten Zeile in Spalte A.
  • Problem: Leere Seiten werden gedruckt.

    • Lösung: Überprüfe, ob in den referenzierten Spalten Formeln vorhanden sind, die leere Zellen erzeugen. Dies kann den Druckbereich beeinflussen.

Alternative Methoden

  • Dynamischer Druckbereich ohne VBA: Du kannst auch den Druckbereich manuell anpassen, indem du zum Tab Seitenlayout gehst und im Bereich Seite einrichten auf Druckbereich festlegen klickst.
  • Excel druckbereich automatisch anpassen: Wähle den gewünschten Bereich aus und gehe zu Seitenlayout > Druckbereich > Druckbereich festlegen.

Praktische Beispiele

  • Beispiel 1: Wenn du den Druckbereich für eine Tabelle mit variierenden Zeilen festlegen möchtest, verwende den zuvor genannten VBA-Code.

  • Beispiel 2: Um mehrere Druckbereiche festzulegen, kannst du Folgendes tun:

    ActiveSheet.PageSetup.PrintArea = "A1:K10,A20:K30"
  • Beispiel 3: Um den Druckbereich zu ändern, nutze:

    ActiveSheet.PageSetup.PrintArea = "A1:K" & Cells(Rows.Count, 1).End(xlUp).Row

Tipps für Profis

  • Tastenkombination für Druckbereich festlegen: Du kannst auch die Strg + P-Tastenkombination verwenden, um direkt zum Druckdialog zu gelangen.
  • Drucklinien entfernen: Gehe zu Seitenlayout > Drucklinien und deaktiviere die Option, um die Linien im Druck auszublenden.
  • Verwende Kommentare, um deinen Code zu dokumentieren, was besonders hilfreich ist, wenn du mit mehreren Druckbereichen arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich den Druckbereich für mehrere Blätter festlegen?
Du kannst den gleichen VBA-Code in jedem Blatt verwenden oder eine Schleife erstellen, die durch alle Blätter iteriert.

2. Was tun, wenn der Druckbereich nicht korrekt festgelegt wird?
Überprüfe die Daten in den referenzierten Spalten auf leere Zellen oder Formeln, die den Druckbereich beeinflussen könnten.

3. Wie kann ich den Druckbereich bei Excel festlegen, ohne VBA zu verwenden?
Du kannst den gewünschten Bereich manuell auswählen und dann Seitenlayout > Druckbereich > Druckbereich festlegen wählen.

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