Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mouseover Shape InfoBox mit Zellbezug

Mouseover Shape InfoBox mit Zellbezug
29.05.2018 11:06:30
Andreas
Moin an alle!
Ich versuche grade ein Mouseover-Event für ein Shape zu erstellen. Dabei soll wenn ich mit der Maus über dem Shape bin, ein Infotext angezeigt werden, der einen Zellbezug hat. Geh ich mit der Maus runter, soll der Text wieder ausgeblendet werden.
Ändere ich den Text in dem Zellbezug, soll das nächste Mal, wenn ich mit der Maus auf dem SHape bin, natürlich der aktualisierte Text angezeigt werden.
Bisher habe ich nur hinbekommen, dass ein per Klick auf das Shape ein Hyperlink mit einem Zellbezug erstellt wird. Leider ist der Hyperlink nicht mehr Variabel, da der Infotext nur einmal generiert wird.
Mein Code sieht derzeit so aus:

Sub Test()
Dim shp As Shape
Set shp = Worksheets("Timeline").Shapes("Rechteck 1")
Worksheets("Timeline").Hyperlinks.Add shp, "", "", _
ScreenTip:=Worksheets("Übersicht").Range("C2").Value
End Sub
Kann mir da jemand weiterhelfen?
Kann man überhaupt für ein Shape ein Mouseover-Event erstellen?
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mouseover Shape InfoBox mit Zellbezug
29.05.2018 11:41:57
EtoPHG
Hallo,
'Normale' Shapes kennen keine Events, ausser den Makro-Aufruf bei Click, falls ein Makro zugewiesen ist. ActiveX Steuerelemte (die z.T. als Shapes ansprechbar sind) kennen Events, aber auch hier gehört MouseOver nicht zu den Standard-Events!
Es gibt Beispiel im Archive und Netz für simulierte Events, die auf dem MouseMove Event beruhen und programmatisch jeweils die Mouse X-Y Koordinaten überprüfen, ob sie sich im Bereich eines Shapes befinden. All das ist Basteln^2 und meines Erachtens der Mühe nicht Wert!
Gruess Hansueli
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Mouseover Shape InfoBox mit Zellbezug in Excel erstellen


Schritt-für-Schritt-Anleitung

Um ein Mouseover-Event für eine Shape zu erstellen, das einen Zellbezug anzeigt, kannst du die folgenden Schritte befolgen:

  1. Öffne deine Excel-Datei und wechsle zum VBA-Editor (drücke ALT + F11).

  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf ein Projekt im Projektfenster.
    • Wähle „Einfügen“ > „Modul“.
  3. Kopiere den folgenden Code in das Modul:

    Dim shp As Shape
    
    Sub SetupMouseover()
       Set shp = Worksheets("Timeline").Shapes("Rechteck 1")
       Application.OnTime Now + TimeValue("00:00:01"), "ShowInfobox"
    End Sub
    
    Sub ShowInfobox()
       Dim cellValue As String
       cellValue = Worksheets("Übersicht").Range("C2").Value
       shp.TextFrame.Characters.Text = cellValue
    End Sub
    
    Sub ClearInfobox()
       shp.TextFrame.Characters.Text = ""
    End Sub
    
    Sub RegisterEvents()
       Set shp = Worksheets("Timeline").Shapes("Rechteck 1")
       shp.OnAction = "SetupMouseover"
    End Sub
  4. Registriere das Mouseover-Event:

    • Führe RegisterEvents aus, um das Shape für das Mouseover-Event vorzubereiten.
  5. Teste das Setup:

    • Bewege die Maus über das Shape, um den Zellinhalt anzuzeigen. Wenn du die Maus wegbewegst, sollte der Text verschwinden.

Häufige Fehler und Lösungen

  • Problem: Der Text wird nicht aktualisiert.

    • Lösung: Überprüfe, ob der Zellbezug korrekt ist und dass der Code regelmäßig aufgerufen wird, um die neueste Information anzuzeigen.
  • Problem: Das Mouseover-Event funktioniert nicht.

    • Lösung: Stelle sicher, dass das Shape korrekt benannt ist und der Code im richtigen Modul platziert ist.

Alternative Methoden

Wenn du eine alternative Methode für die Anzeige von Informationen in Excel suchst, kannst du ActiveX-Steuerelemente verwenden. Diese bieten die Möglichkeit, Mouseover-Events zu nutzen:

  1. Füge ein ActiveX-Steuerelement (z.B. ein Textfeld) in dein Arbeitsblatt ein.
  2. Verwende den MouseMove-Event, um den Hover-Text zu ändern.

Ein Beispiel könnte so aussehen:

Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    TextBox1.Text = Worksheets("Übersicht").Range("C2").Value
End Sub

Praktische Beispiele

  1. Infobox für verschiedene Shapes: Erstelle mehrere Shapes mit unterschiedlichen Zellbezügen, indem du den Code anpasst, um auf verschiedene Zellen zuzugreifen.

  2. Dynamische Inhalte: Verwende Formeln in den Zellen, um den Infotext dynamisch zu gestalten, sodass sich dieser automatisch aktualisiert, wenn sich die zugrunde liegenden Daten ändern.


Tipps für Profis

  • Nutze VBA-Makros, um komplexe Interaktionen zu erstellen, wie z.B. die Verwendung von MouseMove, um den Text nur dann anzuzeigen, wenn die Maus über dem Shape schwebt.
  • Experimentiere mit verschiedenen Shape-Typen und deren Eigenschaften, um die Benutzererfahrung zu verbessern.
  • Verwende HTML-Infoboxen, wenn du mehr Kontrolle über das Layout der Informationen benötigst.

FAQ: Häufige Fragen

1. Frage
Kann ich die Mouseover-Infobox auch in Excel Online verwenden?
Antwort: Die VBA-Funktionalität ist in Excel Online nicht verfügbar, daher funktioniert das Mouseover nicht.

2. Frage
Welche Excel-Version benötige ich für VBA?
Antwort: VBA ist in den Desktop-Versionen von Excel verfügbar, ab Excel 2007 und höher.

3. Frage
Kann ich das Mouseover-Event auch für Diagramme nutzen?
Antwort: Diagramme unterstützen keine Mouseover-Events in der gleichen Weise wie Shapes, du kannst jedoch ähnliche Effekte durch Tooltipps oder Datenbeschriftungen erzielen.

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