Hallo!
Ich habe auf Blatt 1 Checkbox1 bis 7 mit denen ich die Sichtbarkeit der nachfolgenden Arbeitsblätter 2-8 einstelle. Jetzt habe ich unter den Checkboxes ein Formular-Steuerelement-Button, mit dem ich die sichtbaren Blätter drucken möchte. (Hinweis: nach den betreffenden Blättern folgen weitere, die zwar immer sichtbar sind, aber nur manuell ausgedruckt werden können sollen)
Hier mein Versuch, der aber leider bei inaktiven CheckBoxen nicht funktioniert:
1. Zunächst die Steuerung der SIchtbarkeit der Arbeitsblätter (hier als Bsp. Checkbox 3):
<SPAN class=Norm><SPAN class=Vb>Private Sub</SPAN> CheckBox3_Click()
<SPAN class=Vb>If</SPAN> CheckBox3 = <SPAN class=Vb>True Then</SPAN>
Worksheets("Abs3").Visible = <SPAN class=Vb>True</SPAN>
<SPAN class=Vb>Else</SPAN>
Worksheets("Abs3").Visible = <SPAN class=Vb>False</SPAN>
<SPAN class=Vb>End If</SPAN>
<SPAN class=Vb>End Sub</SPAN></SPAN>
2. Dann der Code zum Drucken (Sheet 1 immer; Sheet 2-8 je nach Ergebnis CheckBox 1-7)
<SPAN class=Norm><SPAN class=Vb>Sub</SPAN> Drucken()
<SPAN class=Vb>Dim</SPAN> intSh <SPAN class=Vb>As Integer</SPAN>
<SPAN class=Vb>Dim</SPAN> Msg <SPAN class=Vb>As String</SPAN>
<SPAN class=Vb>Dim</SPAN> intX <SPAN class=Vb>As Integer</SPAN>
<SPAN class=Vb>Dim</SPAN> vntSheets() <SPAN class=Vb>As Variant</SPAN>
Application.ScreenUpdating = <SPAN class=Vb>False</SPAN>
intX = intX + 1
<SPAN class=Vb>ReDim Preserve</SPAN> vntSheets(1 <SPAN class=Vb>To</SPAN> intX)
vntSheets(intX) = ActiveWorkbook.Worksheets(intX).Name
Msg = Msg & ActiveWorkbook.Worksheets(intX).Name & vbCr
<SPAN class=Vb>For</SPAN> intSh = 1 <SPAN class=Vb>To</SPAN> 7
<SPAN class=Vb>If</SPAN> CheckBox & (intSh) = <SPAN class=Vb>True Then</SPAN>
intX = intX + 1
<SPAN class=Vb>ReDim Preserve</SPAN> vntSheets(1 <SPAN class=Vb>To</SPAN> intX)
vntSheets(intX) = ActiveWorkbook.Worksheets(intSh + 1).Name
Msg = Msg & vntSheets(intX) & vbCr
<SPAN class=Vb>End If</SPAN>
<SPAN class=Vb>Next</SPAN>
ActiveWorkbook.Sheets(vntSheets).<SPAN class=Vb>Select</SPAN>
Application.Dialogs(xlDialogPrint).Show
Application.ScreenUpdating = <SPAN class=Vb>True</SPAN>
Sheets("Deckblatt").<SPAN class=Vb>Select</SPAN>
MsgBox "Folgende Seiten wurden gedruckt:" & vbCr & vbCr & Msg
<SPAN class=Vb>End Sub</SPAN></SPAN>
Sind alle CheckBoxen aktiviert, funktioniert alles prima. Ist aber auch schon eine deaktiviert kommt die Fehler-Meldung "400". Was ist falsch am Code?
Danke für eure Hilfe!~
|