Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Filterung Laufzeitfehler'1004'

VBA Filterung Laufzeitfehler'1004'
11.07.2018 10:35:45
Jkuchler
Hallo zusammen,
bin derzeit dabei Filterungen mit VBA zu regeln. Ich hab es schon für einige gemacht und das ganze war auch erfolgreich Code der funktioniert:
Dim Feld(1)
Art = Worksheets("Filterung").Range("E8").Value
For a = 0 To 17
Projekttyp = Worksheets("Checkliste6.0").Cells(2, 9 + a).Value
If Art = Projekttyp Then
Feld(0) = 7 + a
Worksheets("Checkliste6.0").AutoFilter.Range.AutoFilter Field:=Feld, Criteria1:="j", Operator:=xlFilterValue
Exit For
End If
Next
Der funktioniert ohne Probleme mit dem Array.
Nun will ich noch einen anderen Teil der Tabelle in dein dem gleichen Tabellenblatt mit einem extra Modul filtern: dabei kommt folgender Code raus:
Dim Feld(1)
If Worksheets("Filterung").Range("O14") = "x" Then
Feld(0) = 43 + a
Worksheets("Checkliste6.0").AutoFilter.Range.AutoFilter Field:=Feld, Criteria1:="="
End If
Nun macht er "witzigerweise" die Filterung; also im Tabellenblatt funktioniert die Filterung, aber dann zeigt er den typischen Fehler 'Laufzeitfehler 1004 Die AutoFilter-Methode des Range Objektes konnte nicht ausgeführt werden'
Wenn ich das ganze "hardcode" sprich in diesem Fall die 43 statt dem Array in die Anweisung schreibe funktioniert es ohne Probleme.
Ich würde es aber gerne mit Array machen, sodass ich mehrere Spalten filtern kann.
Hat jemand eine Idee an was es liegen könnte?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Filterung Laufzeitfehler'1004'
11.07.2018 10:45:31
Oberschlumpf
Hi
was bedeutet bei
Worksheets("Checkliste6.0").AutoFilter.Range.AutoFilter Field:=Feld, Criteria1:="="

Criteria1:="=" ?
Im ersten Code steht an der Stelle
Criteria1:="j"
Sollen für Criteria1:= anstelle von "=" oder "j" die ganzen Inhalte aus Feld() stehen?
Dann wäre eine weitere Schleife erforderlich, z Bsp

Dim liIdx As Integer
For liIdx = 0 To Ubound(Feld) 'Feld hat ja 2 Zeilen; 0+1
Worksheets("Checkliste6.0").AutoFilter.Range.AutoFilter Field:=Feld, Criteria1:=Feld(liIdx)
Next

Aber diese Schleife würde auch nicht wirklich Sinn ergeben, da sie so schnell durchläuft, dass du den Filter mit Feld(0) gar nicht sehen würdest.
Noch bin ich verwirrt.
Ciao
Thorsten
Anzeige
AW: VBA Filterung Laufzeitfehler'1004'
11.07.2018 10:55:59
Jkuchler
Servus Thorsten,
das zweite Kriterium ist bewusst so gewählt, sodass mit "=" alle leeren angezeigt werden und nicht alle mit "j"
War von mir schlecht formuliert sorry! Also mit dem Kriterium hat es nicht wirklich was zu tun... :)
AW: VBA Filterung Laufzeitfehler'1004'
11.07.2018 11:05:50
Oberschlumpf
Hi
sorry, dann weiß ich auch nicht weiter.
Ciao
Thorsten
AW: VBA Filterung Laufzeitfehler'1004'
16.07.2018 18:35:22
ChrisL
Hi
Ich versuche gar nicht erst die Ausgangslage nachzubauen, weil a) bin ich zu faul und b) entspricht ein Nachbau nie dem Original.
Also ich würde mal
="""j"""
oder
="="""""
probieren.
Plus/minus ein Anführungszeichen (vielleicht habe ich mich verzählt ;)
Da du einen "Text-String", "innerhalb von einem ""Text-String"" darstellen willst", braucht es jedenfalls einen ganzen Haufen Gänsefüsse :)
cu
Chris
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige