Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1744to1748
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

Messdatei nach Datum mit array filtern

Messdatei nach Datum mit array filtern
12.03.2020 12:22:40
Michael
Hallo,
ich habe eine Messdatei, in der die erste Spalte der Zeitstempel, also Datum + Uhrzeit sind. Die weiteren Spalten sind Messdaten.
Mein Logger kann leider keine Tagessätze (24h) erzeugen und nach drei Wochen sind die Dateien mehrere tausend Zeilen lang.
Bei kürzeren Messungen habe ich einfach mit einer Schleife die erste Zeile nach dem Tageswechsel durchlaufen und dann die Tagessätze erzeugt. Aber bei den Datenmengen dauert das zulange.
Ich hab gelesen, mit arrays geht das schneller, deswegen will ich mich mit der Filter-Funktion und Arrays beschäftigen.
so richtig funktionieren tut das aber noch nicht.
Ich schreib mal auf, was ich bis jetzt habe und wo die Fehlermeldungen kommen, vielleicht kann mir ja jemand weiterhelfen :-)
Sub Messdaten_Squirrel()
Dim ArrDat As Variant       'array für Messdatei
Dim ArrTagDat As Variant    'array für Tagesdatensatz
Dim Tagessatz As Variant    'Suchbegriff
Dim langZeile As Long       'letzte Zeile Arrdat
Dim langSpalte As Long      'letzte spalte Arrdat
Dim langZeileTag As Long    'letzte Zeile Arrtagdat
Dim langSpalteTag As Long   'letzte Spalte Arrtagdat
Tagessatz = "12.02.2020"
'erfasst Größe der Daten
langZeile = Sheets("Tabelle1").UsedRange.SpecialCells(xlCellTypeLastCell).Row
langSpalte = Sheets("Tabelle1").UsedRange.SpecialCells(xlCellTypeLastCell).Column
'MsgBox langZeile
'MsgBox langSpalte
ArrDat = Sheets("Tabelle1").Range(Cells(2, 1), Cells(langZeile, langSpalte)) 'Einlesen des  _
array, passt auch im Lokalfeld
ArrTagDat = Filter(ArrDat, Tagessatz)  'hier kommt es zur Typenunverträglichkeit Error 13
Sheets("Tabelle2").Range(Cells(2, 1), Cells(UBound(ArrTagDat, 1), UBound(ArrTagDat, 2))) =  _
ArrTagDat
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Messdatei nach Datum mit array filtern
12.03.2020 13:57:03
Günther
Moin,
eventuell kannst du das auch ohne VBA beispielsweise mit PivotTable oder Power Query erreichen. Für konkrete Hilfe fehlt mir aber die exakte Zielsetzung für die Auswertung und auch eine kleine Beispiel-xlsx.
Gruß
Günther
AW: Messdatei nach Datum mit array filtern
12.03.2020 14:34:13
Michael
Hi
eine kurze Datei findest Du hier.
In echt sind die Datensätze nach mehreren Wochen mehrere tausend Zeilen lang.
In der ersten Spalte sind Datum/Zeit. Ich möchte für jeden Tag ein Tabellenblatt mit den einzelnen Tagesdaten anlegen. Diese können dann mit weiteren Makros ausgewertet werden, anstelle den passenden Tag immer in dem riesigen File zu suchen.
https://www.herber.de/bbs/user/135804.xlsx
Danke
Micha
Anzeige
AW: Messdatei nach Datum mit array filtern
12.03.2020 14:49:34
Günther
Moin Micha,
okay, jetzt weiß ich wenigstens, was du erreichen willst.
Aus meiner Sicht keine wirklich gute Idee, für jeden Tag ein eigenes Blatt zu kreieren. Aber: Johann Jakob Wilhelm Heinse hat den weisen Ausspruch geprägt: "Des Menschen Wille sei sein Himmelreich".
Dennoch glaube ich, dass du mit einer Hilfsspalte für den Filter des Tages oder PivotTable besser bedient wärst.
Gruß
Günther
AW: Messdatei nach Datum mit array filtern
12.03.2020 15:10:45
Daniel
HI
ich würde einfach eine Hilfsspalte einfügen mit der Formel =Ganzzahl(A2)
das wandelst dir Datum+Uhrzeit in Datum um.
dann kannst du einfach nach Datum filtern oder eine Pivot-Auswertung nach Tag machen.
auch das Auftrennen nach Tag in verschiedene Blätter geht dann recht einfach mit Makros.
Gruß Daniel
Anzeige
AW: Messdatei nach Datum mit array filtern
12.03.2020 15:50:37
Michael
Danke für Eure Vorschläge.
Ich hab gerade mal versucht, das mit einer Pivot-Tabelle zu machen. Geht, is aber nicht das, was ich brauche.
Die Datensätze sind je nach Messung unterschiedlich lang und auch Anzahl und Namen der Messkanäle variert von Projekt zu Projekt. Fest ist nur die Datumsspalte, die geben die Datenlogger so vor.
Ich möchte automatisiert die Tagessätze erstellen, bei Bedarf sucht man sich dann die benötigten Sätze heraus.
Ob die dann als einzelnes File oder als neues Tabellenblatt abgelegt werden, ist dann eine andere Frage.
Ich möchte gerne verstehen, was ich bei meinem Makroversuch falsch mache und wie ich das Problem lösen kann.
Notfalls kann ich das immernoch per Schleife machen, dauert dann halt nur ewig.
Danke erstmal für die Tips, ich suche mal weiter.
Micha
Anzeige
AW: Messdatei nach Datum mit array filtern
12.03.2020 16:00:05
Kuwer
Hallo Micha,
"Ich möchte gerne verstehen, was ich bei meinem Makroversuch falsch mache ..."
VBA-Filter kann nur eindimensionale Arrays, was Du nicht hast.
Gruß Uwe
AW: Messdatei nach Datum mit array filtern
12.03.2020 16:07:54
Michael
ah!
Danke :-)
dann überleg ich mir was anderes, vielleicht dann doch mit Pivot
Micha
AW: Messdatei nach Datum mit array filtern
12.03.2020 13:58:22
Daniel
Hi
Range, Cells, Colums und Rows ohne Tabellenblattangabe davor beziehen sich IMMER auf das aktive Tabellenblatt. Das gibt auch für die Cells innerhalb von Range.
den Fehler bekommst du, wenn du vor der Range ein Tabellenblatt angibst, vor den Cells aber nicht.
denn dann kann es passieren, dass sich die Cells auf ein anderes Tabellenblatt beziehen als die Range, die sie definieren sollen.
vor den Cells muss immer das Tabellenblatt stehen, vor der Range kann es entfallen.
Gruß Daniel
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige