Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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
Inhaltsverzeichnis

Selektiertes Drucken v. Sheets und Bereichen

Selektiertes Drucken v. Sheets und Bereichen
07.01.2009 10:20:57
Lenni
Moin Excellianer!!
Ich weiß!! ...und ich habe auch schon viel zum Thema Drucken im Archiv gelesen und gefunden... ...aber leider nix passendes gefunden... ;-((
Die Vorgaben sind:
Ein Tabellenblatt, bei dem die Spaltenköpfe als Überschrift bzw. "wiederkehrende Zeilen" gesetzt sind.
In dem Bereich, in dem Eingaben via UserForm eingetragen werden, machen mir "bedingte Formatierungen" bei Werteintrag Rahmen um die Zellen. Das geht von der Zeile 16 bis zur Zeile 5000
Meine Fragen sind:
1. Kann man die Druckfunktion in der Exceldatei auf ausgewählte Blätter beschränken? Ich vermute, dass ich da meiner AutoOpen-Routine etwas hinzufügen müsste?!!
2. Die zum Ausdruck freigegebenen Tabellenblätter sollen nur (!) den Bereich der Reihe nach ausdrucken, der mit Werten befüllt ist. Ich möchte die Seiten, die ausgedruckt werden sollen nicht manuell im Druck-Manager eintragen. Das sollte automatisch geschehen.
-------------------------------
Es würde mich nicht stören, wenn die die Druckfunktion der gesamten Exceldatei zu erst kpl. außer Kraft gesetzt werden muss, um sie dann meinen Vorstellungen entsprechend durch eigene CommandButton und/oder Menü-Einträge sowie einem VBA-Skript neu zu gestalten.
Vielen Dank!!
Viele Grüße aus dem hohen Norden
Lenni

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

Betreff
Datum
Anwender
Anzeige
AW: Selektiertes Drucken v. Sheets und Bereichen
07.01.2009 13:15:00
fcs
Hallo Lenni,
die folgende BeforePrint-Prozedur prüft die Namen der zu druckenden Blätter und bricht ggf. den Druckvorgang ab.
Ob die Sub-Routine für den Druckbereich erforderlich ist hängt von den Daten/Formaten in den Tabellenblättern ab. Ggf. muss die Prozedur auch noch angepasst werden.
Einfügen muss du die Prozeduren im VBA-Editor unter "DieseArbeitsmappe" der Datei.
Gruß
Franz

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Blatt As Object, bolAbbruch As Boolean
'Prüfen des/der zum Drucken gewählten Blatts/Blätter
For Each Blatt In ActiveWindow.SelectedSheets
Select Case Blatt.Name
Case "NoPrint1", "NoPrint2"
'Namen der nicht zu druckenden Blätter
MsgBox "Das Blatt " & Blatt.Name & " darf nicht gedruckt werden!" & vbLf & _
"Druckvorgang wird abgebrochen"
bolAbbruch = True
Exit For
Case Else
'do nothing
End Select
Next
If bolAbbruch = True Then
'Abbruch des Druckvorgangs/der Seitenvorschau
Cancel = True
Else
'Sub-Routine zur Aufbereitung des Druckbereichs der Tabellenblätter aufrufen
Call Druckbereich
End If
End Sub
Private Sub Druckbereich()
Dim Blatt As Object, wks As Worksheet, lngLastRow As Long, lngSpalte
'Aufbereiten des Druckbereichs der selektierten Tabellenblätter
For Each Blatt In ActiveWindow.SelectedSheets
If Blatt.Type = xlWorksheet Then
Set wks = Blatt
lngLastRow = 0
With wks
'Letzte Zeile mit Dateneinträgen im Blatt ermitteln
For lngSpalte = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Column
If .Cells(.Rows.Count, lngSpalte).End(xlUp).Row > lngLastRow Then
lngLastRow = .Cells(.Rows.Count, lngSpalte).End(xlUp).Row
End If
Next
'Druckbereich setzen
'### ggf. Startzeile und Spalten des Druckbereichs anpassen
.PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(lngLastRow, 7)).Address
End With
Else
'Diagramme und andere Nicht-Tabellenblätter
'do nothing
End If
Next
End Sub


Anzeige
AW: Selektiertes Drucken v. Sheets und Bereichen
07.01.2009 17:10:14
Lenni
Vielen Dank Franz!! ...ist irgendwie merkwürdig: Ich hatte schon vor ca. 2 Stunden Dir hier eine Rückmeldung geschrieben, dass ich mich später noch mal melden werde... ...doch diese ist "wäch"...?! ...egal...
Ich habe mitlerweile Dein Skript integriert und Deinen Anmerkungen konnte ich auch problemlos folgen. Auch finde ich die Logik gut: Alle nicht benötigten Sheets werden zunächst für den Ausdruck gesperrt und dann wendet man sich den auszudruckenden Tabellenblättern zu.
Und das klappt auch!! ...wenn da nicht folgende neue Schwierigkeit wäre: Könnte man den auszudruckenden Bereich für verschiedene Tabellenblätter selektieren? ...denn meine Tabellen innerhalb meiner Datei sehen alle unterschiedlich aus.
Ansonsten hast Du mich einen gewaltigen Schritt weiter gebracht!!! Danke dafür!
Gruß
Lenni
Anzeige
AW: Selektiertes Drucken v. Sheets und Bereichen
07.01.2009 18:16:00
fcs
Hallo Lenni,
dann muss du die Aufbereitung des Druckbereichs individuell je Blatt festlegen bzw. Besonderheiten je Blatt festlegen.
Gruß
Franz

Private Sub Druckbereich()
Dim Blatt As Object, wks As Worksheet, lngLastRow As Long, lngSpalte
Dim lngSpalte1 As Long, lngSpalteL As Long, lngZeile1 As Long
'Aufbereiten des Druckbereichs der selektierten Tabellenblätter
For Each Blatt In ActiveWindow.SelectedSheets
If Blatt.Type = xlWorksheet Then
Set wks = Blatt
lngLastRow = 0
With wks
'Basiswerte für Druckbereich
lngZeile1 = 1
lngSpalte1 = 1
lngSpalteL = .Cells.SpecialCells(xlCellTypeLastCell).Column
Select Case wks.Name
Case "Tabelle1"
lngZeile1 = 16: lngSpalteL = 7
'Für Druckbereich letzte Zeile mit Wert in Spalte A ermitteln
lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
Case "Tabelle2"
lngZeile1 = 2: lngSpalteL = 5
Case Else
'do nothing - Basiswerte verwenden
End Select
If lngLastRow = 0 Then
'Wenn letzte zu druckende Zeile nicht in den Case-Anweisungen ermittelt, _
dann letzte Zeile mit Dateneinträgen im Blatt über alle Spalten ermitteln
For lngSpalte = lngSpalte1 To lngSpalteL
If .Cells(.Rows.Count, lngSpalte).End(xlUp).Row > lngLastRow Then
lngLastRow = .Cells(.Rows.Count, lngSpalte).End(xlUp).Row
End If
Next
End If
'Druckbereich setzen
.PageSetup.PrintArea = .Range(.Cells(lngZeile1, lngSpalte1), _
.Cells(lngLastRow, lngSpalteL)).Address
End With
Else
'Diagramme und andere Nicht-Tabellenblätter
'do nothing
End If
Next
End Sub


Anzeige
AW: Danke Franz!!
07.01.2009 19:15:20
Lenni
Tja Franz, was soll ich anderes sagen als: PERFEKT!!
...nach kurzem "neuen durchdenken" klappte die Umsetzung problemlos!
Vielen vielen Dank!!
Gruß
Lenni

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige