Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro für flexiblen Druckbereich

Makro für flexiblen Druckbereich
08.02.2008 10:36:49
Patricia
Hallo,
ich würde gerne ein Makro machen, das den Druckbereich festlegt.
Das ganze sieht wie folgt aus:
für dieses Blatt gibt es bereits ein Makro, dass falls ein bestimmtes Merkmal nicht gegeben ist einige Zeilen ausblendet. Jetzt ist es so, dass ich einen Druckbereich festgelegt habe für die Möglichkeit, dass alle Zeilen eingeblendet sind. Wenn ich nun das ausdrucken werden anstatt den ausgeblendeten Zeilen, leere Blätter ausgedruckt
Ich würde jetzt gerne den Druckbereich flexibel festlegen, dass er immer nur genau das druckt was auch eingeblendet ist und trotzdem möchte ich sagen können, nach dieser Zeile muss ein neues Blatt angefangen werden.
Gibt es da irgendeine Möglichkeit?
Ich hoffe das ist jetz halbwegs verständlich beschrieben ;-)
lg Patricia

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro für flexiblen Druckbereich
08.02.2008 12:37:46
fcs
hallo Patricia,
den Druckbereichbereich brauch man eigentlich nicht flexibel machen. Einfach alles als Druckbereich definieren - ausgeblendete Zeilen werden ja nicht gedruckt.
Das Problem sind die Seitenumbrüche. Damit diese entfernt und ggf. vor dem Drucken automatisch an den richtigen Stellen positioniert werden, müsstest du die Bedingungen beschreiben:
1. Wann sollen Zeilenumbrüche gesetzt werden?
2. Wie kann man die Zeilen bestimmen vor denen ggf. ein Seitenumbruch eingefügt werden soll?
Suchbegriff, Zeilennummer, Anzahlzeilen auf vorheriger Seite?
Gruß
Franz

Anzeige
AW: Makro für flexiblen Druckbereich
08.02.2008 12:48:44
Patricia
Erstmals vielen Dank,
es ist so, alle Zeilen die gedruckt werden sollen weisen in der Spalte a eine 1 auf. Alle anderen sind mit einer 0 versehen. Das ist aber nicht immer gleich, je nach dem was der Benutzer des Sheets eingibt seht das eine mal im Bereich 1 und im Bereich 5 und 7 eine eins und das andere mal im Bereich 1,3 und 4.
Insgesamt gibt es 10 mögliche Bereiche, wobei der Bereich 1 immer gedruckt werden muss.
Bereich 1: Zeile 2-29
Bereich 2: Zeile 30-49
Bereich 3: Zeile 50-69
Bereich 4: Zeile 70-89
Bereich 5: Zeile 90-109
Bereich 6: Zeile 110-129
Bereich 7: Zeile 130-149
Bereich 8: Zeile 150-169
Bereich 9: Zeile 170-189
Bereich 10: Zeile 190-209
Ich brauche das ganze eben für einen Plakettendrucker. Wenn der dazwischen leere Seiten druckt, dann ist werden da irrsinnig viele Plaketten verschwendet.
Vielleicht gibt's ja ne möglichkeit
Vielen Dank nochmal
lg Patricia

Anzeige
AW: Makro für flexiblen Druckbereich
08.02.2008 13:39:00
fcs
Hallo Patricia,
ich hab mal zwei Varianten gebastelt. Beide Varianten setzen die Seitenumbrüche entsprechend und blenden auch die Zeilen ab Zeile 30 entsprechend ein/aus. Den Tabellennamen im Code ggf. noch anpassen.
Variante 1 wird automatisch vor dem Drucken/der Seitenvorschau ausgeführt. Einfügen muss du sie im VBA-Editor unter "DieseArbeitsmappe".
Variante 2 ist ein "normales" Makro, dass du ggf. auch per Makro-Button im Tabellenblatt starten könntest.
Gruß
Franz

'Variante 1
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim wks As Worksheet, Zeile As Long
Select Case ActiveSheet.Name
Case "Tabelle1" 'Name der Tabelle die vor dem Drucken aufbereitet werden soll
If MsgBox("Plaketten drucken?", vbQuestion + vbYesNo) = vbYes Then
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
.Cells.PageBreak = xlPageBreakNone
For Zeile = 30 To 209
If .Cells(Zeile, 1) = 0 Then
.Rows(Zeile).Hidden = True
ElseIf .Cells(Zeile, 1) = 1 Then
.Rows(Zeile).Hidden = False
Else
'do nothing
End If
Select Case Zeile
Case 30, 50, 70, 90, 110, 130, 150, 170, 190 'Zeilen mit ggf. Seitenwechsel
If .Cells(Zeile, 1) = 1 Then
.Cells(Zeile, 1).PageBreak = xlPageBreakManual
End If
Case Else
'do nothing
End Select
Next
End With
Application.ScreenUpdating = True
Else
Cancel = True
End If
Case Else
'do nothing
End Select
End Sub
'Variante 2
Sub DruckenPlaketten()
Dim wks As Worksheet, Zeile As Long
If MsgBox("Plaketten drucken?", vbQuestion + vbYesNo) = vbYes Then
Set wks = Worksheets("Tabelle1")
Application.ScreenUpdating = False
With wks
.Cells.PageBreak = xlPageBreakNone
For Zeile = 30 To 209
If .Cells(Zeile, 1) = 0 Then
.Rows(Zeile).Hidden = True
ElseIf .Cells(Zeile, 1) = 1 Then
.Rows(Zeile).Hidden = False
Else
'do nothing
End If
Select Case Zeile
Case 30, 50, 70, 90, 110, 130, 150, 170, 190 'Zeilen mit ggf. Seitenwechsel
If .Cells(Zeile, 1) = 1 Then
.Cells(Zeile, 1).PageBreak = xlPageBreakManual
End If
Case Else
'do nothing
End Select
Next
.PrintOut
'        .PrintPreview
.Rows.Hidden = False 'Alle Zeilen wieder einblenden
End With
Application.ScreenUpdating = True
End If
End Sub


Anzeige
AW: Makro für flexiblen Druckbereich
08.02.2008 14:08:29
Patricia
Vielen lieben Dank.
lg Patricia

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige