Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro Datenbeschriftung im Kreisdiagramm

Makro Datenbeschriftung im Kreisdiagramm
01.12.2006 13:16:35
Peter
Hallo alle zusammen,
ich habe folgendes Problem:
Ich habe Kreisdiagramme die Daten unterteilt in 7 Wertebereiche darstellen.
Jedes Kreisdiagramm ist somit in 7 unterschiedlich große Stücke aufgeteilt.
Ich lasse mir die Datenbeschriftung ( prozentualer Anteil, z.B. 15%) anzeigen.
Leider kann man die Datenbeschriftung nicht mehr lesen, wenn das jeweilige Stück zu klein wird, so ab 3%.
Dieses Problem möchte ich lösen in dem ich sage, daß die Datenbeschriftung die den Wert 3% unterschreitet nicht angezeigt wird.
Nun zum Beispiel:
mein Diagramm heißt: "Diagramm 67"
die Datenquelle ist: "Auswertung!$D$77:$D$83" (die Zahlen sind keine Prozentangaben sondern absolute Zahlen)
ich habe versucht mit folgendem Code zu arbeiten, funktioniert aber nicht:

Private Sub Datenbeschriftung_Kreisdiagramm()
Dim Werte
arrWerte = Sheets("Auswertung").Range("D77:D83).Value
For index = 1 To AnzahlWerte
With ChartObjects("Diagramm 67").SeriesCollection(1).Points(Index)
Select Case arrWerte(index, 1)
Case < 3 %
.DataLabel.Visible = False
Case > 3 %
.DataLabel.Visible = True
End Select
End With
Next index
End Sub

Danke im Voraus für eure Hilfe
Grüße aus Berlin
Peter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Makro etwas verändert, funktioniert noch nicht
01.12.2006 13:38:34
Peter
Hallo nochmal,
Das Makro läuft jetzt, macht jedoch nicht das was es soll, es macht eigentlich garnichts, schon garnicht das was ich in meinem ersten Eintrag beschrieben habe!?
Ich komme leider nicht auf den Fehler.
Bitte helft mir!

Private Sub Datenbeschriftung_Kreisdiagramm_Klasse()
Dim Werte
Werte = Sheets("Auswertung").Range("D77:D83").Value
For index = 1 To AnzahlWerte
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

Grüße aus Berlin
Peter
Anzeige
AW: Makro etwas verändert, funktioniert noch nicht
03.12.2006 16:04:10
Carsten
Hallo Peter,
soweit ich weiß, muss bei Diagrammen immer ein Select für den zu ändernden Bereich angegeben werden.
Funktioniert das so?
Gruß, Carsten.

Private Sub Datenbeschriftung_Kreisdiagramm_Klasse()
Dim Werte
Werte = Sheets("Auswertung").Range("D77:D83").Value
For index = 1 To AnzahlWerte
ActiveChart.SeriesCollection(1).DataLabels.Select 'Carsten
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

Anzeige
AW: funktioniert noch nicht
04.12.2006 12:43:41
Peter
Hallo Carsten,
ich habe deinen Voschlag eingebaut, es funktioniert aber nicht.
Ich habe vergessen zu erwähnen, daß ich mehrere Diagramme habe dessen Wertebereiche sich je nach Datenaktualisierung verändern und demzufolge auch besagtes Anzeigeproblem haben.
Vieleicht haben wir noch etwas übersehen?

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

Der Wertebereich für Klasse sieht wie folgt aus:
......H
77 1
78 40
79 30
80 10
81 4
82 0
83 14
Demzufolge müßte im Kreisdiagramm für die Teilstücke von H77, H81 und H82 keine Datenbeschriftung erscheinen, es wird weiterhin alles angezeigt!
Was könnte noch nicht richtig sein?
Grüße aus Berlin
Peter
Anzeige
AW: funktioniert noch nicht
05.12.2006 17:05:49
Reinhard
Hi Peter,
Option Explicit
Sub tt()
Dim Werte As Range, Index As Integer
Set Werte = Sheets(1).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 < 3
.DataLabel.Visible = False
Case Is > 3
.DataLabel.Visible = True
End Select
End With
Next Index
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: funktioniert immer noch nicht
05.12.2006 18:25:10
Peter
Hallo,
wenn ich den Code einfüge (Namen usw. aktualisiert) und einen zweiten für das nächste Diagramm einfüge und dann die ganze Sache ausprobieren möchte stürzt Excel jetzt ab.
Vielleicht habe ich noch nicht genug zur funktionsweise des ganzen erzählt.
Über eine Schaltfläche wird ein Makro gestartet.
Wenn bestimmte Bedingungen erfüllt sind wird ein weiteres Makro gestartet, dass unter anderem unser Problem-Makro enthält.
Auf dem Bildschirm habe ich außerdem ein Punktdiagramm das auch durch die oben genannte (die selbe) Schaltfläche gesteuert wird.
Ich vermute, dass irgendetwas mit dem Befehl "ActiveChart." nicht stimmt, der wird an anderer Stelle auch verwendet:
ActiveChart.SeriesCollection(1).DataLabels.Select
With Charts("Diagramm 67").SeriesCollection(1).Points(Index)
und mit
ActiveChart.SeriesCollection(1).DataLabels.Select
With Charts("Diagramm 23").SeriesCollection(1).Points(Index)
nicht korrekt ist.
Ich würde auch die ganze Datei per Email mal zuschicken (ca. 25 MB)
Was bedeutet überhaupt das "Option Explicit" über dem

Sub ?
Hier nochmal mein angepasster Code der nicht funktioniert.
Vielleicht ist da ja was falsch!

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 < 3
.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 < 3
.DataLabel.Visible = False
Case Is > 3
.DataLabel.Visible = True
End Select
End With
Next Index
End Sub

Ich brauche die Sache unbedingt, bitte helft mir weiter.
Grüße aus Berlin
Peter
Anzeige
AW: funktioniert immer noch nicht
05.12.2006 18:48:05
Reinhard
Hi Peter,
bastle mal ne kleine Datei mit 2 Kreisdiagrammen und deinen Codes samt paar Wertereihen und lade die hier hoch.
Gruß
Reinhard
kleine Beispiel-Datei
05.12.2006 19:51:38
Peter
Hallo,
an bei findet ihr ein kleine Datei mit den entsprechenden Codes.
https://www.herber.de/bbs/user/38758.xls
Was vielleicht sehr wichtig ist, die Kreisdiagramme liegen als Objekte auf einem Diagramm-Blatt (x,y-Punkt-Diagramm).
Vielleicht ist das ja das Problem.
Ich möchte und kann das nicht ändern, d.h. eine Lösung muss so gefunden werden!
Grüße aus Berlin
Peter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige