Hallo,
In de bijlage vind je een bestand, zodra er een filter op cel E5 wordt gezet kleurt de macro de gefilterde waardes in kolom D zwart. Indien deze filter wordt uitgezet wil ik dat de waardes in kolom D allemaal weer wit kleuren. Echter lukt het mij het niet om de macro aan te roepen zodra de filter wordt uitgezet.
Wie kan mij helpen?
Bekijk bijlage CallMacroWhenFilterCleared.xlsm
Hieronder de codes die ik momenteel gebruik:
Private Sub Worksheet_Calculate()
If ActiveSheet.AutoFilterMode Then
Call Filtering
Else
End If
End Sub
Sub Filtering()
'
' Filtering
'
Dim flt As Filter
Dim iCol As Integer
Dim lRow As Long
Dim rTemp As Range
Dim bFullCol As Boolean
' Set as True if you want entire column shaded
bFullCol = False
If ActiveSheet.AutoFilterMode Then
iCol = ActiveSheet.AutoFilter.Range.Column
lRow = ActiveSheet.AutoFilter.Range.Row
Application.EnableEvents = False
For Each flt In ActiveSheet.AutoFilter.Filters
If bFullCol Then
Set rTemp = Cells(lRow, iCol).EntireColumn
Else
Set rTemp = Cells(lRow, iCol)
End If
If flt.On Then
Range("D8").Select
Range(Selection, Selection.End(xlDown)).Select
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
Else
End If
Set rTemp = Nothing
iCol = iCol + 1
Next flt
'Range("A1").Select
Application.EnableEvents = True
End If
'
End Sub
Gr.
Koen.
In de bijlage vind je een bestand, zodra er een filter op cel E5 wordt gezet kleurt de macro de gefilterde waardes in kolom D zwart. Indien deze filter wordt uitgezet wil ik dat de waardes in kolom D allemaal weer wit kleuren. Echter lukt het mij het niet om de macro aan te roepen zodra de filter wordt uitgezet.
Wie kan mij helpen?
Bekijk bijlage CallMacroWhenFilterCleared.xlsm
Hieronder de codes die ik momenteel gebruik:
Private Sub Worksheet_Calculate()
If ActiveSheet.AutoFilterMode Then
Call Filtering
Else
End If
End Sub
Sub Filtering()
'
' Filtering
'
Dim flt As Filter
Dim iCol As Integer
Dim lRow As Long
Dim rTemp As Range
Dim bFullCol As Boolean
' Set as True if you want entire column shaded
bFullCol = False
If ActiveSheet.AutoFilterMode Then
iCol = ActiveSheet.AutoFilter.Range.Column
lRow = ActiveSheet.AutoFilter.Range.Row
Application.EnableEvents = False
For Each flt In ActiveSheet.AutoFilter.Filters
If bFullCol Then
Set rTemp = Cells(lRow, iCol).EntireColumn
Else
Set rTemp = Cells(lRow, iCol)
End If
If flt.On Then
Range("D8").Select
Range(Selection, Selection.End(xlDown)).Select
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
Else
End If
Set rTemp = Nothing
iCol = iCol + 1
Next flt
'Range("A1").Select
Application.EnableEvents = True
End If
'
End Sub
Gr.
Koen.