Bereich drucken per VBA



Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Bereich drucken per VBA
von: Daniele
Geschrieben am: 27.05.2002 - 22:27:53

Hallo liebe Leute

ich möchte in einem Makro einen gültigen Druckbereich festlegen, und zwar bis zum letzten Eintrag (Zeile) in TabelleX. Das Problem liegt darin dass es immer 244 Seiten drucken möchte obwohl nur eine 1/2 Seite voll ist, und ich kann mir nicht erklären warum. (wenn ich alle leeren Zeilen und Spalten lösche, geht es gut für einmal und dann wieder nicht mehr!). Also, wie kann man nur bis zur tatsächlich letzten Zeile (variabel) Drucken?

danke für eure hilfe
Gruß, Daniele


nach oben   nach unten

Re: Bereich drucken per VBA
von: axel.meyer
Geschrieben am: 27.05.2002 - 22:38:24

Hi Daniele,

warum verwendest Du in Deinem Print-Befehl nicht einfach die Seitenzahl, die er drucken soll?

Gruß, Axel


nach oben   nach unten

Re: Bereich drucken per VBA
von: Daniele
Geschrieben am: 27.05.2002 - 22:45:14

Hi Axel
hab auch schon daran gedacht, allerdings ist die Seitenzahl variabel (Datenbank-Einträge) und ich will den Bereich nicht ständig anpassen müssen.

Gruß, Daniele


nach oben   nach unten

Re: Bereich drucken per VBA
von: axel.meyer
Geschrieben am: 27.05.2002 - 22:53:11

wie wäre es denn damit:
als erstes ermittelst du den umfang der datei, wieviele zellen beschrieben sind über

ActiveSheet.UsedRange.Select

dann kannst du erst mal den druckbereich festlegen über

ActiveSheet.PageSetup.PrintArea = "$A$1:$K$23"

und um variabel zu sein, kannst du die seitenumbrüche über diesen befehl festlegen

Set ActiveSheet.VPageBreaks(1).Location = Range("D1")
Set ActiveSheet.VPageBreaks(2).Location = Range("H1")
Set ActiveSheet.HPageBreaks(1).Location = Range("A42")
...

wo diese seitenumbrüche liegen sollen, kannst du dir ja auf basis von zellenanzahl ein mal festlegen und dann immer anwenden lassen.

nun?

nach oben   nach unten

Re: Bereich drucken per VBA
von: Daniele
Geschrieben am: 27.05.2002 - 23:17:58

Hi

die Anweisung:
Set ActiveSheet.VPageBreaks(1).Location = Range("D1")
Set ActiveSheet.VPageBreaks(2).Location = Range("H1")
Set ActiveSheet.HPageBreaks(1).Location = Range("A42")

versteh ich nicht ganz (es kommt eine Fehlermeldung)

und ist es möglich anstatt "ActiveSheet" ein anderes Tabellenblatt zu definieren? das Makro soll nicht das aktive, sondern ein anderes Tabellenblatt drucken

daniele

nach oben   nach unten

Re: Bereich drucken per VBA
von: Klaus Schubert
Geschrieben am: 28.05.2002 - 00:31:49

Hallo Daniele,

versuch's mal hiemit:

Tabellenname und die letzte zu druckende Spalte anpassen (Hier "Tabelle1" und Spalte "K"). Im Code LetzteZelle wird davon ausgegangen, dass sich in Spalte A bis zum Schluß Daten befinden, ansonsten anstatt der 1 (für Spalte A) eine andere Zahl (z.B. 3 für Spalte C) angeben.

Gruß Klaus

nach oben   nach unten

Re: Bereich drucken per VBA
von: Daniele
Geschrieben am: 28.05.2002 - 08:55:46

Hi Klaus

funktioniert bestens
vielen Dank
Gruß Daniele


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Bereich drucken per VBA"