Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagramm: bei 'mouseover' best. Zelleninfo zeigen

Forumthread: Diagramm: bei 'mouseover' best. Zelleninfo zeigen

Diagramm: bei 'mouseover' best. Zelleninfo zeigen
09.04.2009 07:59:14
Roland
Moin zusammen,
ich habe ein x,y-Diagramm mit allen Flugplätzen in Deutschland. Wenn man hier mit der Maus auf einen Wert zeigt, wird immer die dazugehörige Koordinate des Platzes angezeigt. Das ist eigentlich auch ok.
Ich bin aber auf der Suche nach der Möglichkeit, bei "mouseover" eine andere Zelleninfo nämlich den Flugplatznamen oder die -kennung anzeigen zu lassen, die sich in einer anderen Zelle befindet.
Es soll keine dauerhafte Beschriftung erfolgen, das würde zu unübersichtlich, da die Plätze tlw. dicht beieinander liegen. Ich möchte die Info nur per Mauszeiger abrufen können.
Kann mir jemand weiterhelfen?
Vielen Dank für's Lesen!
Roland
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Diagramm: bei 'mouseover' best. Zelleninfo zeigen
09.04.2009 09:26:33
ChristianM
Hallo Roland,
das geht mit VBA, kann aber bei 'mouseover' etwas heikel sein.
Das Prinzip ist hier beschrieben:
http://www.computorcompanion.com/LPMArticle.asp?ID=221
Du könntest mal eine Beispiel-Datei hochladen, dann kann ich dir bestimmt helfen.
Gruß
Christian
Anzeige
AW: Diagramm: bei 'mouseover' best. Zelleninfo zeigen
09.04.2009 09:28:37
Roland
Moinj Christian,
danke für den Tipp, werd mir das mal ansehen.
Ich erstelle gleich eine Bespieldatei, hab die Originaldatei nicht auf diesem PC.
Gruß
Roland
AW: Beispieldatei
09.04.2009 11:04:12
Roland
Hallo Christian,
habe mrr den link angesehen, finde, die nachstehende Funktion könnte passen, wenn sie entsprechend geändert würde. Habe mit VBA leider kaum Erfahrungen, kannst Du mir helfen?

Private Sub Chart_MouseUp(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
Dim myX As Variant, myY As Double
With ActiveChart
' Pass x & y, return ElementID and Args
.GetChartElement x, y, ElementID, Arg1, Arg2
' Did we click over a point or data label?
If ElementID = xlSeries Or ElementID = xlDataLabel Then
If Arg2 > 0 Then
' Extract x value from array of x values
myX = WorksheetFunction.Index _
(.SeriesCollection(Arg1).XValues, Arg2)
' Extract y value from array of y values
myY = WorksheetFunction.Index _
(.SeriesCollection(Arg1).Values, Arg2)
' Display message box with point information
MsgBox "Series " & Arg1 & vbCrLf _
& """" & .SeriesCollection(Arg1).Name & """" & vbCrLf _
& "Point " & Arg2 & vbCrLf _     _
& "X = " & myX & vbCrLf _
& "Y = " & myY
End If
End If
End With


Ich würde gerne die Variable Arg2 durch den Inhalt in der entsprechenden Zelle mit der gewünschten Info verwenden.
Ist das möglich?

Anzeige
ich bin dran...
09.04.2009 11:07:54
ChristianM
...noch etwas Geduld
Christian.
AW: Beispieldatei
09.04.2009 11:53:53
ChristsianM
Hallo,
im folgenden Beispiel wird ein Shape rechts oben im Diagramm erzeugt. Beim Mousemove-Ereignis über einen Datenpunkt werden die Infos aus Tabelle1 in diesem Shape angezegt.
Aktiviert wird das ganze, wenn das Diagramm-Sheet aktiviert wird (zB beim Wechsel von einer Tabelle zu dem Diagramm). Der Code muss ins Klassenmodul von Diagramm1.
Gruß
Christian

Option Explicit
Private Const SHNAME As String = "ChartTip"
Dim shInfo As Shape
Private Sub Chart_Activate()
Dim sh As Shape
For Each sh In ActiveChart.Shapes
If sh.Name = SHNAME Then
sh.Delete
Set shInfo = Nothing
End If
Next
With ActiveChart
Set shInfo = .Shapes.AddShape(1, .ChartArea.Width - 100, .ChartArea.Top + 10, 80, 50)
shInfo.Name = SHNAME
End With
End Sub
Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y  _
_
As Long)
Dim lngElmt&, lngSer&, lngPnt&
Dim strTxt As String
Dim varX, varRow
With Sheets("Tabelle1")
ActiveChart.GetChartElement x, y, lngElmt, lngSer, lngPnt
If Not shInfo Is Nothing Then
If lngElmt  xlSeries Then shInfo.TextFrame.Characters.Text = "": Exit Sub
End If
If lngPnt > 0 Then
varX = Application.Index(ActiveChart.SeriesCollection(lngSer).XValues, lngPnt)
varRow = Application.Match(CDbl(varX), .Columns(3), 0)
strTxt = _
.Cells(varRow, 1) & vbLf & _
"ICAO: " & .Cells(varRow, 2) & vbLf & _
"N: " & .Cells(varRow, 3) & vbLf & _
"E: " & .Cells(varRow, 4)
If Not shInfo Is Nothing Then
shInfo.TextFrame.Characters.Text = strTxt
shInfo.TextFrame.Characters.Font.Size = 8
End If
End If
End With
End Sub


Anzeige
Danke!!
09.04.2009 14:55:24
Roland
Christian, genau das, was ich gesucht habe!
Vielen herzlichen Dank!!!
Wünsch Dir ein schönes Osterfest!
Gruß
Reinhard
;
Anzeige
Anzeige

Infobox / Tutorial

Zelleninfo bei Mouseover in Excel-Diagrammen anzeigen


Schritt-für-Schritt-Anleitung

Um bei einem Mouseover in einem Excel-Diagramm eine Zelleninfo anzuzeigen, benötigst du etwas VBA (Visual Basic for Applications). Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und erstelle ein neues Diagramm mit deinen Daten.

  2. Aktiviere die Entwicklertools: Gehe zu Datei -> Optionen -> Menüband anpassen und aktiviere das Kästchen bei Entwicklertools.

  3. Wechsel in den VBA-Editor: Drücke ALT + F11.

  4. Füge ein neues Modul hinzu: Rechtsklick auf VBAProject (dein Dokument) -> Einfügen -> Modul.

  5. Füge den folgenden Code ein:

    Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
       Dim lngElmt As Long, lngSer As Long, lngPnt As Long
       Dim strTxt As String
       Dim varX, varRow
    
       ActiveChart.GetChartElement x, y, lngElmt, lngSer, lngPnt
       If lngPnt > 0 Then
           varX = Application.Index(ActiveChart.SeriesCollection(lngSer).XValues, lngPnt)
           varRow = Application.Match(CDbl(varX), Sheets("Tabelle1").Columns(3), 0)
           strTxt = Sheets("Tabelle1").Cells(varRow, 1) & vbLf & _
                    "ICAO: " & Sheets("Tabelle1").Cells(varRow, 2)
           ActiveChart.Shapes("ChartTip").TextFrame.Characters.Text = strTxt
       End If
    End Sub
  6. Schließe den VBA-Editor und gehe zurück zu deinem Diagramm.

  7. Teste das Mouseover: Bewege die Maus über die Datenpunkte und die entsprechende Zelleninfo wird angezeigt.


Häufige Fehler und Lösungen

  • Diagramm zeigt keine Infos an: Stelle sicher, dass das Diagramm aktiv ist und die richtige Zellenreferenz verwendet wird.
  • VBA funktioniert nicht: Überprüfe, ob Makros in deinen Excel-Einstellungen aktiviert sind.
  • Shape wird nicht angezeigt: Stelle sicher, dass du das Shape korrekt im Diagramm hinzugefügt hast, wie im vorherigen Schritt beschrieben.

Alternative Methoden

Wenn du keine VBA verwenden möchtest, kannst du auch die Funktion "Datenbeschriftungen" nutzen. Diese Methode ist jedoch weniger dynamisch und zeigt die Informationen immer an, was die Übersichtlichkeit beeinträchtigen kann.

  1. Rechtsklick auf den Datenpunkt im Diagramm.
  2. Wähle Datenbeschriftungen hinzufügen.
  3. Klicke erneut auf die Beschriftungen und wähle Datenbeschriftungen formatieren, um die gewünschten Zellen anzuzeigen.

Praktische Beispiele

Hier ist ein Beispiel für eine einfache Implementierung des Mouseover in einem Excel-Diagramm:

Private Sub Chart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
    ' Code für Mouseover-Ereignis
    ' Anzeige von Zelleninfos aus Tabelle1
End Sub

In diesem Beispiel wird beim Mouseover die Zelleninfo angezeigt, die du in der Tabelle gespeichert hast. Du kannst die Zellenreferenzen anpassen, um andere Informationen anzuzeigen, z.B. ICAO-Codes oder Standorte.


Tipps für Profis

  • Nutze benannte Bereiche in Excel, um deine Zellen zu verwalten. Das macht den Code übersichtlicher und leichter wartbar.
  • Experimentiere mit verschiedenen Diagrammtypen, um das beste Ergebnis für deine Daten zu erzielen.
  • Vergewissere dich, dass deine VBA-Umgebung sicher ist, um ungewollte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich den Mouseover für andere Diagrammtypen nutzen? Ja, der Code kann an verschiedene Diagrammtypen angepasst werden, solange du die richtigen Datenreferenzen verwendest.

2. Funktioniert dies in allen Excel-Versionen? Der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, einschließlich Excel 2010 und höher.

3. Was ist, wenn ich keine VBA-Kenntnisse habe? Es gibt zahlreiche Online-Ressourcen und Tutorials, die dir helfen können, die Grundlagen von VBA zu erlernen. Alternativ kannst du auch einen Excel-Experten konsultieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige