AW: Umfärben erst im 2. Durchlauf?
14.09.2010 23:52:00
Nepumuk
Hallo,
das ganze hängt nur mit dem ausblenden der Gleichung zusammen. Ich musste jetzt auch einige Zeit rumprobieren bis es lief.
Lass in Zukunft solche Spielereien solange du VBA nicht beherrschst, das ist alles andere als produktiv.
Ich habe jetzt dafür über eine Stunde benötigt. Das würde einem Auftraggeber über 100 kosten. Würdest du 100 für ein Diagramm bezahlen?
Option Explicit
Sub diagr_var()
Dim rng As Range, rng1 As Range, lz As Integer
Dim lz1 As Integer, rng2 As Range
Dim oChart As Chart, oReihe As Series, oTrend As Trendline
Dim sText As String
'es wird das Diagramm Tagesmittelwert der letzten 150 Tage erstellt,
lz = Tabelle7.Cells(Rows.Count, 6).End(xlUp).Row
If lz > 157 Then
Set rng = Range(Tabelle7.Cells(lz - 149, 6), Tabelle7.Cells(lz, 6))
Tabelle6.ChartObjects("Diagramm7").Chart.SetSourceData Source:=rng, PlotBy:=xlColumns
Set rng1 = Range(Tabelle7.Cells(lz - 149, 1), Tabelle7.Cells(lz, 1))
Tabelle6.ChartObjects("Diagramm7").Chart.SeriesCollection(1).XValues = rng1
Tabelle6.ChartObjects("Diagramm7").Chart.ChartTitle.Text = "Mittelwert der letzten" & Chr(10) & "150 Tage"
Else
Set rng = Range(Tabelle7.Cells(9, 6), Tabelle7.Cells(lz, 6))
Tabelle6.ChartObjects("Diagramm7").Chart.SetSourceData Source:=rng, PlotBy:=xlColumns
Set rng1 = Range(Tabelle7.Cells(9, 1), Tabelle7.Cells(lz, 1))
Tabelle6.ChartObjects("Diagramm7").Chart.SeriesCollection(1).XValues = rng1
Tabelle6.ChartObjects("Diagramm7").Chart.ChartTitle.Text = "Mittelwert der letzten " & Chr(10) & lz - 8 & " Tage"
End If
Set rng = Nothing
Set rng1 = Nothing
'Trendlinie wird bei - blau, bei + gelb
Set oChart = Tabelle6.ChartObjects("Diagramm7").Chart ' für in Tabellenblatt eingebettetes Diagramm
Set oReihe = oChart.SeriesCollection(1)
Set oTrend = oReihe.Trendlines(1)
oTrend.DisplayEquation = True 'weglassen wenn Gleichung schon angezeigt wird
Tabelle6.Calculate
sText = oTrend.DataLabel.Text 'Text der Trendliniengleichung merken.
oTrend.DisplayEquation = False 'weglassen wenn Gleichung angezeigt bleiben soll
'Vorzeichen in Gleichung prüfen
If Mid$(sText, 5, 1) = "-" Then
oTrend.Border.Color = vbRed 'rot
Else
oTrend.Border.Color = vbYellow 'gelb
End If
End Sub
Gruß
Nepumuk