AW: Seriennummer-Auswerter
19.01.2022 12:57:09
Abdullah
Hallo Thorsten,
jetzt verstehe ich was du meinst.
ich hab ein Exemplar beigefügt.
https://www.herber.de/bbs/user/150507.xlsx
Der Code den ich bis dahin verwendet habe:
'_________________________
Sub AuswerterV2()
Dim RangeHöhe As Double ' Mögliche untersuchbare SN == Umfang des Inputs
Dim ZeitDiff As Double
Dim spWS As Integer ' speziefischer Integer für die Sheets (jeder Wert spWS stellt ein Sheet dar)
Dim spI As Double ' speziefischer Double für die SNs bei jedem Prozess (jeder Wert bei spI stellt ein Row dar)
Workbooks(D).Activate ' aktiveire die Mappe von der Sachnummer (Vairable D as String wird von anderen Macro vergeben)
Worksheets.Add After:=Sheets(1) ' füge noch ein Sheet für den Bericht der Messung ein
Sheets(2).Name = "Bericht"
For spWS = 4 To Sheets.Count ' je nach Sachnummer gibts mehrere Sheets"jedes Sheet stellt ein Prozzes dar"
RangeHöhe = Sheets(spWS).UsedRange.Rows.Count
If RangeHöhe > 50 Then ' führe eine Messung nur wenn bei dem Prozess mehr als 50 SN vorhanden sind . bei falsch führe keine messung sondern schreibe ein Text, dass die messugn unzulässig ist.
For spI = 2 To RangeHöhe
If Len(Sheets(spWS).Cells(spI, 1).Value) > 20 Then ' korrigiere die Zeitformat (Lösche die Millisekunden weg falls diese vorhanden sind)
Sheets(spWS).Cells(spI, 1).Value = Left(Sheets(spWS).Cells(spI, 1).Value, 19)
End If
Next spI
spI = 2
Sheets(spWS).Select
For spI = 2 To Cells(Rows.Count, 1).End(xlUp).Row
ZeitDiff = DateDiff("S", Sheets(spWS).Cells(spI, 1), Sheets(spWS).Cells(spI + 1, 1)) ' bilde Zeitdifferenz zwischen zwei aufeinander folgende SN
If ZeitDiff > 10 And ZeitDiff """",COUNTIF(C[-1],RC[-1]),"""")"
Selection.AutoFill Destination:=Range("H2:H" & ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row), Type:=xlFillDefault
Sheets(spWS).Cells(1, 8).Value = "Wiederholung" ' gib Header für die Spalten ein
'Sheets(spWS).Cells(1, 7).Value = Sheets(spWS).Name ' gib Header für die Spalten ein
Columns("G:G").Select
Application.Run "ATPVBAEN.XLAM!Descr", Sheets(spWS).Range("$G:$G"), _
Sheets(spWS).Range("$M:$N"), "C", True, True, , , 95 ' Führe eine deskriptive Analyse für die Zeitdifferenzen um Mittelwert, Median, Modus...ect zu bekommen
Range("M1:R16").Select ' Koppiere die Analyse
Selection.Copy
Sheets("Bericht").Select ' füge sie im Bericht Sheet ein
'Range("A2").Select
Range("A1").EntireRow.Offset(1).Resize(16).Insert Shift:=xlDown
Range("A2").Select
ActiveSheet.Paste
Sheets(spWS).Select
Else
Sheets("Bericht").Select
Range("A2").Value = "Eine Messung für "
Range("B2").Value = Sheets(spWS).Name
Range("C2").Value = "ist nicht zulässig."
Range("A3").Value = " Vorhandene Seriennummer: "
Range("B3").Value = RangeHöhe & " SN"
Range("A1").EntireRow.Offset(1).Resize(2).Insert Shift:=xlDown
Range("A2").Select
Sheets(spWS).Select
End If
Next spWS
Sheets(2).Select
Range("A1").Select
Sheets("Bericht").Copy After:=Workbooks("GesamtReport").Sheets(3)
Workbooks("GesamtReport").Activate
Sheets("Bericht").Name = D
ThisWorkbook.Activate
End
Sub
'____________________________
bis dahin ist der Code hilfreich um die Zeitdifferenz zwischen 2 SN-Gruppen zu bestimmen.
Die Werte die ich durch diesen Code bekomme. sind falsch weil, diese sind nicht durch die anzahl der in dem Zeitfenster bearbeitete SN geteilt sind.
Ich hoffe, das problem ist jetzt verständlich. und je,amd kann dabei helfen.