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