Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Autofilter-Problem





Frage

Hallo zusammen, ich habe eine Tabelle, aus der ich über ein Makto mit Hilfe des Autofilters einige Daten selektieren will, um sie in eine andere Tabelle zu kopieren. Alles in Allem ist das auch kein Problem, nur das Selektieren funktioniert nicht richtig. In der 1.Spalte steht ein Datum (Format "ss/mm/yyyy;@"). Wenn ich dort von Hand mit Hilfe des Autofilters ein Datum wähle ist das kein Problem. Wähle ich es mit Hilfe des Makros aus erscheint ein leeres Blatt, als ob nichts ausgewählt wurde. Die Auswahl erfolgt mit folgender Zeile: Selection.AutoFilter Field:=1, Criteria1:="25.04.2006" oder auch (ein anderer Versuch) Selection.AutoFilter Field:=1, Criteria1:= Date + 1 (wäre die bessere Methode). Leider funktioniert beides nicht. Kann mir da jemand helfen? Viele Grüße fubajunkie

Antwort 1 von nighty

hi fubajunkie :)

eventueller bezugsverlust
probier es mal so,der zu filternde bereich ist anzupassen

gruss nighty

Sheets(1).Range("B1:B100").AutoFilter field:=1, Criteria1:="25.04.2006"

Antwort 2 von nighty

hi fubajunkie :)

hier noch ein beispiel fuer einen autofilter der in der aktiven spalte aktiviert wird mit automatischer bereichsangabe auf zeilenende

gruss nighty

Option Explicit
Sub test()
Sheets(1).Range(Cells(1, ActiveCell.Column), Cells(Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row, ActiveCell.Column)).AutoFilter field:=1, Criteria1:="25.04.2006"
End Sub

Antwort 3 von fubajunkie

hi nighty,

leider klappt das nicht und ich weiß einfach nicht, wo der Fehler liegt.
Das seltsame ist dabei, dass, wenn das Makro durchgelaufen ist, das Tabellenblatt die Daten nicht anzeigt, wenn ich aber dann von Hand auf den Autofilter gehe steht er schon an der richtigen Stelle (also bei dem gewählten Datum).
An einer anderen Stelle selektiere ich nach einem Buchstaben ("H") und das klappt.
Etwas wirr, ich hoffe aber Du verstehst das trotzdem.

Gruß
fubajunkie

Antwort 4 von schnallgonz

Salve,
Zitat:
Format "ss/mm/yyyy;@"

was´n das für ein Format?
Sollte das nicht nur ein nacktes Datum sein, sondern z.B. mit Uhrzeit oder weiß der Henker, dann führt "25.04.2006" zu keinem Treffer.
Schau doch mal genau in die Datumswerte, ob da neben dem reinen Tag noch mehr steht.

mfg
schnallgonz

@ nighty
hallo König der Schleifen, ich sehe, Du bist auch zu den "Filterern" gegangen.
Nicht, dass Du Deine Schleifenkünste vernachlässigst ;-)

Antwort 5 von fubajunkie

Hallo schnallgonz,
am diesem Datumformat scheint es nicht zu liegen. Das habe ich jetzt schon mehrfach auf die diversesten Formate geändert. Die Vorlage enthält dieses Format:
25.04.2006, also "ss/mm/yyyy". Ich denke zwar, dass es sich um einen Formatfehler handelt, komme aber nicht dahinter wo der liegt.
Vielleicht fällt ja doch noch jemandem eine Lösung ein. Sonst muss ich mirwas einfallen lassen, wie ich das gesamte Makro umschreibe. Diese Auswahl ist nämlich ein grundlegender Teil...
Gruß
fubajunkie

Antwort 6 von schnallgonz

Salve,
25.04.2006 kenne ich nur als Format "tt/mm/yyyy"

Bei mir funzt jedenfalls solch eine Filterung aus AW2

mfg
schnallgonz

Antwort 7 von fubajunkie

Oh ja, natürlich ist das Format "tt/mm/yyyy". Wie ich da am Anfang auf "ss" gekommen bin weiß ich nicht.
Das seltsame ist folgendes:
ich habe 2 Auswahlzeilen in dem Makro die wie folgt aussehen:
Selection.AutoFilter Field:=3, Criteria1:="H"
Selection.AutoFilter Field:=1, Criteria1:= Date + 1
In der Spalte 1 stehen immer nur Daten, die wie vorher beschrieben formatiert sind, in Spalte 3 steht immer nur ein Buchstabe "H", "R", oder "X".
Die Auswahl in Spaltze 3 trifft der Autofilter ohne Probleme. Es werden alle Datensätze mit einem "H" in Spalte 3 angezeigt.
Bei der Auswahl "Date + 1", oder auch mit einem speziellen Datum, ist dann kein einziger Datensatz mehr zu sehen. Gehe ich dann aber in der Tabelle auf den Autofilter in der Spalte 1, dann steht er schon an der richtigen Stelle, also z.B. der 01.05.2006. Klicke ich dieses Datum jetzt an, dann sind alle Datensätze mit dem richtigen Datum in Spalte 1 und einem "H" in Spalte 3 zu sehen (wie es sein soll).
So langsam verstehe ich die Welt nicht mehr, aber vielleicht hat ja noch einer von Euch eine Idee, woran das liegen könnte.
Gruß
fubajunkie

Antwort 8 von schnallgonz

Salve,
die Lösung:
das Filterkriterium muss als Datum übergeben, sprich explizit angeben werden.
Im folgenden Beispiel wie gewünscht als das Datum +1.


Sub filtertest()
Dim moin As Date
moin = Date + 1
Selection.AutoFilter Field:=1, Criteria1:=moin
Selection.AutoFilter Field:=3, Criteria1:="H"
End Sub


mfg
schnallgonz

Antwort 9 von fubajunkie

Hmm, klappt auch nicht. Da ich mir aber nicht vorstellen konnte, warum das nicht funktioniert. Und ich weiß jetzt an welcher Stelle meines Makros der Fehler liegt, kann den Fehler selbst aber nicht finden.

Zu Beginn des Makros wird eine Textdatei geöffnet und in Excelformat konvertiert. Dazu vewende ich folgenden Befehl (aufgezeichnet):
Workbooks.OpenText Filename:="(Dateinname)", Origin:=437, StartRow:=1, DataType:=xlDelimited, TextQualifier:= xlDoubleQuote,  Tab:=True, Semicolon:=True, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)), TrailingMinusNumbers:=True

Danach funktioniert die Auswahl des Datums nicht!

Wenn ich die Datei von Hand öffne und durch den Dialog zum Konvertieren klicke und danach die Auswahl durchführe (mit Deiner Variante) dann funktioniert es.

Ich habe keine Ahnung, wo der Fehler liegt.

Vielleicht fällt Dir oder jmd anderem noch eine Lösungsmöglichkeit ein.

Viele Grüße
fubajunkie

Antwort 10 von schnallgonz

Moin,
Du konvertierst die Datei ins Standardformat, das bewirkt die "1" in Array(7, 1) usw.
Hier ein Auszug aus der OnlineHilfe:

FieldInfo Variant optional. Eine Matrix mit Informationen zur Analyse der einzelnen Datenspalten. Die Deutung hängt vom Wert von DataType ab.

Wenn die Daten getrennt sind, ist dieses Argument eine Matrix aus zweielementigen Matrizen. Jede zweielementige Matrix gibt die Umwandlungsoptionen für eine bestimmte Spalte an. Das erste Element ist die Spaltennummer (beginnend mit 1) und das zweite Element ist eine der folgenden Zahlen, die angeben, wie die Spalte analysiert wird.

1 Standard
2 Text
3 Datum im Format MTJ
4 Datum im Format TMJ
5 Datum im Format JMT
6 Datum im Format MJT
7 Datum im Format TJM
8 Datum im Format JTM
9 Überspringe die Spalte


Versuche doch mal, die Datumspalte (A=1, B=2) als Datum vorzugeben z.B Spalte A mit "Array(1, 4)"
mfg
schnallgonz

Antwort 11 von fubajunkie

Jippiih!!!
Es klappt . Es lag tatsächlich nur an dieser einzigen Zahl.
Vielen Dank für Deine geduldige Hilfe!
Viele Grüße
fubajunkie

Antwort 12 von schnallgonz

Salve,
gern geschehen und Danke für die Rückmeldung.

gruß
schnallgonz

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: