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

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Transmit
nováček
Příspěvky: 29
Registrován: leden 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Transmit » 02 úno 2010 09:09

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ěď

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod navstevnik » 02 úno 2010 10:42

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


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti