Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
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
Inhaltsverzeichnis

Punktdiagramm mit MouseOver o.ä.

Punktdiagramm mit MouseOver o.ä.
lorenz1980
Hi miteinander,
folgende Tabelle liege z.B. vor (Werte erdacht):
HERSTELLER - MODELL - PS - VERBRAUCH - MAX_SPEED
Audi - A5 - 170 - 6.8 - 240
Fiat - Punto - 100 - 4.8 - 160
Jaguar - xf - 275 - 7.0 - 320
Nun plotte ich ein Punktdiagramm (z.B. MAX_SPEED über PS). Gehe ich im Punktdiagramm auf einen eingezeichneten Punkt wird irgendein Schmarn angezeigt, der niemanden interessiert...
Wie bekomme ich es mit Excel-eigenen Mitteln hin, dass ich auf einen Punkt gehe und es werden mir Hersteller und Modell angezeigt!?
Sozusagen: es wurde ein Punkt eingezeichnet mit den Werten aus den Zellen C2 und E2. Wenn ich den Punkt anklicke oder darüberfahre, sollen die Daten aus A2 und B2 in einer Textbox oder einem Popup-Fenster angezeigt werden...
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 10:43:29
Beverly
Hi Lorenz,
der einfachste Weg: zeige die Beschriftungslabel an und verknüpfe sie mit den Zellen, in denen deine Anzeigewerte stehen. Da es 2 Anzeigewerte sind, muss du sie in einer Hilfsspalte vorher noch zusammenfügen.


AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 11:15:34
lorenz1980
Hi Karin,
vorerst einmal Danke für deine Antwort(en) ;-)
Trotzdem noch zwei, drei Fragen :-(
(a) Mit einem BEschriftungslabel meinst du die Texbox, die im Normalfall den x- oder y-Wert anzeigt?
(b) Wie erstelle ich in einer solchen eine Verknüpfung (=A1) geht ja hier nicht :-/
(c) Muss ich das dann für JEDEN Datenpunkt neu machen oder gilt das dann für alle (die eigtl Tabelle ist deutlich größer als obiges Beispiel)?
Danke dir!
Anzeige
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 11:26:46
lorenz1980
Ok, Kommando so halb zurück ;-)
Habe nun bei EINEM Datenpunkt die Verknüpfung erstellt (und vorher zwei Zellen in einer Hilfszelle verkettet).
Bleibt die Frage, ob ich das nun für jeden Punkt einzeln machen muss :-/
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 11:40:27
Beverly
Hi Lorenz,
ja, das ist für jeden Datenpunkt notwendig. Man kann das allerdings mit VBA lösen:
Sub DiagrammBeschriften()
Dim loPunkt As Long
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
.ApplyDataLabels
For loPunkt = 1 To .Points.Count
.Points(loPunkt).DataLabel.Text = Cells(loPunkt + 2, 4) ' + 2 hängt davon ab, ab  _
welcher Zeile deine Daten für die Anzeige stehen (in meinem Testbeispiel ist es Zeile 3).
Next loPunkt
End With
End Sub



Anzeige
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 11:48:17
lorenz1980
Hm, da ich von VBA-Programmierung wenig bis garkeine Ahnung habe...
Ich wähle also die Datenpunkte, erstelle ein Punktdiagramm (neues Datenblatt) - muss ich die Datenbeschriftung nun noch einfügen oder ist das durch das Skript obsolet?
Ich öffne den VBA-Editor, doppelklicke das eben erstelle Diagramm und erhalte die VBA-Entwicklungsumgebung... Und nun füge ich einfach nur dein Skript ein..?
Wenn ich das dann auführe (F5) kommt für Zeile 3 (With ActiveSheet. ...) ein Fehler :-(
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 12:27:12
lorenz1980
Frage ist natürlich noch offen - weiß nicht, ob das hier so wichtig ist, aber ich setz den Haken lieber nochmal :-(
Kann auch mein File uploaden, wenn das hilft..?! Als 2007 oder 2003 wäre dann die Frage...
Anzeige
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 12:48:55
Beverly
Hi Lorenz,
da du ein Diagrammblatt und kein in das Tabellenblatt eingebettetes Diagrammobjekt verwendest (ging aus deinem ersten Beitrag nicht hervor), muss der Code sowie so etwas anders aussehen. Es wäre jedoch günstiger, wenn du die Mappe hochlädst, dann kann ich den Code auch besser an deine Bedingungen anpassen. Mir persönlich ist es zwar egal ob Excel2003 oder 2007, aber in Anbetracht dessen, dass vielleicht andere User ebenfalls mit deiner Datei experimentieren wollen, ist logischer Weise 2003 zu bevorzugen.


Anzeige
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 13:27:04
Beverly
Hi Lorenz,
schreibe den Code in ein allgemeines Modul.
Sub DiagrammBeschriften()
Dim loPunkt As Long
With Charts("Diagramm1").SeriesCollection(1)
.ApplyDataLabels
For loPunkt = 1 To .Points.Count
.Points(loPunkt).DataLabel.Text = Worksheets("Tabelle1").Cells(loPunkt + 1, 6)
Next loPunkt
End With
End Sub



Anzeige
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 13:41:34
lorenz1980
Das sieht ja schon mal ganz gut aus :-)
Kann ich das nun auch noch so anpassen, dass, wenn ich einen Datensatz ändere, das Skript nicht neu ausführen muss...?
Hab eben mal eine Automarke, im Diagramm änderte das leider nichts. Musste erst wieder in den Editor und das Skript ausführen :-(
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 14:07:31
Beverly
Hi Lorenz,
ändere diese Cdoezeile:
            .Points(loPunkt).DataLabel.Text = "=Tabelle1!R" & loPunkt + 1 & "C6"

Damit wird das Beschriftungslabel mit der Zelle verknüpft und alle Änderungen werden direkt angezeigt.


Anzeige
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 13:54:11
lorenz1980
:-(
Wenn zwei Werte nahe beieinander oder sogar identisch sind, so steht der eine Text direkt über dem anderen - sehr unschön...
Gibt es dann evtl doch eine andere Möglichkeit, sprich: EINE Textbox neben dem Diagramm, wo die Daten angezeigt werden (und eben auch, wenn mehrere Werte identisch sind) ODER doch über einen MouseOver-Effekt...?
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 14:32:04
Beverly
Hi Lorenz,
dann würde ich dir eher das Click- als das MouseMove-Ereignis empfehlen, weil andernfalls das Diagramm ständig am "Flackern" ist. Dazu diesen Code im Codemodul des Diagrammblattes:
Private Sub Chart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y  _
As Long)
Dim ElementID As Long, Arg1 As Long, Arg2 As Long, inPunkt As Integer
ActiveChart.GetChartElement x, y, ElementID, Arg1, Arg2
If ElementID = 3 Then
With ActiveChart.SeriesCollection(1)
.DataLabels.Delete
.Points(Arg2).ApplyDataLabels
.Points(Arg2).DataLabel.Text = Worksheets("Tabelle1").Cells(Arg2 + 1, 6)
End With
End If
End Sub



Anzeige
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 15:02:50
lorenz1980
Das funktioniert schon mal :-) Danke hierfür!
Lässt sich das Problem noch beheben, wenn zwei Datenpunkte aufeinander liegen? Aktuell sehe ich immer nur die Daten des "obersten" Datenpunktes, siehe: https://www.herber.de/bbs/user/64657.xls
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 16:13:25
lorenz1980
Oh oh, bin ich nun auf Grenzen gestossen..?
In C++, Java etc gibts ja die Möglichkeit, Texte anzuhängen; Problem hier ist wohl, dass auch die Datenpunkte AUFEINANDER geplottet werden, so dass man an den/ die unteren nicht mehr rankommt..?
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 17:01:20
Beverly
Hi Lorenz,
wahrscheinlich ist es dir noch nicht aufgefallen, aber eigentlich ist es so, dass ein Beitrag mit einer Anrede beginnt und mit einem Gruß endet. Ein ganz klein wenig Zeit für ein wenig Höflichkeit sollte schon übrig sein.
Nein, an die Grenzen bist du nicht gestoßen, aber man hat auch noch ein wenig mehr zu tun als sich nur mit dem Problem eines einzigen Users zu beschäftigen. Es ist richtig, dass immer nur der oberste angeklickt werden kann, aber man hat ja die Datenreihenformel, wo man vergleichen kann ob der Wert noch für einen andren Datenpunkt zutrifft.


Anzeige
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 17:07:53
lorenz1980
Guten Abend, Karin.
Selbstverständlich ist mir bewusst, dass Anreden exisitieren und deren Verwendung auch den Formen der Höflichkeit entsprechen. Da ich jedoch nicht zwangsläufig einen Dialog führen möchte, sondern gerne auch anderen die Möglichkeit geben möchte, halte ich Anfragen lieber allgemein.
In Zukunft werde ich mich jedoch gerne bemühen, meine Fragen mit Hallo und Tschüß zu umschmücken.
Natürlich freut es mich, zu lesen, dass ich nicht an die Grenzen von Excel gestossen bin (vor allem, weil es in einem anderen Forum, wo ich schon vor etlichen Wochen anfragte, immer hieß "Geht nur mit nem Add-In" oder "Geht nicht"). In der Hoffnung, dass du oder auch jemand anders Zeit findet, sich dem aktuellen Problem anzunehmen, verbleibe ich mit herzlichem Dank.
Lorenz
Anzeige
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 17:36:26
Beverly
Hi Lorenz,
wenn jemand antwortet und du gehst in deinem Beitrag auf diese Antwort ein, ergibt sich zwangsläufig ein Dialog. Das heißt jedoch nicht, dass sich nicht auch andere an der Lösung deines Problems beteiligen dürfen.
Private Sub Chart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y  _
As Long)
Dim ElementID As Long, Arg1 As Long, Arg2 As Long, inPunkt As Integer, arrXWerte(),  _
arrYWerte()
ActiveChart.GetChartElement x, y, ElementID, Arg1, Arg2
If ElementID = 3 Then
With ActiveChart.SeriesCollection(1)
.DataLabels.Delete
.Points(Arg2).ApplyDataLabels
.Points(Arg2).DataLabel.Text = " "
arrYWerte() = .Values
arrXWerte() = .XValues
For inPunkt = 1 To .Points.Count
If Worksheets("Tabelle1").Cells(inPunkt + 1, 3) = arrXWerte(Arg2) And _
Worksheets("Tabelle1").Cells(inPunkt + 1, 5) = arrYWerte(Arg2) Then
.Points(Arg2).DataLabel.Text = .Points(Arg2).DataLabel.Text & " " &  _
Worksheets("Tabelle1").Cells(inPunkt + 1, 6)
End If
Next inPunkt
End With
End If
End Sub



AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 17:48:45
lorenz1980
Hallo Karin,
dann möchte ich mich bisher noch einmal herzlichst bedanken. Da ich bisher auf Arbeit war und meine komplette Datenreihe hier nicht vorliegen habe, werde ich das das Skript zuhause einmal testen - im Minimalbeispiel sieht es aber schon recht gut aus :-)
Habe nur den Blank zwischen den untersch. Datensätzen durch ein vbnewline getauscht - leider ist der Zeilenabstand hier extrem groß!
Danke
Lorenz
AW: Punktdiagramm mit MouseOver o.ä.
24.09.2009 18:05:16
Beverly
Hi Lorenz,
verwende vbLf anstelle vbNewLine


300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige