Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
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
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeitspanne per VBA filtern

Zeitspanne per VBA filtern
26.09.2007 20:37:00
n.ludewig@muenster.de
Hallo
Zunächst einmal vielen Dank für die schnelle und doch hilfreiche Antwort. Da schon archiviert, habe ich den alten Eintrag angehängt.
Mit dem Filter das klappt an sich gut! In meinem Fall, so habe ich allerdings herausgefunden nicht zu 100 %. Wie es mir scheint, liegt das entweder am Import oder an den nachgeladenen Daten.
Was ich auch mit den Daten mache: Das Beste bisher erzielt Ergebnis: Die Tabelle enthält mit Filter die Beiden in den Filterkriterien genannten Werte. Somit sind gleiche Werte enthalten. Die Werte in den Zellen werden aber nicht erkannt.
Was ist denn nun wieder verkehrt. Muss ich die Datei anders hochladen? Ich habe hierzu mal ein Makro aufgezeichnet und mir dann für die Dateiauswahl einen Dialog eingebaut. Klappt auch eigentlich ganz gut.
Oder muss ich die Quelldaten noch aufbereiten damit diese als Datum verstanden werden. Was mit hier aufgefallen ist: Die Filterkriterien enthalten stets die gewünschten Werte. Vergleiche ich aber den Filter oder den Zellwert in der Funktionszeile mit dem Wert in der Zelle direkt: Im Filter ist ein Leerzeichen mehr: 26.09.2007 18:00 statt 26.09.2007 18:00. Handelt es sich hier um eine interne bzw. externe Darstellung?
Vielleicht kann mir nochmal jemand helfen. Wie gesagt: Die Datei die ich hochladen möchte ich eine Textdatei mit ; getrennt. Folgend ein Beispiel mit zwei Zeilen (Sorry, im ersten Thread habe ich noch Sekunden angegeben):
"Date";"Indoor T";"Indoor H";"Outdoor T 1";"Outdoor H 1";"Outdoor T 2";"Outdoor H 2";"Outdoor T 3";"Outdoor H 3";"Outdoor T 4";"Outdoor H 4";"Outdoor T 5";"Outdoor H 5"
"16.05.2007 22:00";"24.4";"45";"22.6";"81";"20.5";"50";"23.7";"73";"---";"---";"---";"---"
"16.05.2007 23:00";"24.5";"43";"22.1";"83";"20.5";"50";"22.9";"74";"---";"---";"---";"---"
Nochmals vielen Dank für die Hilfe,
Gruß
Nils
Hallo
Bisher habe ich mit keinem der Einträge im Forum eine Lösung gefunden. Aus irgendeinem Grund passen die alle nicht vollständig auf meine Anforderung!?
Folgendes Problem: Ich öffne eine Textdatei mit ; getrennt und erhalte u.a. eine Spalte Datum mit folgenden Einträgen: 16.05.2007 22:00, 16.05.2007 23:00 (Einträge liegen also stündlich vor).
Ziel: Die Ermittlung des letzten Eintrages (Klappt bisher gut) und Filterung der Spalte auf die letzten 48 Stunden. Und hier das Problem: Egal was ich mache, irgendwas klappt immer nicht.
- Angefangen bei den Deklarationen: Welche Datenfelder benötige ich?
- Muss ich die Quellspalte formatieren? Ist diese vielleicht die Ursache?
- Wie errechne ich dann am Besten die letzten 48 Stunden? (Datum - 2?)
- Muss das Filterkriterium vom Typ String sein?
- Muss ich Werte im amerikanischen Format in die Filterkriterien schreiben?
- Dann aber das große Problem: Was schreibe ich in den Filter und welchen Datentyp muss der haben?
Bisherige Ergebnisse: Entweder wird gar nicht gefiltert oder aber nur der gefundene letzte Eintrag (Hier wird scheinbar nicht erkannt, welcher größer oder kleiner ist).
Kann jemand sagen, wie die Sache zu realisieren ist? Es scheint viele Wege zu geben, nur hat keiner so richtig gepasst. Gibt es auch eine Lösung, die über alle Excel Versionen funktioniert?
Für die Hilfe vielen Dank im Voraus
Nils
Hallo Nils,
habe Dir mal für das Problem ein kleines Beispiel gemacht und ein paar Vba-Kommentare dazu geschrieben.
https://www.herber.de/bbs/user/46238.xls
Gruß von Luschi
aus klein-Paris

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeitspanne per VBA filtern
26.09.2007 21:20:03
Josef
Hallo Nils,
wohl keine angst vor Spam, das du deine Mailadresse so offen zur schau stellst ;-)
Wie wäre es, wenn du eine Beispieltabelle hochladen würdest, mit den Daten wie du sie nach dem Import dort stehen hast?
Gruß Sepp

AW: Zeitspanne per VBA filtern
26.09.2007 22:35:00
n.ludewig@muenster.de
Hi
Hast schon recht mit der Mailadresse. So kann es vermutlich auch nicht weniger werden mit den Spams.
Ich habe eine importierte und als Excel gesicherte Datei hoch geladen. Vielleicht ist das ja hilfreich.
https://www.herber.de/bbs/user/46363.xls
Dank und Gruß
Nils

Anzeige
AW: Zeitspanne per VBA filtern
26.09.2007 23:43:00
Josef
Hallo Nils,
lass mal dieses makro drüberlaufen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub FilterLast48()
Dim dblMin As Double
Dim lngEnd As Long, lngR As Long
Dim a As Variant

On Error Resume Next
Application.ScreenUpdating = False

With ActiveSheet
    
    If .AutoFilterMode Then .Range("A1").CurrentRegion.AutoFilter
    
    lngEnd = .Cells(Rows.Count, 1).End(xlUp).Row
    
    .Range("A1:M" & lngEnd).NumberFormat = "General"
    .Range("IV1") = 1
    .Range("IV1").Copy
    .Range("A1:M" & lngEnd).PasteSpecial Paste:=xlPasteValues, Operation:=xlMultiply
    
    Application.CutCopyMode = False
    
    a = .Range("A1:A" & lngEnd)
    
    For lngR = 2 To UBound(a, 1)
        a(lngR, 1) = CDate(a(lngR, 1))
    Next
    
    .Range("A1:A" & lngEnd) = a
    .Range("A1:A" & lngEnd).NumberFormat = "dd.mm.yyyy hh:mm"
    .Range("IV1").Clear
    
    dblMin = Application.Max(.Range("A1:A" & lngEnd)) - 2
    
    If dblMin < Application.Min(.Range("A1:A" & lngEnd)) Then Exit Sub
    
    
    .Range("A1").CurrentRegion.AutoFilter _
        Field:=1, _
        Criteria1:=">=" & dblMin
    .Columns.AutoFit
End With

Application.ScreenUpdating = True
End Sub

Gruß Sepp

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige