[ Sudarica @ 07.05.2010. 16:35 ] @
Molim pomoć
imam makro naredbu koja mi skriva i otkriva redove ali samo na jednom radnom listu, a trebalo bi mi ta to radi za raspon između listova A:Z. Ukupno u tom rasponu ima 80 listova (sheet). Htjela bi da ju namoram pozivati nego jednostavno ako je red = 0 da ga sakrije a ako unesem u njega iznos odnosno ako nije jednak 0 da ga otkrije
Makro za jedan radni list je

Sub HideRows()
BeginRow = 17
EndRow = 29
ChkCol = (6.7)

For RowCnt = BeginRow To EndRow
If Cells(RowCnt, ChkCol).Value = 0 Then
Cells(RowCnt, ChkCol).EntireRow.Hidden = True
End If
Next RowCnt
For RowCnt = BeginRow To EndRow
If Cells(RowCnt, ChkCol).Value > 0 Then
Cells(RowCnt, ChkCol).EntireRow.Hidden = False
End If
Next RowCnt
End Sub
Točno ovo bi trebao raditi na svakom radnom listu unutar raspona A:Z

Hvala na pomoći
[ FOX028 @ 07.05.2010. 23:20 ] @
Nisam te razumeo bas najbolje, da li si mislila ako je ceo red jednak 0 ili odredjena celija ili odredjeni opseg celija u odredjenom redu.
A ne razumem i kako mislis uneti neku vrednos u redu koji je sakriven osim ako se ne unosi preko neke f-je ili VBA naredbom.
najbolje okaci ti taj fajl pa cemo pokusati resiti problem.

[Ovu poruku je menjao FOX028 dana 08.05.2010. u 07:43 GMT+1]
[ Sudarica @ 08.05.2010. 09:15 ] @
Ako su nule u u obe kolone (col) 6 i 7 i u rasponu redova (row) od 17 do 29 i sve vrijedi unutar raspona (sheet) listova A:Z. Ako je 0 samo u col 6 ili 7 onda red (row) mora ostati otvoren. Unos podataka je u (Sheet) Račun zatim slijedi rekapitulacija (sabiranje rezultata) iz potrebnog raspona (sheet) listova A:Z, pa iza toga pomoćni (sheet) list A i onda (sheet) listovi raspona ( ima ih 80-ak) i konačno zadnji list pomoćni Z.

Hvala
Pozdrv
[ Jpeca @ 08.05.2010. 11:09 ] @
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]
[ Sudarica @ 08.05.2010. 11:44 ] @
Hvala na dopuni upravo sam to htjela pitati radi onako kako treba.Radi se o izvještajima koji se mjenjaju svaki mjesec od početka tako da je ovo upravo ono što meni treba. (na početku mjeseca sve kolone raspona A:Z su 0 ali nakon obrade podataka moram sakriti sve 0 jer u konačnom izvještaju namaju smisla samo zbunjuju) ili bolje rečeno "smetaju vrlim managerima"

Hvala uglavnom jako puno