Makro für ausgewähltes Diagramm ausführen

Makro für ausgewähltes Diagramm ausführen

Ich möchte den Diagrammen in einer Kalkulationstabelle ein paar schnelle Optionen hinzufügen. Ich möchte ein Diagramm auswählen, ein Kontrollkästchen aktivieren/deaktivieren und der Code wird ausgeführt.

Die Codes der Kontrollkästchen lauten:

Private Sub CheckBox1_Click()

    If CheckBox1.Value = True Then
        DisplayLabels    
    Else    
        HideLabels   
    End If

End Sub

Der DisplayLabels und HideLabels Code ist

Sub DisplayLabels()

    With ActiveChart
        ActiveChart.FullSeriesCollection(1).Select
        ActiveChart.FullSeriesCollection(1).ApplyDataLabels
    End With

End Sub

Sub HideLabels()

    With ActiveChart
        ActiveSheet.ChartObjects("Basic_Chart").Activate
        ActiveChart.FullSeriesCollection(1).Select
        ActiveChart.FullSeriesCollection(1).DataLabels.Select
        Selection.ShowValue = False
    End With

End Sub

Das Problem ist, dass das Diagramm nicht mehr ausgewählt/aktiv ist, sobald ich das Kästchen ankreuze, und der Code daher nicht funktionieren kann. Gibt es eine Möglichkeit, das zu umgehen? Ich möchte, dass dieser Code auf mehreren Blättern wiederverwendbar ist, sodass ich nicht direkt auf ein Diagramm verweisen kann.

Antwort1

Vergessen Sie das Kontrollkästchen, lassen Sie das Makro bestimmen, ob Beschriftungen vorhanden sind oder nicht. Im Folgenden wird geprüft, ob ein Diagramm ausgewählt ist, und wenn ja, werden die Beschriftungen umgeschaltet:

If ActiveChart Is Nothing Then
    MsgBox "You must select a chart"
    Exit Sub
End If
For Each mySeries In ActiveChart.SeriesCollection
    On Error Resume Next
    mySeries.DataLabels.Select
    If (Err.Number = 0) Then
        mySeries.DataLabels.Delete
    Else
        mySeries.ApplyDataLabels
    End If
    On Error GoTo 0
Next mySeries

verwandte Informationen