Datenimport umsortieren
26.03.2009 18:51:34
Timo
ich weiss einfach nicht mehr weiter. Ich importiere eine Textdatei aufgrund einer Datenaufzeichnung. (In Zukunft sollen weitere Dateien in eine neue Tabelle importiert werden und die Anzahl der Datensätze ist immer unterschiedlich, nur der Aufbau relativ identisch)
Nun stehen die Werte aber in lauter Zeilen untereinander und ich brauche sie in Spalten sortiert.
In der ersten Spalte soll immer das Datum, in der zweiten die Zeit und in den folgenden Spalten (Anzahl abhängig von der Anzahl der aufgezeichneten Variablen) die weiteren Daten stehen. Dabei werden die Daten jedoch nicht alle zur gleichen Zeit aufgezeichnet, die Tabelle soll dann aber nach Datum und Zeit sortiert werden. Sind zum identischen Zeitpunkt mehrere Daten aufgezeichnet, so sollen die Daten in eine Zeile geschrieben werden.
Ich habe es nur geschafft den ersten datensatz in das Tabellenblatt2 zu schrieben, aber ich weiss nicht, wie ich die weiteren Variablen rüber schrieben soll und dabei gleichzeitig die ZUordnung zu den einzelnen Spalten halten kann. Im Schluß hätte ich dann die erste Spalte mit Text in Spalten bearbeitet und die Zeit in Spalte 2 angesiedelt. Anschließend dann nach dem Datum und der Zeit sortiert.
Aber wie kann ich alles automatisieren?
In Zukunft werde ich viele dieser Datensätze so aubereiten müssen und dass ist per Hand schier unmöglich.
Ich danke Euch für Eure Hilfe.
Hier ist eine Beispieldatei und mein Beispielcode
https://www.herber.de/bbs/user/60715.xls
Sub Trenddateien_importieren()
' Trenddateien_importieren Makro
Dim anz_variablen, i, zähler As Integer
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;T:\Thomas\WinCC_OnlineTrendCtrl_2009_03_24_14_19_31.csv", Destination:= _
Range("$A$1"))
.Name = "WinCC_OnlineTrendCtrl_2009_03_24_14_19_31"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
anz_variablen = Cells(2, 2).Value
For i = 0 To anz_variablen - 1
Cells(4 + i, 2).Copy
Sheets("Tabelle2").Select
Cells(1, 3 + i).Select
ActiveSheet.Paste
Sheets("Tabelle1").Select
Next i
zähler = Cells(anz_variablen + 5, 1).Value
For Z = 0 To 900000
If Cells(anz_variablen + 5 + Z, 1).Value = zähler Then
Range(Cells(anz_variablen + 5 + Z, 2), Cells(anz_variablen + 5 + Z, 3)).Copy
Sheets("Tabelle2").Select
Cells(2 + Z, 1).Select
ActiveSheet.Paste
Sheets("Tabelle1").Select
Else
Z = 900000
End If
Next Z
End Sub