Stránka 1 z 1

EXCEL - Macro po spusteni na schovani radku

Napsal: 28 zář 2010 13:10
od kogi
Ahoj,

potreboval bych spoustet macro po otevreni souboru.

Jednalo by se o macro, ktere by schovalo radky a to jenom radky u kterych by bylo v prvni bunce radku cilso 1.

Dik za jakekoli napady.

Re: EXCEL - Macro po spusteni na schovani radku

Napsal: 28 zář 2010 14:26
od navstevnik
Nize uvedenou proceduru vloz v editoru VBA (Alt+F11) do modulu ThisWorkbbok (Tento sesit), uprav nazev listu, na kterem maji byt skryty radky obsahujici ve sloupci A:A hodnotu = 1 :

Kód: Vybrat vše

Option Explicit

Private Sub Workbook_Open()
  Dim Wsht As Worksheet, SBlk As Range, SCll As Range
  Set Wsht = Worksheets("list1")
  With Wsht
    Set SBlk = Intersect(.UsedRange, .Range("a:a"))
  End With
  For Each SCll In SBlk.Cells
    If SCll.Value = 1 Then SCll.EntireRow.Hidden = True
  Next SCll
  Set Wsht = Nothing
  Set SBlk = Nothing
  Set SCll = Nothing
End Sub

Procedura se spousti automaticky pri otevreni souboru.

Re: EXCEL - Macro po spusteni na schovani radku

Napsal: 28 zář 2010 15:37
od kogi
Diky moc, to je presne ono, funguje.

Potreboval bych to jeste trosku upravit a to tak aby to zafunguvalo postupne u vsech listu v sesitu, mam 31listu.

O neco jsem se pokousel ale nikam to nevedlo.

Re: EXCEL - Macro po spusteni na schovani radku

Napsal: 28 zář 2010 16:00
od navstevnik
Bylo by vhodne uvest vsechny pozadavky najednou, vraceni se k doplnovani neni efektivni.
Upravena procedura:

Kód: Vybrat vše

Option Explicit

Private Sub Workbook_Open()
  Dim Wsht As Worksheet, SBlk As Range, SCll As Range
  For Each Wsht In ActiveWorkbook.Worksheets
    With Wsht
      Set SBlk = Intersect(.UsedRange, .Range("a:a"))
    End With
    For Each SCll In SBlk.Cells
      If SCll.Value = 1 Then SCll.EntireRow.Hidden = True
    Next SCll
  Next Wsht
  Set SBlk = Nothing
  Set SCll = Nothing
  Set Wsht = Nothing
End Sub