pvanbrakel
Gebruiker
- Lid geworden
- 2 dec 2010
- Berichten
- 35
Goedemiddag.
Ik heb een bug op mijn autofilter in mijn macro.
Nu gaat hij steeds stuk op het feit dat er wel een autofilter is en die verwijderd moet worden of dat er geen 1 is en er 1 toegevoegd moet worden.
Wat de bug precies is weet ik ook niet.
Er staat:
Run-time error '1004':
Autofilter method of Range Class failed
De bug zit in het rode stuk
Sheets("All").AutoFilterMode = False is ingevoegd voor als er een autofilter in staat dan moet die eerst uit, voordat excel weer een nieuwe autofilter in kan voegen.
Wie kan mij helpen?
Ik heb een bug op mijn autofilter in mijn macro.
Nu gaat hij steeds stuk op het feit dat er wel een autofilter is en die verwijderd moet worden of dat er geen 1 is en er 1 toegevoegd moet worden.
Wat de bug precies is weet ik ook niet.
Er staat:
Run-time error '1004':
Autofilter method of Range Class failed
Code:
Sub filteren()
With Application
'.ScreenUpdating = False
.DisplayAlerts = False
End With
'Sheets verwijderen
For Sht = Sheets.Count To 1 Step -1
If Sheets(Sht).Name <> "All" Then Sheets(Sht).Delete
Next Sht
'Spaties verwijderen
For SpatieRemove = 1 To Range("IV1").End(xlToLeft).Column + 1
Cells(1, SpatieRemove).Value = Trim(Cells(1, SpatieRemove).Value)
Next SpatieRemove
'bepalen kolommen om te filteren
Set CGZ = Range("A1:Z1").Find("CGZ", LookIn:=xlValues, Lookat:=xlWhole)
If CGZ Is Nothing Then
MsgBox "Kan de waarde CGZ niet vinden!"
Exit Sub
End If
Set CGY = Range("A1:Z1").Find("CGY", LookIn:=xlValues, Lookat:=xlWhole)
If CGY Is Nothing Then
MsgBox "Kan de waarde CGY niet vinden!"
Exit Sub
End If
Set CGX = Range("A1:Z1").Find("CGX", LookIn:=xlValues, Lookat:=xlWhole)
If CGX Is Nothing Then
MsgBox "Kan de waarde CGX niet vinden!"
Exit Sub
End If
[COLOR="red"] 'verwijderen lege rij (rij 2 is soms leeg en soms niet)
Sheets("All").Select
If WorksheetFunction.CountA([A2:Z2]) = 0 Then Rows(2).Delete
Sheets("All").AutoFilterMode = False
'filteren blok 1
With Selection
.AutoFilter Field:=CGZ.Column, Criteria1:=">-10", Operator:=xlAnd, Criteria2:="<12216"
.AutoFilter Field:=CGY.Column, Criteria1:=">-15300", Operator:=xlAnd, Criteria2:="<15300"
.AutoFilter Field:=CGX.Column, Criteria1:=">-10500", Operator:=xlAnd, Criteria2:="<62500"[/COLOR]
Sheets("All").Columns("A:Z").Copy
Sheets.Add
With ActiveSheet
.Paste
.Name = "blok1"
.[A1].Select
.Columns.AutoFit
.Tab.ColorIndex = 4
End With
'Filteren blok 234
.AutoFilter Field:=CGX.Column, Criteria1:=">62500", Operator:=xlAnd, Criteria2:="<185300"
Sheets("All").Columns("A:Z").Copy
Sheets.Add
With ActiveSheet
.Paste
.Name = "blok 234"
.[A1].Select
.Columns.AutoFit
.Tab.ColorIndex = 4
End With
'Filteren blok 5aft
.AutoFilter Field:=CGZ.Column, Criteria1:=">12216", Operator:=xlAnd, Criteria2:="<18616"
.AutoFilter Field:=CGY.Column, Criteria1:=">-10500", Operator:=xlAnd, Criteria2:="<57900"
Sheets("All").Range("A:Z").Copy
Sheets.Add
With ActiveSheet
.Paste
.Name = "blok 5aft"
.[A1].Select
.Columns.AutoFit
.Tab.ColorIndex = 4
End With
'Filteren blok 5fwd+6
.AutoFilter Field:=CGX.Column, Criteria1:=">57900", Operator:=xlAnd, Criteria2:="<190500"
.AutoFilter Field:=CGZ.Column, Criteria1:=">12216", Operator:=xlAnd, Criteria2:="<25738"
Sheets("All").Columns("A:Z").Copy
Sheets.Add
With ActiveSheet
.Paste
.Name = "blok 5fwd+6"
.[A1].Select
.Columns.AutoFit
.Tab.ColorIndex = 4
End With
'Filteren blok7
.AutoFilter Field:=CGZ.Column, Criteria1:=">25738", Operator:=xlAnd, Criteria2:="<40730"
.AutoFilter Field:=CGX.Column, Criteria1:=">111300", Operator:=xlAnd, Criteria2:="<175700"
Sheets("All").Columns("A:Z").Copy
Sheets.Add
With ActiveSheet
.Paste
.Name = "blok7"
.[A1].Select
.Columns.AutoFit
.Tab.ColorIndex = 4
End With
'uitschakelen autofilter en selectie ongedaan maken
Application.CutCopyMode = False
.AutoFilter Field:=CGX.Column
.AutoFilter Field:=CGY.Column
.AutoFilter Field:=CGZ.Column
End With
Sheets("All").Select
MsgBox "Filter proces is succesvol afgerond."
With Application
'.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
De bug zit in het rode stuk
Sheets("All").AutoFilterMode = False is ingevoegd voor als er een autofilter in staat dan moet die eerst uit, voordat excel weer een nieuwe autofilter in kan voegen.
Wie kan mij helpen?