Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1036to1040
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

Zeitraum Filter

Zeitraum Filter
12.01.2009 11:56:00
MrB
Hallo,
ich habe folgendes Problem.
Ich möchte gerne einen bestimmten Zeitraum filtern und die dadurch übrig/sichtbar gebliebenen Werte sollen verarbeitet werden.
In Spalte A stehen Datumsangaben (TT.MM.JJJJ). Datumswerte können mehrfach vorkommen.
Das erste Datum in Spalte A: 01.01.2008 und das letzte: 31.12.2008
Nun möchte ich gerne einen Zeitraum filtern. Mir ist klar, dass ich Tag, Monat, Jahr extra in eine Spalte auslesen kann und dann evtl. über Autofilter, dass möchte ich jedoch vermeiden.
Gibt es eine Möglichkeit, dass ich einen bestimmten Zeitraum filtern kann? Und das was sichtbar ist, dann weiterverarbeitet wird?
Später soll mit diesen gefilterten Werten in VBA weitergerechnet werden. Wenn ich manuell etwas zum testen filter und die VBA routine anschmeiße, werden auch die ausgeblendeten / hidden Zeilen mit verarbeitet.
Kann mir jmd. einen Tipp geben, bzw. weiterhelfen!?
Vielen Dank.
MrB

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeitraum Filter
12.01.2009 11:59:00
Oberschlumpf
Hi...wie heißt du doch gleich?
Kannst du uns bitte eine ausgefüllte Bsp-Datei zur Verfügung stellen?
Und bitte erkläre noch mal in der Datei, nach welchen Kriterien was wann wo und wie gefiltert werden soll.
Ciao
Thorsten
AW: Zeitraum Filter
12.01.2009 12:47:59
Oberschlumpf
Hi Mr Bernd ;-)
Versuch mal so:
https://www.herber.de/bbs/user/58303.xls
Hilft das?
Ciao
Thorsten
Anzeige
AW: Zeitraum Filter
12.01.2009 13:27:53
MrB
Lieber Thorsten,
das ist eigentlich das, was ich suche. Vielen Dank!
Wenn ich jetzt einen Zeitraum rausgreife (oder einen Tag), dann funktioniert das [alles anzeigen] nicht richtig. Aber das bekomme ich schon hin.
Ich wühle mich nochmal durch den code ( cmdFilter_Click() ), ich möchte dann später ein extra Tabellenblatt für die Datumseingabe und die Ergebnisse haben.
Gruß
Bernd
AW: Zeitraum Filter
12.01.2009 14:35:00
MrB
Hallo Thorsten,
habe die Filterung hinbekommen und sie funktioniert... auch für Zwischenräume.

Sub Filter_Zeitraum()
'Zelle mit startdatum
a = Cells(1, 7).Value
'Zelle mit enddatum
b = Cells(2, 7).Value
ende = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To ende
If Cells(i, 1).Value >= a And Cells(i, 1).Value 


alle wieder einblenden:


Sub unfilter()
ActiveSheet.Rows.Hidden = False
End Sub


Wie schaffe ich es aber jetzt mit VBA nur die sichtbaren Zeilen, Werte anzusprechen?
Gruß
Bernd

Anzeige
AW: Zeitraum Filter
12.01.2009 14:41:00
Oberschlumpf
Hi Bernd
Vielleicht mit

For loZeile = ...
If Rows(loZeile).Hidden = False Then
hier das, was passieren soll mit sichtbaren Zeilen
End If
Next


Hilfts?
Ciao
Thorsten

AW: Zeitraum Filter
12.01.2009 14:51:00
MrB
damit komme ich nicht klar :(
AW: Zeitraum Filter
12.01.2009 14:58:00
Oberschlumpf
Hi
der Code

For loZeile = 2 To ende
If Rows(loZeile).Hidden = False Then
a = a +1
End If
Next


durchläuft alle Zeilen von 2 bis letzte Zeile
und bei allen Zeilen, die sichtbar sind (Hidden = False bedeutet ausgeblendet = falsch), wird in diesem Fall a um 1 erhöht (a = a +1).
Anstelle von a = a +1 musst du natürlich deinen Code schreiben, der ausgeführt werden soll, wenn eine sichtbare Zeile "gefunden" wird.
Oder was hast du nicht verstanden?
Ciao
Thorsten

Anzeige
AW: Zeitraum Filter
12.01.2009 15:10:54
MrB
Hi,
aaaaahhhh jetzt JA ;)
alles klar! ich probiere es aus und werde spätestens morgen noch einmal das Ergebnis posten.
Ich muss mich aber mal ausdrücklich bei Dir bedanken. Nicht nur dafür, dass Du mir weitergeholfen hast, sondern vor allem - wie schnell! Wahnsinn.
Liebe Grüße
Bernd
AW: Zeitraum Filter
12.01.2009 16:27:00
Oberschlumpf
Hi Bernd
Danke für die Komplis - hat mich gefreut! :)
Und deswegen hab ich dir die Bsp-Datei noch mal so erweitert, dass die Zusammenfassung nun in Sheet2 erfolgt.
(du wolltest das ja so ungefähr haben, oder)
Die Filterung erfolgt weiterhin in Sheet1.
Natürlich wird es nicht genau so sein, wie du es haben möchtest - is ja nur n Bsp.
Aber daran kannst du vielleicht n bisschen besser das Prinzip verstehen.
https://www.herber.de/bbs/user/58312.xls
Ciao
Thorsten
Anzeige
AW: Zeitraum Filter
12.01.2009 16:43:00
MrB
Mensch Thorsten!
Sehr schön und klasse auskommentiert ;)
Ich verstehe es auch - bis auf eines... Warum berechnet VBA jetzt die sichtbaren Zeilen!? Das hast du nicht extra deklariert - oder!? Von alleine macht das VBA doch nicht, was ist jetzt anders. Wenn Du mir das noch bei Gelegenheit erklären könntest? Möchte es gerne verstehen. Ich tue mich sowieso sehr schwer mit Formeln in VBA, finde die so unübersichtlich und bekomme sie selten hin.
Ich möchte - z. B. aufs Beispiel bezogen, die Formel so wie Du sie programmiert hast, aber dann die Gewichte noch nach den Artikel H und G getrennt (zwei reichen). So eine Art Summewenn/SUMME IF...
Gut finde ich auch einen Button, der die Bezeichnung ändert!
Oh man, sry, wenn ich Dich jetzt doch wieder nerve... (aber du hast die datei nochmal geschickt *g*)
Lieben Gruß
Bernd
Anzeige
AW: Zeitraum Filter
13.01.2009 07:19:49
MrB
Hallo Thorsten,
Deine Formel funktioniert leider auch nicht.
wähle ich nur den 02.01. aus, rechnet er tzrotzdem die Gewichte der Artikel ab dem 01.01. + das eine Gewicht vom 02.01. :(
Ergebnis: 167 (eigentlich müsste es 17 ergeben)
Irgendwie ist das ein Problem mit den ausgeblendeten Zeilen...
Gruß
Bernd
AW: Zeitraum Filter
13.01.2009 10:00:46
Oberschlumpf
Hi Bernd
Ja, Recht hast du.
Hier die korrigierte Test-Version:
https://www.herber.de/bbs/user/58329.xls
Nun wird auch das Gewicht für nur den 2.1.08 korrekt angezeigt.
Mal sehen, was du noch findest :)
Ciao
Thorsten
Anzeige
AW: Zeitraum Filter
13.01.2009 10:42:49
Oberschlumpf
Moin
Hier noch die gewünschte Erklärung, wie sich die neue Summenbildung (nach Filterung) zusammensetzt.
Userbild
(die Grafik muss leider sein, weil bei reinem Text in den Codedurch die Forumssoftware automatische Zeilenumbrüche eingefügt werden, was die Übersichtlichkeit zerstört)
die Zeile
Range("B3").FormulaLocal....
ergibt umgesetzt bei Filterung für den 02.01.08 die Formel:
=SUMME(Tabelle1!C10:C10)
Und das setzt sich so zusammen:

For loZeile = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Rows(loZeile & ":" & loZeile).Hidden = False Then
Range("B3").FormulaLocal = "=SUMME(" & .Name & "!C" & loZeile & ":C" & . _
Cells(Rows.Count, 1).End(xlUp).Row & ")"
Exit For
End If
Next


Die For/Next-Schleife beginnt immer in Zeile 2 (die Zeile mit dem ersten Eintrag)
Innerhalb der Schleife wird mit .Rows(loZeile & ":" & loZeile).Hidden = False so lange gesucht,
bis die erste Zeile gefunden wird, die nicht ausgeblendet ist - in diesem Fall Zeile 10, weil darin der 02.01.2008 steht.
Mit dem Sheetnamen des Sheets, in dem die Daten stehen - =SUMME(" & .Name und der gefundenen Zeile & "!C" & loZeile
und der zuletzt genutzten Zeile (auch die letzte sichtbare Zeile ist für Excel die zuletzt genutzte Zeile)
& ":C" & .Cells(Rows.Count, 1).End(xlUp).Row & ")" wird die Summenformel gebildet.
Da nun alles innerhalb der Schleife erledigt ist, wird diese mit Exit For verlassen.
So, hoffe, dass du nach mehrmaligen Durchlesen alles verstanden hast.
Was du aber mit der Aufteilung nach 2 Artikeln meinst, hab ich nicht ganz verstanden.
Du musst dann ja nach 3 Gruppen aufteilen:
Gewicht für Artikel H
Gewicht für Artikel G
Gewicht für Rest
Ciao
Thorsten

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige