ich habe immer noch folgendes Problem:
(Problem und angehängte Datei stelle ich vereinfacht dar)
Auf einem Diagramm-Blatt habe ich 3 Diagramme.
1 X,Y-Punktdiagramm und 2 Kreisdiagramme.
In den Kreisdiagrammen lassen ich mir die Datenbeschriftung in Prozent anzeigen.
In jedem Kreisdiagramm gibt es 7 Stücke die 7 Zahlen aus Tabellen grafisch darstellen. Die Summe der Zahlen aus den Tabellen ist immer 100.
Wenn Zahlen unter z.B. 3% angezeigt werden, sind diese nicht mehr zu lesen.
Ich habe 2 Makros ausprobiert, die genau die Datenbeschriftungen ausblenden sollen, die unter 3% anzeigen.
Die Makros werden über das Kombinationsfeld "Hauptdaten" gestartet.
Beispiel-Datei:
https://www.herber.de/bbs/user/38814.xls
Das erste Makro läuft zwar durch, bewirkt aber nichts:
1.
Private Sub Datenbeschriftung_Kreisdiagramm_Klasse()
Dim Werte
Werte = Sheets("Auswertung").Range("H77:H83").Value
For index = 1 To AnzahlWerte
ActiveChart.SeriesCollection(1).DataLabels.Select
With Charts("Diagramm 67").SeriesCollection(1).Points(index)
Select Case Werte(index, 1)
Case Is < 3
.DataLabel.Visible = False
Case Is > 3
.DataLabel.Visible = True
End Select
End With
Next index
End Sub
Private Sub Datenbeschriftung_Kreisdiagramm_Durchmesser()
Dim Werte
Werte = Sheets("Auswertung").Range("H5:H11").Value
For index = 1 To AnzahlWerte
ActiveChart.SeriesCollection(1).DataLabels.Select
With Charts("Diagramm 23").SeriesCollection(1).Points(index)
Select Case Werte(index, 1)
Case Is < 3
.DataLabel.Visible = False
Case Is > 3
.DataLabel.Visible = True
End Select
End With
Next index
End Sub
Das zweite Makro lässt Excel Korrekturmeldungen anzeigen oder stürzt ab:
2.
Sub Datenbeschriftung_Kreisdiagramm_Klasse()
Dim Werte As Range, Index As Integer
Set Werte = Sheets("Auswertung").Range("H77:H83")
For Index = 1 To Werte.Cells.Count
ActiveChart.SeriesCollection(1).DataLabels.Select
With Charts("Diagramm 67").SeriesCollection(1).Points(Index)
Select Case Werte.Cells(Index)
Case Is .DataLabel.Visible = False
Case Is > 3
.DataLabel.Visible = True
End Select
End With
Next Index
End Sub
Sub Datenbeschriftung_Kreisdiagramm_Durchmesser()
Dim Werte As Range, Index As Integer
Set Werte = Sheets("Auswertung").Range("H5:H11")
For Index = 1 To Werte.Cells.Count
ActiveChart.SeriesCollection(1).DataLabels.Select
With Charts("Diagramm 23").SeriesCollection(1).Points(Index)
Select Case Werte.Cells(Index)
Case Is .DataLabel.Visible = False
Case Is > 3
.DataLabel.Visible = True
End Select
End With
Next Index
End Sub
Bitte helft mir!
Grüße aus Berlin