Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
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

AutoFilter - bis Datentabellen Ende

AutoFilter - bis Datentabellen Ende
19.03.2018 11:25:20
THoReXXel
Hallo Zusammen,
folgendes Makro hab ich mir aufgezeichnet:
-------------------------------------------------------------------------------------
Rows("3:3").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets("EK_WK").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("EK_WK").AutoFilter.Sort.SortFields.Add Key:=Range( _
"B3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("EK_WK").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Range("$A$3:$U$3937").AutoFilter Field:=5, Criteria1:="=-0,02" _
, Operator:=xlOr, Criteria2:="=-0,01"
End Sub
-------------------------------------------------------------------------------------
Das funktioniert aber immer nur wenn die Datentabelle auch nicht mehr wie 3937 zu prüfende Zeilen (Datensätze) hat. Mit anderen Worte doch nur bei der spezifischen Datei aus der das Makro aufgezeichnet wurde.
Wie lautet der Code: Damit das Macro automatisch ermittelt wieviel Datensätze per Zeile vorhanden sind?
Ausgang ist:
Ich erhalte eine Quell-Datei (CSV) aus dem ERP-System.
Zu prüfen sind dann alle Datensätze nach Artikelnummer *kann mehrfach vorkommen* (Spalte B), nach Preis (Spalte E) aus Einträge mit 0,01 und 0,02.
Der Wert wird systemisch vom ERP generiert, weshalb ich die bestimmt Artikelnummer nicht filtere, weil die dann wiederum gleichbleibend ist (Wert 0,01 und 0,02 kann nur bei diesem Artikel aufkommen.
Sorry - leider noch im Laien Status was meine EXCEL/VBA Kenntnis angeht.
Herzlichen Dank für eure Hilfe im Voraus und einen schönen Tag.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AutoFilter - bis Datentabellen Ende
19.03.2018 12:10:40
Werner
Hallo,
letzte belegte Zelle wird in Spalte A ermittelt. Ist aber ungetestet.
Public Sub Filtern()
Dim loLetzte As Long
With ActiveWorkbook.Worksheets("EK_WK")
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
.Rows(3).AutoFilter
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=.Range("B3"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
End With
With ActiveWorkbook.Worksheets("EK_WK").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWorkbook.Worksheets("EK_WK").Range("$A$3:$U" & loLetzte).AutoFilter Field:=5, Criteria1:=" _
=-0,02" _
, Operator:=xlOr, Criteria2:="=-0,01"
End Sub
Gruß Werner
Anzeige
AW: AutoFilter - bis Datentabellen Ende
19.03.2018 12:25:54
THoReXXel
Vielen Dank! Auf jeden Fall hab ich jetzt ein Beispiel für das heranziehen einer variablen in diesem Zusammenhang.
Hatte aber das Problem - für mich überraschender Weise - selbst gelöst... *g* und denke auch ganz elegant /cheer
Rows("3:3").Select
Selection.AutoFilter
ActiveSheet.AutoFilter.Sort.SortFields.Clear
ActiveSheet.AutoFilter.Sort.SortFields.Add Key:=Range( _
"B3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveSheet.AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.UsedRange.AutoFilter Field:=5, Criteria1:="=-0,02" _
, Operator:=xlOr, Criteria2:="=-0,01"
End Sub

Anzeige
na ja...
19.03.2018 14:04:02
Werner
Hallo,
...also als erstes solltest du auf das Select verzichten, ist unnötig und macht den Code langsem. Und zweitens ist UsedRange ein unsicherer Kandidat. Wenn du z.B. irgendwelche Formatierungen (Rahmen) usw. in deiner Tabelle hast, dann gehört der formatierte Bereich auch zur UsedRange, auch wenn dort gar keine Werte in den Zellen stehen.
Gruß Werner
AW: na ja...
19.03.2018 16:14:18
THoReXXel
Oh, ok... Danke für die hilfreichen Informationen.
Dann werde ich die Form mit der Variablen bevorzugen.
In meinem konkreten Beispiel geht es, da es Rohdaten sind und noch nicht grafisch aufbereitet.
Dennoch ein wichtiger Hinweis für mich :-)
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
19.03.2018 17:15:27
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige