# Werte in Excel-Diagramme dynamisch anzeigen



## Fizzelfritz (3. April 2006)

hallo, 

ich brauche etwas hilfe von den excel-cracks. 

und zwar möchte ich in einem excel-diagramm bestimmt werte, z.b. hoch-&tiefpunkte anzeigen, die sich aber je nach änderungen in der dazugehörigen tabelle auch im diagramm ändern. hab das nicht hinbekommen. ist ja einfach nur das bestimmte feld der tabelle irgendwie anzuzeigen.
bisher hab ich als ausweg nur in der diagrammquelle eine weiter kurve mit keinen werten angegeben und als name auf den hochpunkt verwiesen - wird dann in der legende angezeigt. das gefällt mir aber net und ist auch zeimlich umständlich, da ich den wert erst mit VERKETTEN in einen string umwandeln musste um noch eine zuweisung zu erhalten (z.B. HP= 100) habt ihr eine ahnung, wie man das besser lösen kann?

vielen dank im voraus

gruß dani


----------



## WaGutSo (4. April 2006)

Hallo Dani,

Du kannst jeden einzelnen Datenpunkt im Diagramm formatieren, das heißt mit seinem Wert versehen!

Vorgehensweise:
Klicke auf die Datenreihe, die den speziellen Datenpunkt enthält.
Klicke auf den Datenpunkt. Danach darf nur noch der Datenpunkt markiert sein!
Klicke mit der rechten Maustaste auf den markierten Datenpunkt.
Öffne „Datenpunkt formatieren…“
Jetzt kannst Du im Tab „Datenbeschriftung“ „Wert anzeigen“ aktivieren.

Das Markieren eines einzelnen Datenpunktes erfordert vielleicht etwas Geduld.

Viel Erfolg
Walter Gutermann


----------



## Fizzelfritz (5. April 2006)

super. danke für den tipp, hat geklappt nur ich hätt da noch zwei 

1. bei mir zeigt es nicht den "richtigen" punkt an. soll heißen ich kann zwar in die nähe klicken undmit den link-rechts-tasten auf der kurve rumwandern und mir den gewünschten wert raussuchen, nur der kommt leider net. habs schonmit ALT und dann verschieben versucht, geht aber net. ich sollt schon den hochpunkt/maximun haben (liegt bei 36785 und in der kurve kan nich entweder 36782 oder 36777 anklicken. dazwischen gibts nix...) noch ne idee, was dass sein kann oder wie ichs solen kann?

2. wenn ich gewisse werte ändere, verändert sich die kurve (manchmal sehr drastisch). ist dann der beschriftete punkt automatisch der hochpunkt der neuen kurve oder ist der neue punkt abhängig von der x-achse. (hier liegen winkel und auf der y-achse kräfte - brauche das maximum und das ist verändert sich bei versch. winkeln)

danke schon mal im voraus.
gruß dani


----------



## WaGutSo (6. April 2006)

Hallo Dani,

zu 1. 
Wenn ich Dich richtig verstehe, hast Du da etwas was mir unbekannt ist (Wert [36782 ] in einer Kurve zu dem es keinen Wert in der Tabelle und somit auch keinen Datenpunkt gibt?).

zu 2. 
Der beschriftete Punkt ist nicht automatisch der neue „Hochpunkt“. Um den neuen „Hochpunkt“ zu beschriften würde ich ein Makro schreiben (Maximum ermitteln, alte Beschriftung löschen, neue Beschriftung setzen). Das funktioniert aber nur mit tatsächlich vorhandenen Datenpunkten.

Vielleicht kannst Du Deine Mappe ins Forum stellen?

Walter Gutermann


----------



## Fizzelfritz (6. April 2006)

ich habs so gemeint:

ich habe einen wert (36782), der ist der maximalwert auf der y-achse und den dazugehörigen winkel auf der x-achse. diese werte gibt es in der tabelle, sind also net irgendwie auf die kurve gekommen sondern richtig berechnet. ich habe nun wie dun vorgeschlagen hast auf die kurve geklickt, hab aber den punkt net genau erwischt. jetzt kann man ja mit den pfeiltaste (<-- & -->) auf der kurve wandern und somit den gewünschten punkt anwählen. wenn ich dies aber mache findet excel den maximalwert net, nur die 2 punkte davor und dahinter... das wars was ich mit 1. gemeint hab.

die exceltabelle reinstellen ist schlecht denn sie hat an die 7MB und alles hängt irgendwie zusammen, also nur ein blatt reinstellen geht da net (zur ansicht schon nur, net zum verändern und so)

dann muss ichs halt mit nem makro versuchen, aber ob sich der aufwand lohnt muss ich noch abwägen - ist alles nur optional und somit die kirsche auf der sahnehaube des excelfiles 

hast mir für das makro ein tipp, bei nämlich net so der überflieger in VB (wenn ich erlich eigentlich noch   )

gruß dani


----------



## WaGutSo (6. April 2006)

Hallo Dani,

das mit dem Wert und keinen dazugehörigen Datenpunkt verstehe ich leider nicht.

Ein Makro könnte zum Beispiel so aussehen:


```
Sub MaxFinden()
   Dim rngReihe As Range, rngZelle As Range
   Dim iZeile As Integer, iMaxZeile As Integer
   Dim dblMaxWert As Double
   Dim sNameTab As String    ' Name der Tabelle
   sNameTab = "Tabelle1"
   Dim iCol As Integer       ' Spalte mit der Datenreihe
   iCol = 1
   Dim iRow_Von As Integer, iRow_Bis As Integer  ' Zeilen von/bis in denen die Werte stehen
   iRow_Von = 1              ' <-- hier Zeile in der der erste Wert steht
   iRow_Bis = 6              ' <-- hier Zeile in der der letzte Wert steht
   Dim sNameDiagr As String  ' Name des Diagramm
   sNameDiagr = "Diagramm 1"
   Dim iDatReihe As Integer  ' Nummer der Datenreihe im Diagramm
   iDatReihe = 1
   ' ** sicherstellen, daß nichts im Diagramm selektiert ist
   Worksheets("Tabelle1").Cells(1, 1).Select
   
   ' ** Bereich mit den Werten setzen und maximum ermitteln
   Set rngReihe = Worksheets(sNameTab).Range(Cells(iRow_Von, iCol), Cells(iRow_Bis, iCol))
   iZeile = iRow_Von
   dblMaxWert = 0  ' <-- Initiierung kleiner als der kleinstmögliche Wert
   For Each rngZelle In rngReihe.Cells
     'Debug.Print rngZelle.Value & " in Zeile: " & iZeile              ' <-- zum Testen
     If rngZelle.Value > dblMaxWert Then
       dblMaxWert = rngZelle.Value
       iMaxZeile = iZeile
     End If
     iZeile = iZeile + 1
   Next
 '  Debug.Print "Maximum: " & dblMaxWert & " in Zeile: " & iMaxZeile   ' <-- zum Testen
   
   ' ** Diagramm aktivieren
   ActiveSheet.ChartObjects(sNameDiagr).Activate
   
   ' ** Alle Datenbeschriftungen in der Datenreihe löschen
   ActiveChart.SeriesCollection(iDatReihe).Select
   ActiveChart.SeriesCollection(iDatReihe).ApplyDataLabels Type:=xlDataLabelsShowNone
   
   ' ** Datenbeschriftung für dem Max-Wert aktivieren
   ActiveChart.SeriesCollection(iDatReihe).Points(iMaxZeile).ApplyDataLabels Type:=xlDataLabelsShowValue
 End Sub
```
 Ich habe das Makro bewusst ausführlich geschrieben.

Viel Erfolg
Walter Gutermann


----------

