Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mehrere Autofilter per VBA setzen

Problem mehrere Autofilter per VBA setzen
24.10.2016 19:07:56
Matthias
Hallo Liebe VBA Profis,
ich habe bei der Umsetzung eines Makros, um Autofilter in mehreren Spalten zu setzen, ein Problem.
Hintergrund:
Es geht darum in einer Tabelle mit vielen Materialien, denen Eigenschaften zugeordnet sind, per Makro vergleichbare Materialien zu finden.
Dazu kopiere ich die Eigenschaftswerte mehrerer Spalten des gefilerten Materials und möchte diese dann als Autofilter setzen.
Dies klappt bis auf eine Spalte ohne Probleme.
In der Spalte, die Probleme macht, sind Werte, - aber der Autofilter lässt keinen Zahlenfilter (z.B. "größer als" oder "zwischen") zu.
Er setzt zwar den Wert/die Werte aber "zeigt/findet" keine Zeilen - unabhängig davon, ob ich die Werte im Makro als Variable oder "fest" reinschreibe.
Vielleicht kann mir jemand sagen, woran dies liegt und wie ich es lösen kann.
Ich bin da mit meinem Latein am Ende.
Hier mal mein momentaner Code und die XLS-Tabelle.
In dem Beispiel soll bei der Auswahl des Materials 01-1006 alle Breiten >124cm, alle Blattdicken +/- 10% von 0,08 und im Sortenschlüssel 1 und 2 nur A bzw. Z angezeigt werden. D.h. Nr. 01-1005, 01-1006 und 01-1007.
https://www.herber.de/bbs/user/108998.xlsx
Sub test_Autofilter()
Dim Bereich As String
Dim Feld1 As Variant, Feld2 As Double, Feld3 As String, Feld4 As String
Dim Toleranz_Blattdicke As Double
Dim Blattdicke_Untergrenze As Double, Blattdicke_Obergrenze As Double
Sheets("Tabelle1").Activate
Feld1 = Sheets(1).Range("C9") 'Breite
Feld2 = Sheets(1).Range("D9") 'Blattdicke
Feld3 = Sheets(1).Range("E9") 'Sortenschlüssel1
Feld4 = Sheets(1).Range("F9") 'Sortenschlüssel2
Toleranz_Blattdicke = Sheets(1).Range("D1")
If ActiveSheet.AutoFilterMode Then ActiveCell.AutoFilter
Bereich = "A2:F" & Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.Range(Bereich).AutoFilter Field:=3, Criteria1:=">=" & Feld1
Blattdicke_Untergrenze = Round(Feld2 * (1 - Toleranz_Blattdicke), 2)
Blattdicke_Obergrenze = Round(Feld2 * (1 + Toleranz_Blattdicke), 2)
ActiveSheet.Range(Bereich).AutoFilter Field:=4, Criteria1:=">=" & Blattdicke_Untergrenze,  _
Operator:=xlAnd, Criteria2:="

Danke für Eure Unterstützung im Voraus.
Viele Grüße
Matthias

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mehrere Autofilter per VBA setzen
24.10.2016 23:31:49
Matthias
Hab die Lösung gerade selber gefunden.
Das Problem lag im Zahlenformat zw. Dt. Excel und Engl. VBA-Version.
Nachdem ich das Dt. "," durch ein "." in der Formel ersetzt habe, klappts.
Blattdicke_Untergrenze = Replace(Round(Feld2 * (1 - Toleranz_Blattdicke), 2), ",", ".")
Blattdicke_Obergrenze = Replace(Round(Feld2 * (1 + Toleranz_Blattdicke), 2), ",", ".")
Anzeige

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige