Hoi,
ik werk vaak met (grote) tabellen en gebruik veel het autofilter. Ik heb een tijdje geleden een macro gevonden waarmee je makkelijk kan zien op welke kolommen je een filter aan hebt staan. Het werkt via onderstaande code en daarnaast moet je een functie op je werksheet hebben die bij elke wijziging een berekening uitvoert, bijvoorbeeld een SUBTOTAAL() functie.
Wat ik graag zou willen is dat ik in een nieuw bestand met één druk op de knop (via een nieuw aangemaakt menu-item) deze code kan gebruiken in een nieuwe sheet (in plaats van telkens de code te moeten opvissen uit een Word bestand). Om het nog eenvoudiger te maken zou het mooi zijn als ook in een cel (ergens ver weg gestopt) een subtotaal() functie wordt gezet zodat er helemaal geen extra handelingen meer nodig zijn. Ik krijg dit echter niet voor elkaar. Niet op de directe manier via aanmaken van xlam bestand en niet via een indirecte manier waarbij ik probeerde met een macro gewoon heel de macro tekst in het nieuwe bestand te laten kopiëren (gewoon in de sheet-module). Bij de directe manier krijgen wel de kolomkoppen de "startkleur", maar wijzigt de kleur niet als ik een filter op een kolom zet, dus het lijkt erop dat de macro niet getriggerd wordt. Kan iemand me uitleggen hoe ik dit werkend kan krijgen?
ik werk vaak met (grote) tabellen en gebruik veel het autofilter. Ik heb een tijdje geleden een macro gevonden waarmee je makkelijk kan zien op welke kolommen je een filter aan hebt staan. Het werkt via onderstaande code en daarnaast moet je een functie op je werksheet hebben die bij elke wijziging een berekening uitvoert, bijvoorbeeld een SUBTOTAAL() functie.
Code:
Private Sub Worksheet_Calculate()
If ActiveSheet.AutoFilterMode = True Then
Call Kleur_Actief_Filter
End If
End Sub
Public Sub Kleur_Actief_Filter()
Dim flt As Filter
Dim cCol As Integer
Dim lRow As Long
cCol = 0
lRow = ActiveSheet.AutoFilter.Range.Row
Application.EnableEvents = False
For Each flt In ActiveSheet.AutoFilter.Filters
cCol = cCol + 1
If flt.On = True Then
With Cells(lRow, cCol)
.Interior.Color = RGB(255, 153, 0)
.Font.ColorIndex = 1
End With
Else
With Cells(lRow, cCol)
.Interior.Color = RGB(153, 204, 255)
.Font.ColorIndex = 1
End With
End If
Next flt
Application.EnableEvents = True
Cells(1, 1).Select
End Sub
Wat ik graag zou willen is dat ik in een nieuw bestand met één druk op de knop (via een nieuw aangemaakt menu-item) deze code kan gebruiken in een nieuwe sheet (in plaats van telkens de code te moeten opvissen uit een Word bestand). Om het nog eenvoudiger te maken zou het mooi zijn als ook in een cel (ergens ver weg gestopt) een subtotaal() functie wordt gezet zodat er helemaal geen extra handelingen meer nodig zijn. Ik krijg dit echter niet voor elkaar. Niet op de directe manier via aanmaken van xlam bestand en niet via een indirecte manier waarbij ik probeerde met een macro gewoon heel de macro tekst in het nieuwe bestand te laten kopiëren (gewoon in de sheet-module). Bij de directe manier krijgen wel de kolomkoppen de "startkleur", maar wijzigt de kleur niet als ik een filter op een kolom zet, dus het lijkt erop dat de macro niet getriggerd wordt. Kan iemand me uitleggen hoe ik dit werkend kan krijgen?