Grüezi NikoDemo
…warum möchtest Du meine Fragen nicht beantworten und lässt mich alles aus dem Code herauslesen…?
Private Sub CommandButton1_Click()
Dim ERSTE_ZEILE As Long, LETZTE_ZEILE As Long
Dim ERSTE_SPALTE As Long, LETZTE_SPALTE As Long
Das ist OK.
USRFM001.Show
Aber hier beginnt die Misere, denn damit ist ‚Tabelle1‘ nicht mehr das aktive Tabellenblatt (sondern nun ist die Userform das aktive Objekt)…
ERSTE_ZEILE = 5: LETZTE_ZEILE = 255
ERSTE_SPALTE = 1: LETZTE_SPALTE = 2
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets(„Tabelle1“) _
.Range(Cells(ERSTE_ZEILE, ERSTE_SPALTE),
Cells(LETZTE_ZEILE, LETZTE_SPALTE)), _
PlotBy:=xlColumns
…und daher gilt hier, was ich oben nachgefragt und auch geraten habe:
Ist das Tabellenblatt mit dem Namen ‚Tabelle1‘ während der ::Ausfürhung des Codes aktiv?
Wenn nicht, dann fehlt die Referenzierung von Cells() beide Male.
Was ist falsch?
Eben die beiden Cells(), die Du verwendest um den Quellrange des Diagramms festzulegen beziehen sich auf das aktive Objekt (hier die Userform) und können daher nicht passen.
Du musst nicht nur für den Range sondern auch jedes der beiden Cells() die Referenz auf das Tabellenblatt angeben.
So sollte es einigermassen passen, hoffe ich:
ActiveChart.SetSourceData Source:=Sheets("Tabelle1") \_
.Range(Sheets("Tabelle1").Cells(ERSTE\_ZEILE, ERSTE\_SPALTE),
Sheets("Tabelle1").Cells(LETZTE\_ZEILE, LETZTE\_SPALTE)), \_
PlotBy:=xlColumns
Mit freundlichen Grüssen
Thomas Ramel