AW: 20 Diagramme und 1 Datenpunkt
03.12.2015 22:03:10
Matthias
Hallo Chris,
ich habe das Datum hier per Input-Box eingeben lassen. Man kann das auch über Eigabe in eine Zelle machen lassen, falls das gewünscht ist. Dazu kommt dass ohne Beispieldatei der Code nur an meinen Diagrammen getestet ist.
Gleich vornweg, ich arbeite mit Excel 2007. Ich weis auch dass unter Excel 2013 der Befehl _
nicht 'SeriesCollection' sondern 'FullSeriesCollection' heist, aber ob das bei Excel 2010 schon gilt musst du einfach ausprobieren. Sollte das Makro also bei dir an der Zeile 'fXValues = Split(.SeriesCollection(1).Formula, ",")' abbrechen, musst du das einfach ersetzen, am besten mit Suchen und Ersetzen arbeiten, denn es kommt mehrfach vor.
Sub DenkDirEinenNamenAus()
Dim wks As Worksheet
Dim Shape As Shape, oSeries As Series, fXValues
Dim lDate As Long, x As Long
Set wks = Sheets("Tabelle1")
On Error Resume Next
' Eingaben sind in jedem für Excel verständlichen Formaten eingebbar, z.B.:
' 15.11.2015
' 15-11-15
' 15/11/15
' 42019
' Es gilt immer das lokal eingestellte Format, i.d.R. deutsches Format -> TT/MM/JJ(JJ)
lDate = CDate(InputBox("Bitte hervorzuhebendes Datum eingeben:"))
On Error GoTo 0
For Each Shape In wks.Shapes
If Shape.Name Like "Diagramm*" Then
With wks.ChartObjects(Shape.Name).chart
fXValues = Split(.SeriesCollection(1).Formula, ",")
fXValues = Split(fXValues(1), "!")
On Error Resume Next 'Datum nicht vorhanden/fehlerhaft wird nur zurückgesetzt
x = WorksheetFunction.Match(lDate, Sheets(fXValues(0)).Range(fXValues(1)), 0)
If Err.Number 0 Then
x = 0
Err.Clear
End If
On Error GoTo 0
For Each oSeries In .SeriesCollection
oSeries.MarkerStyle = -4142 'Standard
If x > 0 Then oSeries.Points(x).MarkerStyle = -4105 'neuer Marker
Next oSeries
End With
End If
Next Shape
End Sub
Alle Hervorhebungen werden entfernt wenn ein ungültiges Datum eingegeben wird, dh. im Klartext: Abbrechen, leere Inputbox, Null, Eingaben die nicht als Datum interpretiert werden können oder Daten welche nicht in den X-Werten deines Diagramms vorkommen.
Falls dir der Marker nicht zusagt, wähle händig eine andere Markierungsoption für den Datenpunkt und lass den Recorder dabei mitlaufen. Ersetze dann "-4105" durch die Zahl welche dir ausgespuckt wurde.
lg Matthias