PDA

Vollständige Version anzeigen : Identische Codes- ähnliche Daten- Ein Diagramm funktioniert, eins nicht ???


Excel_beginner
04.07.2014, 17:54
Hallo liebe Excel-Gemeinde,

ich wollte die Frage eigentlich nicht im Forum posten, weil es mir langsam peinlich wird so viel nachzufragen... aber bevor ich gleich meinen laptop ausm Fenster schmeiße und draufrumspringe dachte ich, ich tue es doch!

Es geht um ein vermutlich sehr simples Problem, dass mich heute schon Stunden beschäftigt.

Ich habe 5 Spalten, die in zwei Diagramme sollen.


A: Power
B: Torque
C: RPM
D: Power_Gleitender Mittelwert.
E: Torque_Gleitender Mittelwert.

1. Diagramm, Power_Torque_No_Filter: X-achse: RPM, Y1: Torque, Y2: Power
2. Diagramm, Power_Torque_Mean5: X-Achse: RPM, Y1: Torque_GleitenderMW, Y2: Power_GleitenderMW.

Die Diagramme erscheinen auf Knopfdruck je auf einem anderen Worksheet.

So, nun mein Problem. Für das erste Diagramm funktioniert alles so wie ich es brauche. Bei dem zweiten Diagramm mit den Mittelwerten wird "Laufzeitfehler 1004 ungültiger Parameter" angezeigt. Der Debugger bleibt bei der Zeile stehen, wo ich die zweite Kurve angebe, stehen bei " With .SeriesCollection(2)".

Wieso funktioniert mein Code bei dem ersten Diagramm mit den Rohwerten, aber nicht mehr bei dem zweiten mit den MIttelwerten ?

Hat jemand eine Idee?

Beverly
04.07.2014, 18:30
Hi,

Sub Power_Torque_No_Filter(wsName As String) 'Inhalt: Power und Torque über Rpm
Dim ws As Worksheet
Dim lngLetzte As Long

'Check if worksheet is already created, otherwise delete
If Not IsError(Evaluate(wsName & "!A1")) Then
Application.DisplayAlerts = False
Worksheets(wsName).delete
Application.DisplayAlerts = True
End If

'Create new worksheet
ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
'Choose Name
ActiveSheet.Name = wsName


'Manipulation of data
'Your code for manipulating the data

'Workbooks("Data_acquisition_Testbench.xls").Worksheets("Process_Data").Columns("A:C").Copy _
'Destination:=ThisWorkbook.Worksheets("Power_Torque_No_Filter").Range("A:C")
Application.ScreenUpdating = False

Worksheets("Process_Data").Columns("C:C").Copy Destination:=ThisWorkbook.Worksheets("Power_Torque_No_Filter").Range("C:C") 'RPM to ...
Worksheets("Process_Data").Columns("D:D").Copy Destination:=ThisWorkbook.Worksheets("Power_Torque_No_Filter").Range("A:A") 'Power to ...
Worksheets("Process_Data").Columns("B:B").Copy Destination:=ThisWorkbook.Worksheets("Power_Torque_No_Filter").Range("B:B") 'Torque to ...

Application.CutCopyMode = False
Application.ScreenUpdating = True
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)

' Creates Diagramm with Power and Torque over rpm
With ActiveSheet.Shapes.AddChart(Range("F1").Left, Range("F11").Top, _
Range("F1:K1").Width, Range("F11:F20").Height).Chart
.ChartType = xlLine
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = "Power_Torque_Over_RPM_[No_Filter]"

With .SeriesCollection(1)
'Cells(Row, Column/ Reihe, Spalte)
.XValues = Range(Cells(2, 3), Cells(lngLetzte, 3)) 'Soll sein: RPM Cells(2,1)
.Values = Range(Cells(2, 2), Cells(lngLetzte, 2)) 'Soll sein: Power Cells(2,2) 0-60 kW
'This gives the right name for the graphs. "=Worksheet!Cell"
.Name = "=Power_Torque_No_Filter!B1"
End With

With .SeriesCollection(2)
.Values = Range(Cells(2, 1), Cells(lngLetzte, 1)) 'Soll sein: Torque Cells(2,3) 0-120 Nm
.Name = "=Power_Torque_No_Filter!A1"
.AxisGroup = 2
End With


'Positioning of diagram
'Right Axes: Power [0-60 kW]
.Axes(xlValue, xlSecondary).MinimumScale = 10
.Axes(xlValue, xlSecondary).MaximumScale = 60
.Parent.Top = Range("F15").Top
.Parent.Left = Range("F15").Left
.Parent.Width = Range("F15:K15").Width
.Parent.Height = Range("F15:F25").Height
'Left Axes: Torque [0-120 Nm]
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = 120
End With

'Delete RPM from legend
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Legend.Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Legend.LegendEntries(2).Select
Selection.delete

End Sub


<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

Excel_beginner
04.07.2014, 18:42
Der code ist etwas lang, deswegen wollte ich den code hier nicht reinschreiben.

@Beverly: Du hast gerade den Teil gepostet, der funktioniert. Hier der Teil mit dem Fehler:

Er funktioniert super bis zu dem rot markierten Teil relativ weit unten, wo das Diagramm erstellt werden soll.


Option Explicit

Sub Power_Torque_Mean5(wsName As String) 'Inhalt: Power und Torque über Rpm
Dim ws As Worksheet
Dim lngLetzte As Long

'Check if worksheet is already created, otherwise delete
If Not IsError(Evaluate(wsName & "!A1")) Then
Application.DisplayAlerts = False
Worksheets(wsName).delete
Application.DisplayAlerts = True
End If

'Create new worksheet
ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
'Choose Name
ActiveSheet.Name = wsName


'Manipulation of data
'Your code for manipulating the data

'Workbooks("Data_acquisition_Testbench.xls").Worksheets("Process_Data").Columns("A:C").Copy _
'Destination:=ThisWorkbook.Worksheets("Power_Torque_Mean5").Range("A:C")
Application.ScreenUpdating = False

Worksheets("Process_Data").Columns("C:C").Copy Destination:=ThisWorkbook.Worksheets("Power_Torque_Mean5").Range("C:C") 'RPM to ...
Worksheets("Process_Data").Columns("D:D").Copy Destination:=ThisWorkbook.Worksheets("Power_Torque_Mean5").Range("A:A") 'Power to ...
Worksheets("Process_Data").Columns("B:B").Copy Destination:=ThisWorkbook.Worksheets("Power_Torque_Mean5").Range("B:B") 'Torque to ...

Application.CutCopyMode = False
Application.ScreenUpdating = True
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)


'Makro für Gleitenden Mittelwert über 5 werte: mean5
'GANZ WICHTIG !!!!!!
'=WENNFEHLER(MITTELWERT(B213:B217);#NV)

'Calculation of Power_mean5 in column D
Columns("D:D").Select
Selection.NumberFormat = "0.0"
Range("D1").Select
ActiveCell.FormulaR1C1 = "Power mean5 [kW]"
Range("D2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(AVERAGE(RC[-3]:R[4]C[-3]),#N/A)" '2 bedeutet, Werte aus zweiter Spalte???
Range("D2").Select
Selection.AutoFill Destination:=Range("D2:D350"), Type:=xlFillDefault
Range("D2:D350").Select

'Calculation of Torque_mean5 in column E
Columns("E:E").Select
Selection.NumberFormat = "0.0"
Range("E1").Select
ActiveCell.FormulaR1C1 = "Torque mean5 [Nm]"
Range("E2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(AVERAGE(RC[-3]:R[4]C[-3]),#N/A)" '??? 3 bedeutet dass Werte aus der DRITTEN SPALTE genommen werden zur Berechnung
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E350"), Type:=xlFillDefault
Range("E2:E350").Select


'Autofit for all columns
Range("A:E").Columns.AutoFit

' Creates Diagramm with Power and Torque over rpm
With ActiveSheet.Shapes.AddChart(Range("F1").Left, Range("F11").Top, _
Range("F1:K1").Width, Range("F11:F20").Height).Chart
.ChartType = xlLine
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = "Power_Torque_Over_RPM [mean5]"

With .SeriesCollection(1)
'Cells(Row, Column/ Reihe, Spalte)
.XValues = Range(Cells(2, 3), Cells(lngLetzte, 3)) 'Soll sein: RPM Cells(2,1)
.Values = Range(Cells(2, 5), Cells(lngLetzte, 5)) 'Soll sein: Power_Mean5 Cells(2,2) 0-60 kW
'This gives the right name for the graphs. "=Worksheet!Cell"
.Name = "=Power_Torque_Mean5!B1"
End With

With .SeriesCollection(2)

.Values = Range(Cells(2, 4), Cells(lngLetzte, 4)) 'Soll sein: Torque_Mean5 Cells(2,3) 0-120 Nm
.Name = "=Power_Torque_Mean5!D1" 'Name for proper line
.AxisGroup = 2
End With

'Positioning of diagram
'Right Axes: Power [0-60 kW]
.Axes(xlValue, xlSecondary).MinimumScale = 10
.Axes(xlValue, xlSecondary).MaximumScale = 60
.Parent.Top = Range("F15").Top
.Parent.Left = Range("F15").Left
.Parent.Width = Range("F15:K15").Width
.Parent.Height = Range("F15:F25").Height
'Left Axes: Torque [0-120 Nm]
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = 120
End With


'Delete RPM from legend
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Legend.Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Legend.LegendEntries(2).Select
Selection.delete

End Sub

Nepumuk
04.07.2014, 18:51
Hallo,

wie viele Datenreihen ein Diagramm automatisch erstellt, hängt von der Cursorposition in der Tabelle ab. Steht der Cursor in einer für Excel erkennbaren Liste, dann wird für jede Spalte eine Datenreihe angelegt. Ich setz den Cursor einfach in die letze Zeile der letzten Spalte und schon wird ein komplett leeres Diagramm angelegt.

Schau dir mal an wie ich das mache (war gleich so frei deinen Code zu entschlacken):

<nobr><span style="font-family:Courier New,Arial; font-size:9pt ;" ><span style="color:#000080"; >Option</span> <span style="color:#000080"; >Explicit</span><br /><br /><b><span style="color:#000080"; >Sub</span> Power_Torque_Mean5(wsName <span style="color:#000080"; >As</span> <span style="color:#000080"; >String</span>) <span style="color:#008000"; >'Inhalt: Power und Torque &uuml;ber Rpm</span></b><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Dim</span> objWorksheet <span style="color:#000080"; >As</span> Worksheet, objChart <span style="color:#000080"; >As</span> Chart<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Dim</span> lngLastRow <span style="color:#000080"; >As</span> <span style="color:#000080"; >Long</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Check if worksheet is already created, otherwise delete</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >If</span> <span style="color:#000080"; >Not</span> IsError(Evaluate(wsName & <span style="color:#800000"; >"!A1"</span>)) <span style="color:#000080"; >Then</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.DisplayAlerts = <span style="color:#000080"; >False</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Worksheets(wsName).Delete<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.DisplayAlerts = <span style="color:#000080"; >True</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >If</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Create new worksheet</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> ThisWorkbook<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Set</span> objWorksheet = Worksheets.Add(After:=.Worksheets(.Worksheets.Count))<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Choose Name</span><br />&nbsp;&nbsp;&nbsp;&nbsp;objWorksheet.Name = wsName<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Application.ScreenUpdating = <span style="color:#000080"; >False</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> objWorksheet<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Worksheets(<span style="color:#800000"; >"Process_Data"</span>).Columns(<span style="color:#800000"; >"C:C"</span>).Copy _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destination:=.Range(<span style="color:#800000"; >"C:C"</span>) <span style="color:#008000"; >'RPM to ...</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Worksheets(<span style="color:#800000"; >"Process_Data"</span>).Columns(<span style="color:#800000"; >"D:D"</span>).Copy _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destination:=.Range(<span style="color:#800000"; >"A:A"</span>) <span style="color:#008000"; >'Power to ...</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Worksheets(<span style="color:#800000"; >"Process_Data"</span>).Columns(<span style="color:#800000"; >"B:B"</span>).Copy _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destination:=.Range(<span style="color:#800000"; >"B:B"</span>) <span style="color:#008000"; >'Torque to ...</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Makro f&uuml;r Gleitenden Mittelwert &uuml;ber 5 werte: mean5</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'GANZ WICHTIG !!!!!!</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'=WENNFEHLER(MITTELWERT(B213:B217);#NV)</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Calculation of Power_mean5 in column D</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Columns(4).NumberFormat = <span style="color:#800000"; >"0.0"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Cells(1, 4).Value = <span style="color:#800000"; >"Power mean5 [kW]"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Range(.Cells(2, 4), .Cells(lngLastRow, 4)).FormulaR1C1 = _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#800000"; >"=IFERROR(AVERAGE(RC[-3]:R[4]C[-3]),#N/A)"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Calculation of Torque_mean5 in column E</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Columns(5).NumberFormat = <span style="color:#800000"; >"0.0"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Cells(1, 5).Value = <span style="color:#800000"; >"Torque mean5 [Nm]"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Range(.Cells(2, 5), .Cells(lngLastRow, 5)).FormulaR1C1 = _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#800000"; >"=IFERROR(AVERAGE(RC[-3]:R[4]C[-3]),#N/A)"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Autofit for all columns</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Columns(<span style="color:#800000"; >"A:E"</span>).AutoFit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Cells(.Rows.Count, .Columns.Count).Select<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >' Creates Diagramm with Power and Torque over rpm</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Set</span> objChart = .Shapes.AddChart(xlLine, .Cells(15, 6).Left, .Cells(15, 6).Top, _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Range(<span style="color:#800000"; >"F15:K15"</span>).Width, .Range(<span style="color:#800000"; >"F15:F25"</span>).Height).Chart<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> objChart<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SeriesCollection.NewSeries<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> .SeriesCollection(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Cells(Row, Column/ Reihe, Spalte)</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.XValues = objWorksheet.Range(objWorksheet.Cells(2, 3), _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objWorksheet.Cells(lngLastRow, 3)).Value <span style="color:#008000"; >'Soll sein: RPM Cells(2,1)</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Values = objWorksheet.Range(objWorksheet.Cells(2, 5), _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objWorksheet.Cells(lngLastRow, 5)).Value <span style="color:#008000"; >'Soll sein: Power_Mean5 Cells(2,2) 0-60 kW</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = <span style="color:#800000"; >"="</span> & wsName & <span style="color:#800000"; >"!B1"</span> <span style="color:#008000"; >'Name for proper line</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SeriesCollection.NewSeries<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> .SeriesCollection(2)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Values = objWorksheet.Range(objWorksheet.Cells(2, 4), _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objWorksheet.Cells(lngLastRow, 4)).Value <span style="color:#008000"; >'Soll sein: Torque_Mean5 Cells(2,3) 0-120 Nm</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = <span style="color:#800000"; >"="</span> & wsName & <span style="color:#800000"; >"!D1"</span> <span style="color:#008000"; >'Name for proper line</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AxisGroup = 2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SetElement msoElementChartTitleAboveChart<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ChartTitle.Text = <span style="color:#800000"; >"Power_Torque_Over_RPM [mean5]"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Right Axes: Power [0-60 kW]</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Axes(xlValue, xlSecondary).MinimumScale = 10<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Axes(xlValue, xlSecondary).MaximumScale = 60<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Left Axes: Torque [0-120 Nm]</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Axes(xlValue).MinimumScale = 0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Axes(xlValue).MaximumScale = 120<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Delete RPM from legend</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Legend.LegendEntries(2).Delete<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;objWorksheet.Cells(1, 1).Select<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Set</span> objChart = <span style="color:#000080"; >Nothing</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Set</span> objWorksheet = <span style="color:#000080"; >Nothing</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Application.ScreenUpdating = <span style="color:#000080"; >True</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><b><span style="color:#000080"; >End</span> <span style="color:#000080"; >Sub</span></b><br /></span></nobr>

Beverly
04.07.2014, 19:23
Hi,

sorry, mein Rechner war gerade abgestürzt und der falsche Code wurde im Beitrag gespeichert. Aktuell sollte es dieser Code sein:

Sub Power_Torque_Mean5(wsName As String) 'Inhalt: Power und Torque über Rpm
Dim ws As Worksheet
Dim lngLetzte As Long
Dim lngReihe As Long

'Check if worksheet is already created, otherwise delete
If Not IsError(Evaluate(wsName & "!A1")) Then
Application.DisplayAlerts = False
Worksheets(wsName).delete
Application.DisplayAlerts = True
End If

'Create new worksheet
ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
'Choose Name
ActiveSheet.Name = wsName


'Manipulation of data
'Your code for manipulating the data

'Workbooks("Data_acquisition_Testbench.xls").Worksheets("Process_Data").Columns("A:C").Copy _
'Destination:=ThisWorkbook.Worksheets("Power_Torque_Mean5").Range("A:C")
Application.ScreenUpdating = False

Worksheets("Process_Data").Columns("C:C").Copy Destination:=ThisWorkbook.Worksheets("Power_Torque_Mean5").Range("C:C") 'RPM to ...
Worksheets("Process_Data").Columns("D:D").Copy Destination:=ThisWorkbook.Worksheets("Power_Torque_Mean5").Range("A:A") 'Power to ...
Worksheets("Process_Data").Columns("B:B").Copy Destination:=ThisWorkbook.Worksheets("Power_Torque_Mean5").Range("B:B") 'Torque to ...

Application.CutCopyMode = False
Application.ScreenUpdating = True
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)


'Makro für Gleitenden Mittelwert über 5 werte: mean5
'GANZ WICHTIG !!!!!!
'=WENNFEHLER(MITTELWERT(B213:B217);#NV)

'Calculation of Power_mean5 in column D
Range(Cells(1, 4), Cells(lngLetzte, 4)).NumberFormat = "0.0"
Range("D1").FormulaR1C1 = "Power mean5 [kW]"
Range("D2").FormulaR1C1 = "=IFERROR(AVERAGE(RC[-3]:R[4]C[-3]),#N/A)" '2 bedeutet, Werte aus zweiter Spalte???
Range("D2").AutoFill Destination:=Range("D2:D350"), Type:=xlFillDefault

'Calculation of Torque_mean5 in column E
Columns("E:E").NumberFormat = "0.0"
Range("E1").FormulaR1C1 = "Torque mean5 [Nm]"
Range("E2").FormulaR1C1 = "=IFERROR(AVERAGE(RC[-3]:R[4]C[-3]),#N/A)" '??? 3 bedeutet dass Werte aus der DRITTEN SPALTE genommen werden zur Berechnung
Range("E2").AutoFill Destination:=Range("E2:E350"), Type:=xlFillDefault


'Autofit for all columns
Range("A:E").Columns.AutoFit

' Creates Diagramm with Power and Torque over rpm
With ActiveSheet.Shapes.AddChart(Range("F1").Left, Range("F11").Top, _
Range("F1:K1").Width, Range("F11:F20").Height).Chart
.ChartType = xlLine
.SetElement (msoElementChartTitleAboveChart)
.ChartTitle.Text = "Power_Torque_Over_RPM [mean5]"
For lngReihe = .SeriesCollection.Count To 1 Step -1
.SeriesCollection(lngReihe).delete
Next lngReihe
With .SeriesCollection.NewSeries
.XValues = Range(Cells(2, 3), Cells(lngLetzte, 3)) 'Soll sein: RPM Cells(2,1)
.Values = Range(Cells(2, 5), Cells(lngLetzte, 5)) 'Soll sein: Power_Mean5 Cells(2,2) 0-60 kW
.Name = "=Power_Torque_Mean5!B1"
End With
With .SeriesCollection.NewSeries
.Values = Range(Cells(2, 4), Cells(lngLetzte, 4)) 'Soll sein: Torque_Mean5 Cells(2,3) 0-120 Nm
.Name = "=Power_Torque_Mean5!D1" 'Name for proper line
.AxisGroup = 2
End With

'Positioning of diagram
'Right Axes: Power [0-60 kW]
.Axes(xlValue, xlSecondary).MinimumScale = 10
.Axes(xlValue, xlSecondary).MaximumScale = 60
.Parent.Top = Range("F15").Top
.Parent.Left = Range("F15").Left
.Parent.Width = Range("F15:K15").Width
.Parent.Height = Range("F15:F25").Height
'Left Axes: Torque [0-120 Nm]
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = 120


'Delete RPM from legend
.Legend.LegendEntries(2).delete
End With
End Sub


Wie ich dir bereits in einem anderen Beitrag geschrieben hatte, wird ein Diagrmam mit der Anzahl an Datenreihen erstellt, wie viele zusammenhängende Bereiche sich in der Umgebung des Cursors befinden. Deshalb ist es das beste, erst alle Darenreihen zu löschen und sie dann neu zu erstellen.

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

Nepumuk
05.07.2014, 10:08
Hallo Beverly,

anscheinend haben wir unterschiedliche Excelversionen, denn in meinem Excel hat die AddChart-Methode diese Parameter:

Function AddChart([XlChartType], [Left], [Top], [Width], [Height]) As Shape

Darum muss in der Prozedur sowohl der Charttype wie auch die Position korrigiert werden.


@Excel_beginner: Du könntest das Chart auch über die ChartObjects.Add - Methode erstellen. Das hat grundsätzlich keine Datenreihen egal ob der Cursor in einer Liste steht oder nicht. Damit könnte man sich sowohl das setzen des Cursors wie auch das Löschen eventuell automatisch angelegter Datenreihen sparen. Einziger Nachteil, du musst den Charttype pro Datenreihe angeben.

<nobr><span style="font-family:Courier New,Arial; font-size:9pt ;" ><span style="color:#000080"; >Option</span> <span style="color:#000080"; >Explicit</span><br /><br /><b><span style="color:#000080"; >Public</span> <span style="color:#000080"; >Sub</span> Power_Torque_Mean5(wsName <span style="color:#000080"; >As</span> <span style="color:#000080"; >String</span>) <span style="color:#008000"; >'Inhalt: Power und Torque &uuml;ber Rpm</span></b><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Dim</span> objWorksheet <span style="color:#000080"; >As</span> Worksheet, objChart <span style="color:#000080"; >As</span> Chart<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Dim</span> lngLastRow <span style="color:#000080"; >As</span> <span style="color:#000080"; >Long</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> Application<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Calculation = xlCalculationManual<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.EnableEvents = <span style="color:#000080"; >False</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ScreenUpdating = <span style="color:#000080"; >False</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Check if worksheet is already created, otherwise delete</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >If</span> <span style="color:#000080"; >Not</span> IsError(Evaluate(wsName & <span style="color:#800000"; >"!A1"</span>)) <span style="color:#000080"; >Then</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.DisplayAlerts = <span style="color:#000080"; >False</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Worksheets(wsName).Delete<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.DisplayAlerts = <span style="color:#000080"; >True</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >If</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Create new worksheet</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> ThisWorkbook<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Set</span> objWorksheet = .Worksheets.Add( _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After:=.Worksheets(.Worksheets.Count))<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Choose Name</span><br />&nbsp;&nbsp;&nbsp;&nbsp;objWorksheet.Name = wsName<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> objWorksheet<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Worksheets(<span style="color:#800000"; >"Process_Data"</span>).Columns(3).Copy _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destination:=.Cells(1, 3) <span style="color:#008000"; >'RPM to ...</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Worksheets(<span style="color:#800000"; >"Process_Data"</span>).Columns(4).Copy _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destination:=.Cells(1, 1) <span style="color:#008000"; >'Power to ...</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Worksheets(<span style="color:#800000"; >"Process_Data"</span>).Columns(2).Copy _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destination:=.Cells(1, 2) <span style="color:#008000"; >'Torque to ...</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Calculation of Power_mean5 in column D</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Cells(1, 4).Value = <span style="color:#800000"; >"Power mean5 [kW]"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> .Range(.Cells(2, 4), .Cells(lngLastRow, 4))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.FormulaR1C1 = <span style="color:#800000"; >"=IFERROR(AVERAGE(RC[-3]:R[4]C[-3]),#N/A)"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.NumberFormat = <span style="color:#800000"; >"0.0"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Calculation of Torque_mean5 in column E</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Cells(1, 5).Value = <span style="color:#800000"; >"Torque mean5 [Nm]"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> .Range(.Cells(2, 5), .Cells(lngLastRow, 5))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.FormulaR1C1 = <span style="color:#800000"; >"=IFERROR(AVERAGE(RC[-3]:R[4]C[-3]),#N/A)"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.NumberFormat = <span style="color:#800000"; >"0.0"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Autofit for all columns</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Columns(<span style="color:#800000"; >"A:E"</span>).AutoFit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >' Creates Diagramm with Power and Torque over rpm</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Set</span> objChart = .ChartObjects.Add(.Cells(15, 6).Left, .Cells(15, 6).Top, _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Range(<span style="color:#800000"; >"F15:K15"</span>).Width, .Range(<span style="color:#800000"; >"F15:F25"</span>).Height).Chart<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> objChart<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SeriesCollection.NewSeries<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> .SeriesCollection(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ChartType = xlLine<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.XValues = objWorksheet.Range(objWorksheet.Cells(2, 3), _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objWorksheet.Cells(lngLastRow, 3)).Value <span style="color:#008000"; >'Soll sein: RPM Cells(2,1)</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Values = objWorksheet.Range(objWorksheet.Cells(2, 5), _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objWorksheet.Cells(lngLastRow, 5)).Value <span style="color:#008000"; >'Soll sein: Power_Mean5 Cells(2,2) 0-60 kW</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = <span style="color:#800000"; >"="</span> & wsName & <span style="color:#800000"; >"!B1"</span> <span style="color:#008000"; >'Name for proper line</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SeriesCollection.NewSeries<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> .SeriesCollection(2)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ChartType = xlLine<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Values = objWorksheet.Range(objWorksheet.Cells(2, 4), _<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objWorksheet.Cells(lngLastRow, 4)).Value <span style="color:#008000"; >'Soll sein: Torque_Mean5 Cells(2,3) 0-120 Nm</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = <span style="color:#800000"; >"="</span> & wsName & <span style="color:#800000"; >"!D1"</span> <span style="color:#008000"; >'Name for proper line</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.AxisGroup = xlSecondary<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.SetElement msoElementChartTitleAboveChart<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ChartTitle.Text = <span style="color:#800000"; >"Power_Torque_Over_RPM [mean5]"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Right Axes: Power [0-60 kW]</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Axes(xlValue, xlSecondary).MinimumScale = 10<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Axes(xlValue, xlSecondary).MaximumScale = 60<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Left Axes: Torque [0-120 Nm]</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Axes(xlValue).MinimumScale = 0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Axes(xlValue).MaximumScale = 120<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#008000"; >'Delete RPM from legend</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Legend.LegendEntries(2).Delete<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Set</span> objChart = <span style="color:#000080"; >Nothing</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >Set</span> objWorksheet = <span style="color:#000080"; >Nothing</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >With</span> Application<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Calculation = xlCalculationAutomatic<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.EnableEvents = <span style="color:#000080"; >True</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ScreenUpdating = <span style="color:#000080"; >True</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#000080"; >End</span> <span style="color:#000080"; >With</span><br /><b><span style="color:#000080"; >End</span> <span style="color:#000080"; >Sub</span></b><br /></span></nobr>

Beverly
05.07.2014, 10:13
AddChart([XlChartType], [Left], [Top], [Width], [Height])



Diesen Parameter gibt es erst ab Excel2013.

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

Nepumuk
05.07.2014, 10:24
Hallo Beverly,

ich hab den aber schon in 2007.

http://www.bilder-upload.eu/thumb/2f09eb-1404552387.jpg (http://www.bilder-upload.eu/show.php?file=2f09eb-1404552387.jpg)

Beverly
05.07.2014, 10:35
Hi Nepumuk,

dann habe ich das offensichtlich verwechselt.

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

Nepumuk
05.07.2014, 10:36
Hallo Beverly,

auch ich lerne nie aus. ;)

Beverly
05.07.2014, 10:45
Hi Nepumuk,

da der Fragesteller eine xls-Datei hochgeladen und möglicherweise eine Excelversion < 2007 benutzt, würde das allerdings die Möglichkeit der Verwendung dieses Parameters sowieso irrelevant machen. ;)

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

Excel_beginner
07.07.2014, 15:03
Danke für eure Hilfe. Jetzt funktionieren alle Grafen so wie sie sollen. Ich hatte schon vermutet, dass es etwas mit der Cursor-Position zu tun hat, habe auch schon alles mögliche versucht- aber ohne Erfolg.

Ich nutze excel 2007.