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

Seriennummer-Auswerter

Seriennummer-Auswerter
19.01.2022 10:58:14
Abdullah
Hallo zusammen,
ich erstelle gerade einen automatischen Auswerter mit VBA um eine große Menge an Seriennummer ca 9 Mio zu analysieren. An einem Punkt komme ich momentan mit meinen Kenntnissen leider nicht weiter.
Gesucht: wie viele Einheiten wurden in einem Zeitfenster bearbeitet. (bitte die beigefügte Tabelle ansehen) .Dann wird der Umfang von dem Zeitfenster berechnet. (also wie viele Sekunden wurden gebraucht, um soviel SN zu Fertigen). Bitte daran denken, der Code wird in VBA ausgeführt.
gerne auch andere Vorschläge um auf die Zykluszeit von einem Stück ausgehend von dem vorhandenen Input (beigefügte Tabelle) zu kommen.
Userbild
Beste Grüße
Abdullah

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Seriennummer-Auswerter
19.01.2022 11:04:38
Abdullah
Kurze Info dazu noch:
mein Input enthält nur die Spalten( A:F ). den Rest(inklusive Farbcodierung) habe ich im Bild eingefügt um das Problem zu verdeutlichen.
Beste Grüße
Abdullah
AW: Seriennummer-Auswerter
19.01.2022 11:09:22
Oberschlumpf
Moin.
no Bsp-Datei in Excel-Makro-Format mit Bsp-Daten UND bisherigen VBA-Code = NO PARTY
Noch Fragen?
1 Antwort noch:
Excel kann mit Bilddateien nix anfangen, außer diese in eine Excel-Tabelle einzufügen - darin sinds und bleibens dann aber weiterhin nur....Bilddateien mit ohne Zugriff auf die gezeigten Daten in den Bilddateien.
Ciao
Thorsten
AW: Seriennummer-Auswerter
19.01.2022 11:26:09
Abdullah
Guten Tag Thorsten,
vielen Dank für Deine Antwort.
leider verstehe ich nicht so ganz, was Du mir sagen willst.
Das Bild im Beispiel sollte nur darstellen, wie ich mir den Lösungsweg vorstelle.
ich kann das originale Excel Datei nicht zu Verfügung stellen. diese zu anonymisieren wäre ein sehr großer Aufwand.
Beste Grüße
Abdullah
Anzeige
AW: Seriennummer-Auswerter
19.01.2022 11:29:09
Oberschlumpf
Hi Abdullah
dann wird das mit dem Helfen aber sehr schwer - ohne Bsp-Excel-Datei von dir.
Du musst ja nicht 9 Mio Datensätze anonymisieren und zeigen - wenn du 10 bis 30 Bsp-Datensätze zeigst, anhand derer man dein Problem erkennen/nachvollziehen/und vllt auch lösen kann, könnte das ja vielleicht schon helfen - aber ok - is deine Entscheidung.
Ciao
Thorsten
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.

Anzeige
AW: Seriennummer-Auswerter
19.01.2022 14:44:48
Abdullah
und wie immer die Lösung stand vor der Nase die ganze Zeit.
die Lösung war viel einfacher als ich dachte. (zwei Schritte miteinander austauschen dann passt es )
wie es war :
Schritt -1 :
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))
If ZeitDiff > 10 And ZeitDiff Sheets(spWS).Cells(spI, 7).Value = ZeitDiff
End If
ZeitDiff = 0
Next spI
Schritt -2: zähle wenn, wie oft ein ZeiDiff vorkommt.
ActiveCell.FormulaR1C1 = "=IF(RC[-1]"""",COUNTIF(C[-1],RC[-1]),"""")"
Selection.AutoFill Destination:=Range("H2:H" & ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row), Type:=xlFillDefault
Lösung: die zwei Schritte untereinander tauschen und bisschen editieren :
Schritt -1 : zähle wenn, wie oft ein Zeitstempel vorkommt:
Range("H2").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(C[-7],RC[-7])"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H" & ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row), Type:=xlFillDefault
Schritt -2 : ZeitDiff bilden und druch das ergebniss von zähle wenn teilen.
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))
If ZeitDiff > 10 And ZeitDiff Sheets(spWS).Cells(spI, 7).Value = ZeitDiff / Sheets(spWS).Cells(spI, 8).Value
End If
ZeitDiff = 0
Next spI
es funktioniert. Danke trotzdem für die Hilfsbereitschaft
Anzeige
AW: Seriennummer-Auswerter
19.01.2022 11:21:17
Herbert_Grom
Warum hast du dich eigentlich nicht mehr bei mir gemeldet?
AW: Seriennummer-Auswerter
19.01.2022 11:41:59
Abdullah
Hallo Herbert,
danke, dass Du Dich wieder meldest.
ich war bis auf vor zwei Tagen im Urlaub. Ich kann mich noch erinnern, ich hab meine Antwort auf Deine letzte Email als Entwurf gespeichert, da ich sie nochmal lesen wollte, bevor ich sie schicke.
ich werde sagen, es gibt eigentlich keinen schlechten Grund, wieso ich mich nicht mehr gemeldet habe. Es waren nur paar Beschäftigungen, die nacheinander kamen, wo ich einiges kurz verschieben musste. Aber wir bleiben im Kontakt. hoffe Du hast es mir nicht übel genommen.
Beste Grüße
Abdullah
Anzeige
Excel ist nicht für alles das beste
20.01.2022 10:49:49
Yal
Hallo Abdullah,
wer nur der Hammer kennt, sieht die ganze Welt als Nagel.
Bei 9 Mio Datensätze ist Excel+VBA eindeutig nicht das optimale Werkzeug. Daten auf verschiedene Reiter zu verteilen, weil zu viel für ein Blatt ist, ist das Alarmsignal schlechthin. Da muss man mit einer Datenbank ran (z.B. Access) und eine einfache SQL-Afrage reicht.
Hol Dir ein paar Video-Tutorial, kompliziert ist es nicht. Wer VBA verteht, hat genug in der Oberstube, um Datenbank zu verstehen.
Alternativ die Daten in einem csv und Power Query drauf. Access kann man auch mit Power Query abfragen.
VG
Yal
Anzeige
AW: Excel ist nicht für alles das beste
20.01.2022 11:36:50
Abdullah
Hallo Yal,
vielen Dank für deinen Kommentar.
du hast vollkommen Recht. Excel hat viele Limits.
ich habe eigentlich wenig mit Rohe-Daten zu tun. vor allem habe ich mit Daten Auswertungen und Analysen zu tun. Um Daten zu analysieren arbeite ich privat mit R oder Minitab ab und zu mit Simulink und Matlab.
aber in einem Unternehmen, welches im Jahr 2022 Excel 2007 nutzt, kann man sich auch nicht alles wünschen!
Access-Zugang wäre sehr hilfreich, erstmal muss man ihn kriegen! oder mindestens jemanden kriegen, der ein Accsess-Zugang und Zeit hat !
aber man versucht sein Bestes, Yal.
Beste Grüße
Abdullah
Anzeige
AW: Excel ist nicht für alles das beste
20.01.2022 19:23:33
Yal
Hallo Abdullah,
deine Firma hat sicher Interesse an gute Ergebnisse. Eine Holzschraube mit dem Hammer reingekopft sieht beschiessen aus. Da gibt Dir deine Firma dafür auch einen Schraubenzieher in der Hand. Warum dann nicht dasselbe mit Access?
149 € Acces allein oder 7 €/Monat im Office-Bundel bei Microsoft selbst. https://www.microsoft.com/de-de/microsoft-365/p/access/cfq7ttc0hhmx
VG
Yal
AW: Excel ist nicht für alles das beste
21.01.2022 09:59:49
Abdullah
Hallo Yal,
nicht nur die Firma hat Interesse an gute Ergebnisse. ich möchte soweit wie es geht haargenau sein mit den Auswertungen.
das Problem ist : Rechte zu vergeben ist recht kompliziert hier. auch Microsoft Lizenzen zu kriegen ist noch komplizierter. weil die Firma steigt bald komplett auf Google um. !billig billig billig !. persönlich verlasse ich die Firma am Montag der 31.01 und hab nur die paar Auswertungen zu erledigen.
aber danke, du hast mir die Augen geöffnt, denn ich habe Access zuhause und kann meine Datenbank selbst anliegen und verwalten. ich werde es in Ferien mit Access probieren. und vor allem "etwas neues lernen" .
LG
Abdullah
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige