Nisam baš nešto siguran da ovaj tvoj primer radi to što si napisala. Koliko ja vidim proverava samo kolonu 7 (6.7 zaokuženo na ceo broj - interesantno da ne prijavljuje grešku). Kad to sredimo i stavimo radni list sh kao parametar dobijamo:
Code:
Sub HideRows(sh As Worksheet)
Const BeginRow As Integer = 17
Const EndRow As Integer = 29
Const ChkCol1 As Integer = 6
Const ChkCol2 As Integer = 7
For RowCnt = BeginRow To EndRow
If sh.Cells(RowCnt, ChkCol1).Value = 0 And sh.Cells(RowCnt, ChkCol2).Value = 0 Then
sh.Cells(RowCnt, ChkCol1).EntireRow.Hidden = True
Else
sh.Cells(RowCnt, ChkCol1).EntireRow.Hidden = False
End If
Next RowCnt
End Sub
Sada ukoliko su listovi koje obrađuješ poredjani u neprekidni niz onda možeš lako pozvati ovu rutinu
Code:
Sub Test()
For shnum = Sheets("A").Index To Sheets("Z").Index
HideRows Sheets(shnum)
Next shnum
End Sub
Sa obzirom na ono što očekuješ, možda je najbolje da rutinu HideRows pozoveš iz događaja SheetActivate radne sveske
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Index > Sheets("A").Index And Sh.Index < Sheets("Z").Index Then
HideRows Sh
End If
End Sub
[Ovu poruku je menjao Jpeca dana 08.05.2010. u 12:22 GMT+1]
Nije to loše Rembrante, samo što ne bi dodao još malo boje?