PDA

Vollständige Version anzeigen : Diagramm Punkte beschriften


Gast
04.09.2003, 06:41
Habe folgendes Problem:

Habe in der Spalte A die Bezeichnung der Daten und in Spalte B und C die Daten stehen. Ich benötige ein Punkt (X/Y) Diagramm. Leider ist es in Excel nur möglich die Werte von Spalte B oder C neben den Punkt schreiben zu lassen. Habe schon probiert in anderen Diagrammtypen ist es möglich auch noch eine dritte Spalte für die Bezeichnung hinzuzufügen, leider jedoch nicht beim Punktdiagramm.
Kennt jemand von Euch eine Möglichkeit um dieses Problem zu lösen.

Danke Euch bereits im Vorraus

chris.

Woody
04.09.2003, 08:44
Hallo unbekannter Gast,

ich hätte einen möglichen manuellen Lösungsweg, der aber je nach Größe deiner Daten sehr umständlich werden könnte.

Du könntest Textfelder benutzen, die du über das Diagramm legst. Damit du nicht zuviel schreiben musst, wechsle nach Auswahl des Feldes in die Bearbeitungsleiste und markiere die betreffende Zelle mit der Bezeichnung.

Wie gesagt, es ist keine elegante Lösung, aber bis zu einer überschaubaren Anzahl ist das noch gut einsetzbar.

chrisr103
04.09.2003, 10:56
Hi Woody!

Danke mal für Deinen Forschlag, der hilft mir aber leider auch nicht weiter, da sich die Daten immer ändern und ich nicht jedesmal die Punkte im Diagramm händisch beschriften möchte (kann).

chris.

jinx
04.09.2003, 17:06
<font size="2" face="Century Gothic">Moin, Chris,

es ist per VBA schon möglich, Daten auch aus anderen Zellen oder freienn Texten einfügen zu lassen:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Sub</span> DatenbeschriftungHinzuf&uuml;gen()
<span class="REM">' Bernd Held, Excel-VBA-Programmierung, S. 314f</span>
<span class="REM">' Bitte Anpassungen vornehmen: Zellenbereich, Name</span>
<span class="TOKEN">Dim</span> i <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
&nbsp;
i = InputBox(&quot;Welcher Punkt soll kommentiert werden?&quot;, _
&quot;Kommentierung des Diagramms&quot;)
<span class="TOKEN">If</span> i = 0 <span class="TOKEN">Then</span> <span class="TOKEN">Exit Sub</span>
Sheets(&quot;Punktediagramm&quot;).ChartObjects(1).Select
ActiveChart.SeriesCollection(1) _
.Points(i).ApplyDataLabels _
Type:=xlDataLabelsShowLabel, AutoText:=True
ActiveChart.SeriesCollection(1).Points(i).DataLabel.Text _
= InputBox(&quot;Bitte <span class="TOKEN">Text</span> der Kommentierung eingeben&quot;)
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)</font>

Herzog
05.09.2003, 08:49
hi Chris,

probier es mal damit:

Sub AttachLabelsToPoints()

'Dimension variables.
Dim Counter As Integer, ChartName As String, xVals As String

' Disable screen updating while the subroutine is run.
Application.ScreenUpdating = False

'Store the formula for the first series in "xVals".
xVals = ActiveChart.SeriesCollection(1).Formula

'Extract the range for the data from xVals.
xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
Do While Left(xVals, 1) = ","
xVals = Mid(xVals, 2)
Loop

'Attach a label to each data point in the chart.
For Counter = 1 To Range(xVals).Cells.Count
ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
True
ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
Next Counter

End Sub

siehe dazu auch:
http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=100562

dort kannst du es gerne mit der Beispieldatei ausprobieren

Gruß

André