Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Bereich drucken per VBA



Excel-Version: 9.0 (Office 2000)

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


  

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


    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
        :=True


  

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


  

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?

  

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

  

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

Hallo Daniele,

versuch's mal hiemit:


Sub DruckbereichFestlegen()
Dim LetzteZelle As Integer

Const Tabellenblattname As String = "Tabelle1"
Const LetzteSpalte As String = "K"


With Sheets(Tabellenblattname)

    LetzteZelle = .Cells(Cells.Rows.Count, 1).End(xlUp).Row

    .PageSetup.PrintArea = "A1:" & LetzteSpalte & LetzteZelle

End With
End Sub

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

  

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

Hi Klaus

funktioniert bestens
vielen Dank
Gruß Daniele


 

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