Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagramm Beschriftung der Graphen

Forumthread: Diagramm Beschriftung der Graphen

Diagramm Beschriftung der Graphen
Daniel
Guten Morgen allerseits,
kann mir jemand sagen warum im folgen VBA Code (der funktioniert) folgendes passiert.
Und zwar erzeugt er asu dem Zahlenwert aus U377 eine zeitliche Abfolge und dann Werte die in ein Diagramm eingetragen werden. Dies passiert beim Klick auf ein Command Button. Nun die Frage wenn ich das erste mal klicke werden die einzelnen Graphen nicht benannt sondern es steht nur Reihe 1, Reihe 2, usw...
Beim zweiten Klick macht er das dann aber. Woran könnte es liegen das es beim ersten mal nicht passiert?
Hier der Code:
Sub Diagramm_erzeugen_Te()
Dim I As Long, Differenz As Double
Dim a As String
Const myRow = 377
Const myCol = 21
Const startWert = 0
a = Cells(373, 22)
Differenz = Application.InputBox(Prompt:="Bitte Zeitdifferenz in Minuten eingeben" & vbCrLf  _
_
& "Für 200 Einzelschritte ist Wert = " & a & vbCrLf & "Dieser sollte nicht unterschritten  _
werden!", _
Title:="Diagramm erzeugen", Default:=1#, Type:=1)
If Differenz = False Then Exit Sub
If Differenz > 0 Then
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Cells(myRow, myCol)
If IsNumeric(.Value) Then
If .Value > 0 And CLng(.Value) = .Value Then
Range(.Offset(1, 0), .Offset(1, 0).End(xlDown)).ClearContents
For I = 1 To CLng(.Value / Differenz)
.Offset(I, 0).Value = startWert + (I - 1) * Differenz
Next
End If
End If
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Else
MsgBox "Eingegebene Zahl muss > 0 sein"
End If
Dim myChart As Chart
Const diagName = "Temperaturverlauf_Tempsystem" ' den hier anpassen
' Formel in V379 bzw. W379 bis Ende löschen
Range(Cells(379, 22), Cells(Rows.Count, 22).End(xlUp)).ClearContents
Range(Cells(379, 23), Cells(Rows.Count, 23).End(xlUp)).ClearContents
Range(Cells(379, 24), Cells(Rows.Count, 24).End(xlUp)).ClearContents
Range(Cells(379, 25), Cells(Rows.Count, 25).End(xlUp)).ClearContents
Range(Cells(379, 26), Cells(Rows.Count, 26).End(xlUp)).ClearContents
' Formel eintragen
With Range(Cells(378, 21), Cells(Rows.Count, 21).End(xlUp))
'=EXP((-U378*60*$Z$289*$Z$292*$Z$297)/($Z$290*$Z$291*$Z$296))*($Z$286-$Z$287-((($C$23*$  _
_
C$8+$C$36)*$Z$296)/($Z$297*$Z$289*$Z$292)))+$Z$287+((($C$23*$C$8+$C$36)*$Z$296)/($Z$297*$Z$289*$ _
Z$292))
.Offset(0, 1).FormulaR1C1 = "=EXP((-RC[-1]*60*R289C26*R292C26*R297C26)/(R290C26*R291C26* _
_
R296C26))*(R286C26-R287C26-(((R23C3*R8C3+R36C3)*R296C26)/(R297C26*R289C26*R292C26)))+R287C26+((( _
R23C3*R8C3+R36C3)*R296C26)/(R297C26*R289C26*R292C26))"
'=V378-273,15
.Offset(0, 2).FormulaR1C1 = "=RC[-1]-273.15"
'=(($Z$287-V378)/$Z$296+V378)-273,15
.Offset(0, 3).FormulaR1C1 = "=((R287C26-RC[-2])/R296C26+RC[-2])-273.15"
'=($C$15)
.Offset(0, 4).FormulaR1C1 = "=(R15C3)"
'=ABS(($Z$294*$Z$295)*(X378-$Y$378)/LN((W378-$Y$378)/(W378-X378)))/1000
.Offset(0, 5).FormulaR1C1 = "=ABS((R294C26*R295C26)*(RC[-2]-R378C25)/LN((RC[-3]-R378C25) _
_
/(RC[-3]-RC[-2])))/1000"
' Testen, ob das Diagramm schon vorhanden ist
On Error Resume Next
Set myChart = Sheets(diagName)
' Wenn nicht, dann erzeugen
If Err.Number  0 Then
Set myChart = Charts.Add
With myChart
.Name = diagName
.ChartType = xlXYScatterSmooth
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Zeit [min]"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Temperatur [°C]"
.HasLegend = False
myChart.HasTitle = True
End With
End If
myChart.SetSourceData Source:=Union(.Offset(0, 0), .Offset(0, 2), .Offset(0, 3), . _
Offset(0, 4), .Offset(0, 5)), PlotBy:=xlColumn
myChart.SeriesCollection(1).Name = "=""Behältertemperatur [°C]"""
myChart.SeriesCollection(2).Name = "=""Rücklauftemperatur [°C]"""
myChart.SeriesCollection(3).Name = "=""Vorlauftemperatur [°C]"""
myChart.SeriesCollection(4).Name = "=""Leistung [kW]"""
End With
Charts("Temperaturverlauf_Tempsystem").Select
End Sub
Mfg Daniel
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Diagramm Beschriftung der Graphen
09.11.2009 14:27:22
Daniel
Weiß wirklich niemand bescheid?
AW: Diagramm Beschriftung der Graphen
09.11.2009 15:44:22
Luschi
Hallo Daniel,
zuerst mußt Du mal feststellen, wo der Fehler im 1.Durchlauf tatsächlich auftritt. Dazu muß man die
Anweisung 'On Error Resume Next' auch wieder zu deaktivieren:
On Error Resume Next
Set myChart = Sheets(diagName)
On Error Goto 0
If myChart Is Nothing Then
'neues Chart anlegen
'...
End If
myChart.SetSourceData Source:=Union(.Offset(0, 0), _
.Offset(0, 2), _
.Offset(0, 3), _
.Offset(0, 4), _
.Offset(0, 5)), PlotBy:=xlColumn
myChart.SeriesCollection(1).Name = "=""Behältertemperatur [°C]"""
myChart.SeriesCollection(2).Name = "=""Rücklauftemperatur [°C]"""
myChart.SeriesCollection(3).Name = "=""Vorlauftemperatur [°C]"""
myChart.SeriesCollection(4).Name = "=""Leistung [kW]"""
End With
Charts("Temperaturverlauf_Tempsystem").Select
Jetzt laß Dich überraschen, in welcher Zeile es knallt. Hier interressiert nicht mehr die Fehlernummer, sondern ob das Objekt 'myChart' auf ein Sheet zeigt oder Nothing ist.
Wenn dies geklärt ist, können wir uns weiter darüber unterhalten.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Diagramm Beschriftung der Graphen
09.11.2009 15:49:02
Daniel
Der Fehler kommt in der ersten Zeile der Namensvergebung:
myChart.SeriesCollection(1).Name = "=""Behältertemperatur [°C]"""
AW: Diagramm Beschriftung der Graphen
09.11.2009 15:49:48
Daniel
My chart is nothing, also es wird nix angezeigt
AW: Diagramm Beschriftung der Graphen
09.11.2009 16:00:37
Daniel
Habs gelöst :=)
Problem war das ich meine ganzen Sheets geschützt habe, und das makro nix ändern konnte, jetzt enstperr ich es davor und danach wenn es erzeugt wurde wird wieder gesperrt!
Trotzdem danke, hat mich auf die idee gebracht!
Gruß
Daniel
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige