kann man den unteren Code wie folgt ändern: Es sollen beliebig viele (kopierte) Tabellenblätter, die den Namen FWK_VSA haben, erkannt und zusammen gedruckt werden. In dem Code müsste ich beispielsweise schon vorher wissen wie viele Tabellenblätter diesen Namen haben. Wenn ich nun eine fünfte Kopie des Tabellenblattes (FWK_VSA (5)) hätte, würde der Code das nicht mit drucken.
Sub FWKVSADRUCK()
Dim ArrDruck() As String, varItem, k As Integer, strAktiv As String
Dim ArrVorauswahl As Variant
On Error GoTo Fehler
ArrVorauswahl = Split("FWK_VSA,FWK_VSA (2),FWK_VSA (3),FWK_VSA (4)", ",")
strAktiv = ActiveSheet.Name
For Each varItem In ArrVorauswahl
With ActiveWorkbook.Sheets(varItem)
If .Visible = xlSheetVisible Then
k = k + 1
ReDim Preserve ArrDruck(1 To k)
ArrDruck(k) = .Name
End If
End With
weiter:
Next
If k > 0 Then
Application.ScreenUpdating = False
Sheets(ArrDruck).Select
Application.Dialogs(xlDialogPrint).Show
Application.ScreenUpdating = True
Else
MsgBox "Es gibt keine zu druckenden Bl_tter"
End If
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case 9 'Indexfehler
Resume weiter
Case Else
MsgBox "Fehler-Nr,: " & .nummer & vbLf & .Description
End Select
End With
ActiveWorkbook.Sheets(strAktiv).Select
End Sub