Stránka 1 z 1

Makro v Excelu - buňka s aktivním filtrem PROBLEM

Napsal: 02 úno 2010 09:09
od Transmit
Zdravim ještě jednou,

filtr se zvýrazněnou buňkou funguje, přestala ale fungovat klasická možnost volby ÚPRAVY - ZPĚT. Když makro s vybarvením buňky aktivního filtru smažu vše funguje..
Dá se to nějak spravit/obejít?

Díky za odpověď

Re: Makro v Excelu - buňka s aktivním filtrem PROBLEM

Napsal: 02 úno 2010 10:42
od navstevnik
Procedura pouzita pro zvyrazneni aktivnich kriterii aut filtru ma za nasledek reset nastaveni Undo (ReUndo), takze lze mit bud zvyraznovani nebo Undo, nelze mit oboje.
Moznym resenim je na list vlozit Prepinaci tlacitko (z Panely nastroju>Ovladaci prvky>ToggleButton) a dle potreby toto tlacitko aktivovat/deaktivovat, pricemz procedura podle stavu bude zpri zmenach v nastaveni autofiltru patricne upravovat/neupravovat podbarveni bunek, v neaktivnim stavu lze pouzit Undo.

Ovladaci prvek ToggleButton - upravit:
Name: tggAF
Caption: "Aktivovat zvýraznění AF"
a upravena procedura:

Kód: Vybrat vše

Private Sub Worksheet_Calculate()
  Dim af As AutoFilter
  Dim fFilter As Filter
  Dim iFilterCount As Integer
  ' vyhodnoceni stavu prep tlacitka tggAF
  If Me.tggAF.Value Then
    If ActiveSheet.AutoFilterMode Then
      Set af = ActiveSheet.AutoFilter
      iFilterCount = 1
      For Each fFilter In af.Filters
        If fFilter.On Then
          af.Range.Cells(1, iFilterCount) _
          .Interior.ColorIndex = 6  'změnou čísla lze měnit barvu výplně (3-červená,5- modrá...)
            Else
          af.Range.Cells(1, iFilterCount) _
          .Interior.ColorIndex = xlNone  'zde se nastavuje barva výplně buňky s neaktivním filtrem
            End If
        iFilterCount = iFilterCount + 1
      Next fFilter
    Else
      Rows(1).EntireRow.Interior.ColorIndex = xlNone
    End If
  End If
End Sub

Nevylucuji, ze muze existovat i jine reseni celeho problemu zvyraznovani.
PS: napr. zvyraznovat stiskem tlacitka, nikoliv automaticky