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"
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
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
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,
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 ;-)
Zitat:
Format "ss/mm/yyyy;@"
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
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
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
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.
mfg
schnallgonz
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):
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
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
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
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
gern geschehen und Danke für die Rückmeldung.
gruß
schnallgonz