SPS Meldearchiv
06.09.2022 15:43:04
Michael
ich tüftel gerade an einer Lösung für nachfolgendes Problem. Leider ist meine Lösung nicht funktionell, da es ewig dauert, bis die Schleifen durchgelaufen sind.
Folgendes Problem:
Ich habe eine Tabelle mit tausenden Meldungen einer SPS. Jede Meldung besteht aus zwei Einträgen, also zwei Zeilen: Das erste mal wenn die Meldung auftaucht, das zweite mal wenn die Meldung verschwindet. Dadurch bin ich in der Lage zu sagen, wie lange eine Meldung ansteht.
Ich möchte nun gerne aus diesen Rohdaten eine Tabelle erzeugen, in der jede Meldung nur ein einziges mal vorhanden ist und Startzeit und die Endzeit aufgeführt werden.
Anbei zur Veranschaulichung was ich meine. https://www.herber.de/bbs/user/155012.xlsx
Hier ist das was ich bisher geschrieben habe. Leider hängen die Schleifen ewig und die Einmaligkeit jeder einzelnen Meldung ist auch nicht gegeben.
Sub Vereinzeln()
Dim x, y As Long
Dim A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P As String
Dim Zeilen As Integer
Dim ID As Integer
Dim zeitkommend, zeitgehend, zeitdauer As Integer
Sheets("source").Activate
Zeilen = ActiveSheet.UsedRange.Rows.Count
For x = 2 To Zeilen
O = Cells(x, 15)
zeitkommend = Cells(x, 14)
ID = x
For y = x + 1 To Zeilen
If Cells(y, 15) = O Then
A = Cells(y, 1)
B = Cells(y, 2)
C = Cells(y, 3)
D = Cells(y, 4)
E = Cells(y, 5)
F = Cells(y, 6)
G = Cells(y, 7)
H = Cells(y, 8)
I = Cells(y, 9)
J = Cells(y, 10)
K = Cells(y, 11)
L = Cells(y, 12)
M = Cells(y, 13)
'N = Cells(y, 14)
'O = Cells(y, 15)
P = Cells(y, 16)
zeitgehend = Cells(y, 14)
'zeitdauer = zeitgehend - zeitkommend
Sheets("target").Activate
Cells(ID, 1) = A
Cells(ID, 2) = B
Cells(ID, 3) = C
Cells(ID, 4) = D
Cells(ID, 5) = E
Cells(ID, 6) = F
Cells(ID, 7) = G
Cells(ID, 8) = H
Cells(ID, 9) = I
Cells(ID, 10) = J
Cells(ID, 11) = K
Cells(ID, 12) = L
Cells(ID, 13) = M
Cells(ID, 14) = N
Cells(ID, 15) = O
Cells(ID, 16) = P
Cells(ID, 17) = zeitkommend
Cells(ID, 18) = zeitgehend
End If
Next
Next
End Sub