[ okilite @ 31.10.2006. 21:21 ] @
Imam Workbook i u njemu 8 sheet-ova. Sheet 1 mi sluzi kao baza, u kojoj unosim podatke koji se linkaju u ostale sheet-ove. I sada bi zelio da mi se printa onaj sheet koji mu odredim stiskanjem jednog polja u bazi, recimo za sheet 2 polje A1, sheet 3 polje A2. i tako dalje.Znaci da netrebam otvarati svaki sheet za sebe i zadati mu printanje, vec da to bude sve sa jednoga mjesta to jest iz baze. Hvala
[ Jpeca @ 01.11.2006. 08:07 ] @
Evo kako bi moglo koristeci VBA kod.
Kreiras makro koji štampa listove koji su označeni - ja sam uveo * da označim koji se list štampa a koji
ne ali može bilo šta.
Code:

Sub PrintSheets()
'
' Štampa listove za koje je
' u koloni 1 na prvom listu upisana *
'
' P.Jovanovic 01/11/2006
'
    For i = 1 To ThisWorkbook.Sheets().Count - 1
    If ThisWorkbook.Sheets(1).Cells(i, 1).Value = "*" Then
        ThisWorkbook.Sheets(i + 1).PrintOut
    End If
    Next i
End Sub


Sada možeš pokrenuti makro i proveriti da li je štampa OK.
Dodatno možeš standardnu štampu (Print dugme ili File/Print) zameniti ovim makrom - prekopiraj sledeći kod za događaj Workbook_BeforePrint

Code:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  Application.EnableEvents = False
  PrintSheets
  Application.EnableEvents = True
  Cancel = True
End Sub