| Jak wyróżnić kolumny, na które założony jest autofiltr? |
|
Problem: Czy jest jakiś sposób na to aby wyróżnić kolumny, na które założony jest autofiltr? Rozwiązanie: Rozwiązaniem może być poniższe makro, które zmienia kolor czcionki nagłówka. Makro działa w czasie rzeczywistym jednak aby procedura Worksheet_Calculate() zadziałała, należy wstawić obok jakąś formułę, która odwołuje się do tabeli, w której zamieszczony jest autofiltr np. =SUMY.CZĘŚCIOWE(9;$A$1:$A$1000). ![]() Private Sub Worksheet_Calculate() Dim objAutofiltr As AutoFilter Dim lLiczbaKolumn As Integer Dim lLicznikPetli As Long With Me 'Jezeli nie ma autofiltra, wtedy zaklada go If Not .AutoFilterMode Then .Range("A1").AutoFilter 'Przypisuje zmienna obiektowa do autofiltra Set objAutofiltr = .AutoFilter With objAutofiltr 'Zlicza ile jest kolumn w tabeli lLiczbaKolumn = .Filters.Count 'Czarna czcionka dla wszystkich danych z wiersza pierwszego .Range.Resize(1, lLiczbaKolumn).Font.ColorIndex = xlAutomatic 'Czerwona czcionka dla naglowkow, na ktore zalozony jest autofiltr For lLicznikPetli = 1 To lLiczbaKolumn If .Filters(lLicznikPetli).On Then .Range(1, lLicznikPetli).Font.ColorIndex = 3 End If Next lLicznikPetli End With End With End Sub |
|
| Zmieniony ( Wtorek, 29. Czerwiec 2010 10:15 ) |
