AW: Drucken von Tabellen wenn
22.09.2011 20:37:12
Tabellen
Hallo Thomas,
Franz es funktzioniert bis auf den Teil, da hast was überlesen.
Ich hab es nicht überlesen, sondern nicht so verstanden, wie du es gerne hättest. ;-)
Im Moment wird Tab5 gedruckt, wenn in einer der Zellen im Bereich A4:A20 1050 steht und wenn in einer der Zellen im Bereich C4:C20 1080 steht.
>>Das Tab 5 soll mitgedruckt werden wenn im Tab 1 A4:A20 der Wert 1050 oder Größer und in C4:C20 1800 oder größer steht.
Mit der folgenden Anpassung/Ergänzung wird Tab5 gedruckt, wenn in einer 17 Zeilen die Bedingung erfüllt wird. Geändert hat sich die If-Bedingung und die Function ist dazugekommen.
Gruß
Franz
'Code unter DieseArbeitsmappe
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim wks1 As Worksheet, wksAktiv As Worksheet
Dim arrSheets As Variant, intSheet As Integer
Cancel = True
Application.EnableEvents = False
Set wksAktiv = ActiveSheet
Set wks1 = Me.Worksheets(1) 'oder Me.Worksheets("Tabelle1")
Select Case Application.WorksheetFunction.Max(wks1.Range("A4:A20"))
Case Is >= 1050
If fncVergleich(Bereich1:=wks1.Range("A4:A20"), _
Bereich2:=wks1.Range("C4:C20"), _
vWert1:=1050, _
vWert2:=1080) = True Then
arrSheets = Array(1, 2, 3, 4, 5)
Else
arrSheets = Array(1, 2, 3, 4)
End If
Case Else
arrSheets = Array(1, 2, 3)
End Select
'Gruppiert drucken
Sheets(arrSheets).PrintOut preview:=True
' SelectedSheets
Application.EnableEvents = True
wksAktiv.Select
End Sub
Private Function fncVergleich(ByVal Bereich1 As Range, _
ByVal Bereich2 As Range, ByVal vWert1, ByVal vWert2) As Boolean
'Prüft, ob für eine Zeile in den beiden Bereichen gilt
'Wert in Bereich1 >= vWert1 UND Wert in Bereich2 >= vWert2
Dim Zeile As Long
For Zeile = 1 To Bereich1.Rows.Count
If IsNumeric(Bereich1.Cells(Zeile, 1).Value) _
And IsNumeric(Bereich2.Cells(Zeile, 1).Value) Then
If Bereich1.Cells(Zeile, 1).Value >= vWert1 _
And Bereich2.Cells(Zeile, 1).Value >= vWert2 Then
fncVergleich = True
Exit For
End If
End If
Next
End Function