Witam,
może tak:
Sub Printing()
Dim Target As String
Target = Sheets("Centrum").Range("G7").Value
If Target = "" Then Exit Sub
Dim vSheetArray As Variant
Dim i As Long
If Target = "All" Then
vSheetArray = Array("GREEN", "BLUE", "YELLOW", "GREY", "BLACK")
Else
vSheetArray = Array(Target)
End If
For i = LBound(vSheetArray) To UBound(vSheetArray)
Sheets(vSheetArray(i)).PageSetup.PrintGridlines = True
Sheets(vSheetArray(i)).Visible = True
Next i
Sheets(vSheetArray).PrintOut copies:=1, Collate:=True
For i = LBound(vSheetArray) To UBound(vSheetArray)
Sheets(vSheetArray(i)).Visible = False
Next i
End Sub
pozdrawiam
Admin
Cytat:Czesc, witam
Potrzebuje pomocy.
W zakladce "Centrum" w punkcie G7 mam do wyboru liste rozwijana, ktora zawiera nazwy zakladek:
GREEN
BLUE
YELLOW
GREY
BLACK
All
Drukowanie samo w sobie, gdy wybieram dana zakladke i klikam makro - dziala. Strona sie drukuje.
Potrzebuje dograc jeszcze opcje, w ktorej gdy wybiore "All" to wydrukuja sie wszystkie zakladki.
Wazne - w pliku sa jeszcze inne zakladki z danymi, ktorych nie chce drukowac (wiec print whole workbook nie wchodzi w gre)
Prosze o pomoc, bo wyskakuje mi blad, ze if jest zablokowany.
Dziekuje z gory!
KOD:
Sub Printing()
Target = Sheets("Centrum").Range("G7").Value
If Target = "All" Then With Worksheets("GREEN") & Worksheets("BLUE") & Worksheets("YELLOW") & Worksheets("GREY") & Worksheets("BLACK")
.Visible = True
.PageSetup.PrintGridlines = True
.PrintOut Copies:=1, Collate:=True
.Visible = False
End If
Target = Sheets("Centrum").Range("G7").Value
If Not Target = "All" Then With Sheets(Target)
.Visible = True
.PageSetup.PrintGridlines = True
.PrintOut Copies:=1, Collate:=True
.Visible = False
End If
End With
End Sub
|