Sub AktualisiereXYDiagrammWiderstand()
    Dim datenWs As Worksheet
    Dim diagrammWs As Worksheet
    Dim chartObj As ChartObject
    Dim diagramm As Chart
    Dim xRange As Range
    Dim yRange As Range
    Dim letzteSpalte As Long
    Dim letzteZeile As Long
    Dim i As Long
    ' Arbeitsblätter definieren
    Set datenWs = ThisWorkbook.Worksheets(1) ' Blatt mit den Daten
    Set diagrammWs = ThisWorkbook.Worksheets(3) ' Blatt mit dem Diagramm
    ' Diagramm definieren
    Set chartObj = diagrammWs.ChartObjects(1) ' Diagrammname anpassen
    Set diagramm = chartObj.Chart
    ' Letzte Zeile und Spalte der Daten finden
    letzteZeile = datenWs.Cells(datenWs.Rows.Count, 1).End(xlUp).Row ' X-Werte in Spalte A
    letzteSpalte = datenWs.Cells(3, datenWs.Columns.Count).End(xlToLeft).Column ' Y-Werte ab Spalte B
    ' MsgBox letzteZeile, vbInformation
    ' MsgBox letzteSpalte, vbInformation
    ' X-Werte-Bereich definieren (fix in Spalte A, ab Zeile 3)
    Set xRange = datenWs.Range(datenWs.Cells(3, 1), datenWs.Cells(letzteZeile, 1)) ' Daten beginnen ab Zeile 3
    ' Bestehende Datenreihen im Diagramm entfernen
    Do While diagramm.SeriesCollection.Count > 0
        diagramm.SeriesCollection(1).Delete
    Loop
    ' Neue Datenreihen hinzufügen
    For i = 2 To letzteSpalte ' Y-Werte beginnen in Spalte B
        Set yRange = datenWs.Range(datenWs.Cells(3, i), datenWs.Cells(letzteZeile, i))
        ' Neue Datenreihe hinzufügen
        With diagramm.SeriesCollection.NewSeries
            .Name = datenWs.Cells(2, i).Value ' Name der Reihe aus der Kopfzeile (Zeile 1)
            .XValues = xRange
            .Values = yRange
        End With
    Next i
End Sub

Sub AktualisiereXYDiagrammKraft()
    Dim datenWs As Worksheet
    Dim diagrammWs As Worksheet
    Dim chartObj As ChartObject
    Dim diagramm As Chart
    Dim xRange As Range
    Dim yRange As Range
    Dim letzteSpalte As Long
    Dim letzteZeile As Long
    Dim i As Long
    ' Arbeitsblätter definieren
    Set datenWs = ThisWorkbook.Worksheets(2) ' Blatt mit den Daten
    Set diagrammWs = ThisWorkbook.Worksheets(4) ' Blatt mit dem Diagramm
    ' Diagramm definieren
    Set chartObj = diagrammWs.ChartObjects(1) ' Diagrammname anpassen
    Set diagramm = chartObj.Chart
    ' Letzte Zeile und Spalte der Daten finden
    letzteZeile = datenWs.Cells(datenWs.Rows.Count, 1).End(xlUp).Row ' X-Werte in Spalte A
    letzteSpalte = datenWs.Cells(3, datenWs.Columns.Count).End(xlToLeft).Column ' Y-Werte ab Spalte B
    'MsgBox letzteZeile, vbInformation
    'MsgBox letzteSpalte, vbInformation
    ' X-Werte-Bereich definieren (fix in Spalte A, ab Zeile 3)
    Set xRange = datenWs.Range(datenWs.Cells(3, 1), datenWs.Cells(letzteZeile, 1)) ' Daten beginnen ab Zeile 3
    ' Bestehende Datenreihen im Diagramm entfernen
    Do While diagramm.SeriesCollection.Count > 0
        diagramm.SeriesCollection(1).Delete
    Loop
    ' Neue Datenreihen hinzufügen
    For i = 2 To letzteSpalte ' Y-Werte beginnen in Spalte B
        Set yRange = datenWs.Range(datenWs.Cells(3, i), datenWs.Cells(letzteZeile, i))
        ' Neue Datenreihe hinzufügen
        With diagramm.SeriesCollection.NewSeries
            .Name = datenWs.Cells(2, i).Value ' Name der Reihe aus der Kopfzeile (Zeile 1)
            .XValues = xRange
            .Values = yRange
        End With
    Next i
End Sub

Sub AktualisiereXYDiagrammInkrementWiderstand()
    Dim wsAktuell As Worksheet
    Dim ws As Worksheet
    Dim chartObj As ChartObject
    Dim diagramm As Chart
    Dim letzteZeile As Long
    Dim letzteSpalte As Long
    Dim datenBereichX As Range
    Dim datenBereichY1 As Range
    Dim datenReihe As Series
    Dim diagrammTitel As String
    Dim startZeile As Long
    Dim blockAnzahl As Long
    Dim blockStartSpalte As Long
    Dim blockEndSpalte As Long
    Dim blockIndex As Integer
    
    ' Arbeitsblatt "Widerstandsdiagramm" festlegen
    Set wsAktuell = ThisWorkbook.Worksheets("Widerstandsdiagramm")
    
    ' Diagramm auf "Widerstandsdiagramm" suchen
    If wsAktuell.ChartObjects.Count = 0 Then
        MsgBox "Kein Diagramm auf 'Widerstandsdiagramm' gefunden.", vbExclamation
        Exit Sub
    End If
    
    Set chartObj = wsAktuell.ChartObjects(1)
    Set diagramm = chartObj.Chart
    
    ' Vorhandene Datenreihen löschen
    Do While diagramm.SeriesCollection.Count > 0
        diagramm.SeriesCollection(1).Delete
    Loop
    
    ' Alle Blätter vor "Widerstandsdiagramm" durchlaufen
    For Each ws In ThisWorkbook.Worksheets
        If ws.Index < wsAktuell.Index Then
            ' Letzte Zeile im Blatt ermitteln
            letzteZeile = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
            
            ' Prüfen, ob relevante Daten vorhanden sind
            If letzteZeile >= 3 Then
                ' Startzeile und Anzahl der Datenblöcke definieren
                startZeile = 3
                blockStartSpalte = 1 ' Erste Spalte für x
                blockEndSpalte = 3   ' Spalten x, y1, y2
                blockAnzahl = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column / 3 ' Anzahl Blöcke
                
                ' Datenblöcke durchlaufen
                For blockIndex = 0 To blockAnzahl - 1
                    ' X-Werte und Y1-Werte für den aktuellen Block definieren
                    With ws
                        Set datenBereichX = .Range(.Cells(startZeile, blockStartSpalte + blockIndex * 3), _
                                                   .Cells(letzteZeile, blockStartSpalte + blockIndex * 3)) ' Spalte X
                        Set datenBereichY1 = .Range(.Cells(startZeile, blockStartSpalte + blockIndex * 3 + 1), _
                                                    .Cells(letzteZeile, blockStartSpalte + blockIndex * 3 + 1)) ' Spalte Y1
                        
                        ' Neue Datenreihe hinzufügen
                        Set datenReihe = diagramm.SeriesCollection.NewSeries
                        datenReihe.Values = datenBereichY1
                        datenReihe.XValues = datenBereichX
                        datenReihe.Name = ws.Name & " - Position " & (blockIndex + 1)
                    End With
                Next blockIndex
            End If
        End If
    Next ws
End Sub

Sub AktualisiereXYDiagrammInkrementKraft()
    Dim wsWiderstand As Worksheet
    Dim wsKraft As Worksheet
    Dim ws As Worksheet
    Dim chartObj As ChartObject
    Dim diagramm As Chart
    Dim letzteZeile As Long
    Dim datenBereichX As Range
    Dim datenBereichY2 As Range
    Dim datenReihe As Series
    Dim diagrammTitel As String
    Dim startZeile As Long
    Dim blockAnzahl As Long
    Dim blockStartSpalte As Long
    Dim blockEndSpalte As Long
    Dim blockIndex As Integer
    
    ' Arbeitsblätter "Widerstandsdiagramm" und "Kraftdiagramm" festlegen
    Set wsWiderstand = ThisWorkbook.Worksheets("Widerstandsdiagramm")
    Set wsKraft = ThisWorkbook.Worksheets("Kraftdiagramm")
    
    ' Diagramm auf "Kraftdiagramm" suchen
    If wsKraft.ChartObjects.Count = 0 Then
        MsgBox "Kein Diagramm auf 'Kraftdiagramm' gefunden.", vbExclamation
        Exit Sub
    End If
    
    Set chartObj = wsKraft.ChartObjects(1)
    Set diagramm = chartObj.Chart
    
    ' Vorhandene Datenreihen löschen
    Do While diagramm.SeriesCollection.Count > 0
        diagramm.SeriesCollection(1).Delete
    Loop
    
    ' Alle Blätter vor "Widerstandsdiagramm" durchlaufen
    For Each ws In ThisWorkbook.Worksheets
        If ws.Index < wsWiderstand.Index Then
            ' Letzte Zeile im Blatt ermitteln
            letzteZeile = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
            
            ' Prüfen, ob relevante Daten vorhanden sind
            If letzteZeile >= 3 Then
                ' Startzeile und Anzahl der Datenblöcke definieren
                startZeile = 3
                blockStartSpalte = 1 ' Erste Spalte für x
                blockEndSpalte = 3   ' Spalten x, y1, y2
                blockAnzahl = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column / 3 ' Anzahl Blöcke
                
                ' Datenblöcke durchlaufen
                For blockIndex = 0 To blockAnzahl - 1
                    ' X-Werte und Y2-Werte für den aktuellen Block definieren
                    With ws
                        Set datenBereichX = .Range(.Cells(startZeile, blockStartSpalte + blockIndex * 3), _
                                                   .Cells(letzteZeile, blockStartSpalte + blockIndex * 3)) ' Spalte X
                        Set datenBereichY2 = .Range(.Cells(startZeile, blockStartSpalte + blockIndex * 3 + 2), _
                                                    .Cells(letzteZeile, blockStartSpalte + blockIndex * 3 + 2)) ' Spalte Y2
                        
                        ' Neue Datenreihe hinzufügen
                        Set datenReihe = diagramm.SeriesCollection.NewSeries
                        datenReihe.Values = datenBereichY2
                        datenReihe.XValues = datenBereichX
                        datenReihe.Name = ws.Name & " - Position " & (blockIndex + 1)
                    End With
                Next blockIndex
            End If
        End If
    Next ws
End Sub

