Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Autofilter ergibt falsche Ergebnisse





Frage

Hallo Gemeinde! Ich habe da schon wieder ein Problem! Ich sortiere per AutoFilter meine Datenbank. Kriterien der Spalte Q: 1. --> Werte mit 2 oder 4 2. --> Werte mit 3 oder 5 Beide Auswertungen kopiere ich in unterschieliche Arbeitmappen. Mein alter Datensatz erthält 530 Zeilen! Wenn ich jedoch den Datensatz verändere (mehr oder weniger Zeilen) stimmt der Filter nicht mehr. Ich erhalte Tabellen, in denen die Werte 2, 3, 4, und 5 vorhanden sind. Mein Makro lautet: [code]Sub Datentrennung() ' Tastenkombination: Strg+j ' Sheets("Daten Agenda").Select Rows("1:1").Select Selection.AutoFilter Selection.AutoFilter Field:=17, Criteria1:="=2", Operator:=xlOr, _ Criteria2:="=4" Columns("A:J").Select Selection.Copy Sheets("Daten Kosten").Select Range("A1").Select ActiveSheet.Paste Range("Q2").Select ' Tastenkombination: Strg+ö ' Sheets("Daten Agenda").Select Application.CutCopyMode = False Rows("1:1").Select Selection.AutoFilter ' Tastenkombination: Strg+l ' ActiveWindow.ScrollWorkbookTabs Position:=xlFirst Sheets("Daten Agenda").Select Rows("1:1").Select Selection.AutoFilter Selection.AutoFilter Field:=17, Criteria1:="=3", Operator:=xlOr, _ Criteria2:="=5" Columns("A:J").Select Selection.Copy ActiveWindow.ScrollWorkbookTabs Sheets:=12 Sheets("Daten Erlöse").Select Range("A1").Select ActiveSheet.Paste ActiveWindow.SmallScroll ToRight:=13 Range("Q2").Select ' Tastenkombination: Strg+r ' ActiveWindow.ScrollWorkbookTabs Position:=xlFirst Sheets("Daten Agenda").Select Rows("1:1").Select Selection.AutoFilter Range("A1").Select Sheets("Deckblatt").Select End Sub[/code] Wo liegt hier der Fehler und wie kann ich das veinfachen, damit bei variablen Datensatz der Fehler nicht wieder auftaucht? Danke und Gruss Ines

Antwort 1 von Frank_Br

Hallo Ines,

für Dein Problem gibt es aus meiner Sicht nur eine Ursache, wenn Du den Datensatz verändertest (mehr oder weniger Zeilen), dann gab es leere Zeilen im gesamten Datensatz, das mag der Filter nicht und zeigt falsche Ergebnisse.

Also:
Du kannst in Deiner Datenbank alles verändern, nur es darf zwischendurch keine leeren Zeilen geben, bzw. es muss in jeder Zeile mindestens ein Eintrag in irgendeiner Spalte innerhalb Deiner Datenbank (Spalte A bis Q) geben.
Ein gültiger Eintrag darf auch aus einer Null oder einem Leerzeichen bestehen.

Tipp:
Bevor Du den Autofilter setzt, sortiere die Datenbank (Sheet Daten Agenda) per VBA-Code.

Einfach so, z.B. Sortieren entsprechend Daten in Spalte 1 (Range("A2") aufsteigend :

Sub SortiereDatenbank()
Range("A2:Q16").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
End Sub


Tschüs, Frank


Antwort 2 von Ines

Hallo Frank!

Was muss ich den in meinem Code ändern, das der Filter nur bis in die letzte Zeile des Datensatzes greift? (Etwas wie: Bereich makieren bis letzte Zeile)Dann wäre das Problem mit den Leerzeilen, denk ich, schon behoben.

Gruss
Ines

Antwort 3 von Frank_Br

Hallo Ines,

hast Du denn nicht mal probehalber meinen Code-Vorschlag bei Dir eingebaut? Dann sollte es klappen! Allerdings mit einer Korrektur, siehe unten.

Jedesmal, wenn in Deinem Code die Zeile:

Sheets("Daten Erlöse").Select

auftaucht, müßtest Du dahinter diese Zeilen einfügen:

Range("A2:Q65536").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select

Wieviele Zeilen Deine Datenbank enthält, spielt dann keine Rolle mehr weil bis zum Ende sortiert wird.

Dann greift auch Dein Filter richtig.

Tschüs, Frank




Antwort 4 von Ines

Danke für die Antwort, Frank!
Ich habe da im Moment noch was am Wickel, wenn das auch nicht klappt, komme ich vielleicht auf Deine Variante zurück!

Ines


PS: Weißt Du, ob man bei Pivot-Tabellen das "Summe von..." vor definieren kann? Grundeinstellung scheint "Anzahl von" zu sein.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: