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

Filter Automatisch Updaten / VBA

Filter Automatisch Updaten / VBA
10.02.2022 11:09:07
Chris
Hallo Zusammen,
ich habe folgendes Problem:
Zu jeweils unterschiedlichen Datumseinträgen habe ich unterschiedliche Namen mit zugehörigem Wert:
31.03.2013 Anna 5
30.04.2013 Anna 7
30.05.2013 Anna 8
31.03.2013 Peter 1
30.04.2013 Peter 2
Wenn ich jetzt den 31.03.2013 als Kriterium an anderer Stelle eingebe gibt mir die Auswertung an wieder anderer Stelle in der Tabelle - korrekterweise - folgendes aus:
Anna 5
Peter 1
Wenn ich nun einen Filter in dem Auswertungsbereich setze und Peter damit ausblende steht (korrekterweise) nur noch:
Anna 5
Hier mein Problem: sobald ich jetzt das Datumskriterium an anderer Stelle auf 30.04.2013 ändere - und im Ausgabebereich den Filter nicht antaste - kommt als Ausgabe:
Anna 7
Peter 2
Im Filter ist zwar "Peter" nicht angekreuzt, aber die Abfrage wirft den Wert trotzdem raus.
Es soll dabei nur gelistet werden:
Anna 7 (wie im Filter ursprünglich ausgewählt)
Hier jetzt die Frage:
Wie bekommt man es in einem Makro hin, dass für die einzelnen Abfrage-Datums, sich der ursprüngliche Filter "gemerkt" wird und der eingestellte Filter für die Folgedatumsläufe ebenfalls berücksichtigt wird.
Der Filter befindet sich in Spalte U, falls das hilfreich ist, es geht mir aber in einem ersten Schritt um das generelle Problem dass der Filter zwar gesetzt ist, die Daten aber nicht entsprechend abgerufen werden nachdem das Datumskriterium geändert wird
Danke sehr für euren Input dazu und viele Grüße
Chris

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter Automatisch Updaten / VBA
10.02.2022 14:28:05
Yal
Hallo Chris,
es liegt vermutlich daran, dass in deine Quelle, einige Wert als Datum und einige als Text formatiert sind.
Markiere die ganze Spalte mit Datum,
setzt den Zahlenformat auf Datum,
und gehe auf "Daten", "Text in Spalten", "trennen nach Tabstopp" ausführen, um den Inhalt zu reevaluieren. Datum-Text wird so als Datum übernommen.
(Alternativ: auf jede einzelne Zelle F2 und Enter drücken. Aber ich gehe davon aus, dass Du viel mehr Daten als nur die 5 Beispiele).
Dann sollte das Problem weg sein.
VG
Yal
AW: Filter Automatisch Updaten / VBA
10.02.2022 15:05:03
Chris
Danke Yal,
ich habe nachgesehen es liegt nicht am Format, das sind tatsächlich alles Datumsangaben.
Ich bin mittlerweile ein Stück weiter:
Wenn ich das Datumskriterium von 31.03 auf 30.04 ändere habe ich nach wie vor das Problem - wenn es aber von 30.04.2013 auf 31.03 geändert wird dann stimmt der Filter.
Das scheint ein sehr sehr spezifisches Problem zu sein, aber so rum funktioniert es.
Viele Grüße
Chris
Anzeige
AW: Filter Automatisch Updaten / VBA
10.02.2022 18:07:06
Yal
Hallo Chris,
Vorsicht: dass der Format stimmt, bedeutet nicht, dass Excel den Datentyp reevaluiert hat. Daher F2 und Enter.
Es könnte auch bei manchen Einträge eine Hochkomma davor geben, was dazu führt, dass die Wert weiterhin als Text wahrgenommen werden.
Haben eventuell die Datum ein durch Format unterdruckte Uhrzeit ( Nachkommastellen )? Per Formel =RUNDEN(A1;0) und kopieren+als Wert einfügen.
VG
Yal
AW: Filter Automatisch Updaten / VBA
11.02.2022 10:04:21
Chris
Hallo Zusammen, Hallo Yal,
danke für den Formathinweis, ich habe zur Sicherheit auch nochmal Daten>Text in Spalten angewandt, es sind wirklich überall Datumseinträge.
Mein Problem ist dass ein einmal gesetzter Filter für den nächsten Lauf nicht bestehen bleibt, im Hintergrund sind dazu einige Formeln, der Filter ist in Spalte "U" und soll einmal - bevor das Makro läuft gesetzt werden und dann Gültigkeit behalten. Das Makro um die Werte Abzurufen ist folgendes:
Option Explicit
Private Declare

Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)

Sub TR_Auslesen()
Do
DoEvents
Loop While Not Application.CalculationState = xlDone
Range("A6").Select
'neue startposition loop:
Do Until ActiveCell.Value = ""
Range("B2").Value = ActiveCell.Value
ActiveCell.Offset(0, 1).Value = Range("c2").Value
ActiveCell.Offset(1, 0).Select
Loop
'formatierung
Range("b6:b50").Select
Selection.Style = "Percent"
Selection.NumberFormat = "0.00%"
Range("b2").Select
ActiveCell.Value = Date
MsgBox "Verarbeitung erfolgreich!", vbInformation, "OK!"
End Sub
Danke nochmal für euren Input,
Chris
Anzeige
AW: Filter Automatisch Updaten / VBA
11.02.2022 12:37:28
Yal
Hallo Chris,
ohne die passende Datei dazu kannst Du soviel Code mitteilen, es hilft nicht.
Es ist vieles in deinem Code unnötig oder "kompliziert" (das klammere ich aus, weil es ist mit dem Stand deines Wissen nicht anders zu haben)
Folgende Vorschlag: (richtig Einrücken ist für die Lesbarkeit viel besser als Leerzeilen)

Sub TR_Auslesen()
'Zelle mit Inhalt von C2 befüllen
If Range("A6")  "" Then
Range(Range("A6"), Range("A6").End(xlDown)).Offset(0, 1) = Range("C2").Value
End If
'Formatierung
With Range("B6:B50")
.Style = "Percent"
.NumberFormat = "0.00%"
End With
'Datum einfügen
With Range("B2")
.Value = Date
.Select
End With
'Abschluss melden
MsgBox "Verarbeitung erfolgreich!", vbInformation, "OK!"
End Sub
Der Rest kann man ohne Datei nicht bewerten.
VG
Yal
Anzeige
Denkfehler
11.02.2022 12:41:14
Yal
anbei Korrektur:

Sub TR_Auslesen()
'Zelle mit Inhalt von C2 befüllen
If Range("A6")  "" Then Range("B6") = Range("C2").Value
If Range("A7")  "" Then
Range(Range("A6"), Range("A6").End(xlDown)).Offset(0, 1) = Range("C2").Value
End If
'Formatierung
With Range("B6:B50")
.Style = "Percent"
.NumberFormat = "0.00%"
End With
'Datum einfügen
With Range("B2")
.Value = Date
.Select
End With
MsgBox "Verarbeitung erfolgreich!", vbInformation, "OK!"
End Sub
Hintergrund: hättest Du nur die Zeile 6 befüllt, kommt der Inhalt von C2 bis zue letzte Zeile rein! (B1048576)
VG
Yal
Anzeige
AW: Denkfehler
11.02.2022 15:19:10
Chris
Hallo Yal, Hallo Zusammen,
hier findet ihr die Beispiel Datei:
https://www.herber.de/bbs/user/151065.zip
Das File funktioniert manuell folgendermaßen:
Man gibt ein Datum in B2 ein, wählt dann in Zelle U5 einen Filter aus aktuell z.B: Exkl. Robert.
Wenn ich danach das Datum in B2 ein paar mal hoch und runter ändere, steht auf einmal wieder "Robert in der Liste - obwohl der Filter ursprünglich Robert exkludiert hat.
Das kann man manuell vermeiden indem man neu auf den Filter in U5 klickt dann ok drückt.
Im Makro bekomme ich diesen Schritt aber nicht unter.
Danke für euer Feedback, bei Rückfragen jederzeit ;-) Das File stellt eine Vereinfachung dar - mir geht es lediglich um den Filter und darum diesen zu jedem Datum innerhalb des Makros automatisch auch zu aktualisieren.
Viele Grüße
Chris
Anzeige
AW: Denkfehler
11.02.2022 17:11:31
Yal
Hallo Chris,
ich glaube, es wäre einfacher, wenn Du dein Ziel erklären würdest, anstatt den Weg, den Du dir vorgenommen hast.
Es gibt zum Bespiel Pivottabelle, die Summe, Filterung und Prozent automatisch errechnen. Vielleicht wärst Du mit einem Pivot besser bedient, aber dafür müsste ich verstehen, was Du erreichen möchtest.
VG
Yal
AW: Denkfehler
11.02.2022 18:15:51
Chris
Hallo Yal,
danke für deine Nachricht, das Thema ist etwas kompliziert aber kurz gesagt möchte ich einfach den richtigen Wert in der Zelle C3 errechnet haben.
Der Wert (-169) ist nicht korrekt - er schließt die Werte für "Robert" mit ein - obwohl dieser Name im Filter (U4) nicht angetickt ist.
Den richtigen Wert (-163) erhalte ich erst wenn ich nochmal in U4 gehe und OK klicke.
Kurzum: Der Filter in Spalte U (ex Robert) verliert seine Wirksamkeit sobald man das Datum in B2 ändert.
Du kannst es gerne mal ausprobieren und ein zum aktuellen Datum ein paar Namen herausnehmen im Filter U4, dann das Datum ändern, dann sieht man dass bei der Neuberechnung die Werte auf einmal wieder in der Spalte U auftauchen - trotz des Filters.
Ich hoffe das hilft nochmal ein Stück weiter.
Viele Grüße und gutes Wochenende,
Chris
Anzeige
AW: Denkfehler
11.02.2022 20:03:04
Yal
Hallo Chris,
wenn Du filterst, dann ist die ganze Zeile 8 ausgeblendet. Ausgeblendet, aber trägt trotzdem zur Summe bei.
Versuche mit der Funktion AGGREGAT (ab Excel 2016, so zum Thema Version nicht relevant)
Meinerseits Ende der Thread.
VG
Yal

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige