Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1112to1116
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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige