Microsoft Excel

Herbers Excel/VBA-Archiv

Einzelne Linien in Diagramm über Makro hervorheben


Betrifft: Einzelne Linien in Diagramm über Makro hervorheben
von: Steph
Geschrieben am: 10.02.2019 20:33:34

Hallo,

ich habe ein Liniendiagramm mit mehreren Datenreihen, die ich gerne zur Analyse einzeln mit Hilfe eines Makros durchklicken möchte. Dabei sollte das Makro mit einer kurzen Abfrage bei Datensatz 1 starten, dabei diesen fett hervorheben und bei OK zum nächsten Datensatz springen, wobei nun dieser hervorgehoben werden soll. Dazu habe ich folgenden Code:

Sub ShowDatasets()
    

Dim ToDelete(255) As Boolean
For i = 1 To 255
    ToDelete(i) = False
Next i
    For i = 1 To ActiveChart.SeriesCollection.Count
        ActiveChart.SeriesCollection(i).Border.ColorIndex = 5
        ActiveChart.SeriesCollection(i).Border.Weight = xlThick
        
        Data = MsgBox("Intensity of spot" + Str(i) + "?", vbOK)
        
        ActiveChart.SeriesCollection(i).Border.Weight = xlHairline
        ActiveChart.SeriesCollection(i).Border.ColorIndex = 15
    Next i
    

End Sub

In einer früheren Excelversion (ich denke, das war 2003) hat das recht gut geklappt, leider funktioniert ich in meiner jetzigen Version das Hervorheben nicht mehr. Wenn ich das Makro jedoch abbreche, ist interessanterweise der letzte abgefragte Datensatz doch hervorgehoben.

Gibt es dazu eine Lösung oder eine bessere Alternative?

Vielen Dank!

  

Betrifft: AW: Einzelne Linien in Diagramm über Makro hervorheben
von: Beverly
Geschrieben am: 11.02.2019 09:35:29

Hi Steph,

folgender Code hat bei mir (Excel2016) geholfen:

Sub ShowDatasets()
    Dim Data
    Dim i As Integer
    Dim chrDia As Chart
    Set chrDia = ActiveSheet.ChartObjects(1).Chart
    For i = 1 To chrDia.SeriesCollection.Count
        chrDia.SeriesCollection(i).Border.Weight = xlThick
        chrDia.SeriesCollection(i).Border.Color = 16711680
        
        Application.Wait Now + TimeValue("00:00:01")
        DoEvents
        DoEvents
        
        Data = MsgBox("Intensity of spot" + Str(i) + "?", vbOK)
        chrDia.SeriesCollection(i).Border.Color = 12632256
        chrDia.SeriesCollection(i).Border.Weight = xlHairline
    Next i
End Sub

Diagramm-Nr. musst du eventuell anpassen.


GrußformelBeverly's Excel - Inn