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

VBA - Mouse up/down

Forumthread: VBA - Mouse up/down

VBA - Mouse up/down
12.02.2003 09:59:50
Andre
Guten Morgen,

ich versuche die Vba-Codes MouseUp/MouseDown in einem Tabellenblatt zu nutzen.

Leider passiert da überhaupt nichts.
Z.B. sollte sich nach untenstehender Formel die Schrift in den Zellen M6:N6 von blau auf rot ändern, sollte sich die Mouse auf dem CommandButton befinden.

Private Sub CommandButton1_MouseUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Range("M6:N6").Select
Selection.Font.ColorIndex = 3
End Sub
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Range("M6:N6").Select
Selection.Font.ColorIndex = 11
End Sub

Hat jemand ´n Tip, warum ich hier nicht weiterkomme?

mfg
Andre

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VBA - Mouse up/down
12.02.2003 10:14:11
Florian

Hallo Andre,

Mouse_Up und Mouse_Down beziehen sich auf das Klicken auf den Button. Mouse_Down wird ausgeführt, wenn der Button unten ist, Mouse_Up wenn er wieder losgelassen wird.
Bei deiner Prozedur wird beim Klicken also erst die Farbe auf ColorIndex=11 gesetzt und dann gleich wieder durch die Mouse_Up Prozedur auf Colorindex=3 gesetzt.

Gruß

Florian

Anzeige
Re: VBA - Mouse up/down
12.02.2003 10:26:13
Andre

Hi Florian,

danke für deine Hilfe, mein Fehler.

Gibt es denn einen Befehl, der eine Prozedur ablaufen läßt, wenn die sich die Mouse nur auf dem Button befindet, oder ist sowas gar nicht möglich?

Gruß Andre

Re: VBA - Mouse up/down
12.02.2003 10:34:18
Florian

Hallo Andre,

es gibt noch die Methode Mouse_Move, aber mit der kenne ich mich nicht so genau aus. Mit der kann man glaube ich auf einem Formular oder einem Button die Aktionen "keine Taste gedrückt" auswerten.

Gruß

Florian

Anzeige
Re: VBA - Mouse up/down
12.02.2003 10:36:54
Andre

Okay, trotzdem danke.

Andre

;
Anzeige

Infobox / Tutorial

VBA MouseUp und MouseDown im Excel nutzen


Schritt-für-Schritt-Anleitung

  1. Öffne das Excel-Dokument und gehe zum Visual Basic for Applications (VBA) Editor. Du kannst dies tun, indem du ALT + F11 drückst.

  2. Füge einen CommandButton hinzu: Wähle in der Toolbox den CommandButton aus und ziehe ihn auf dein Arbeitsblatt.

  3. Doppelklicke auf den CommandButton, um den Code-Editor zu öffnen.

  4. Füge die folgenden VBA-Codes ein:

    Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
       Range("M6:N6").Select
       Selection.Font.ColorIndex = 11  ' Schriftfarbe auf Blau setzen
    End Sub
    
    Private Sub CommandButton1_MouseUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
       Range("M6:N6").Select
       Selection.Font.ColorIndex = 3  ' Schriftfarbe auf Rot setzen
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu deinem Arbeitsblatt.

  6. Teste die Funktionalität: Klicke auf den CommandButton und beobachte, wie sich die Schriftfarbe in den Zellen M6:N6 ändert.


Häufige Fehler und Lösungen

  • Problem: Die Schriftfarbe ändert sich nicht.

    • Lösung: Stelle sicher, dass du den Code korrekt eingefügt hast und dass der CommandButton tatsächlich auf dem Arbeitsblatt vorhanden ist. Überprüfe auch, ob die Zellen M6:N6 nicht gesperrt sind.
  • Problem: Keine Reaktion auf MouseDown oder MouseUp.

    • Lösung: Überprüfe, ob der Code im richtigen CommandButton-Event platziert ist. Du solltest sicherstellen, dass du die richtige Syntax verwendet hast.

Alternative Methoden

Eine Alternative zu den MouseUp- und MouseDown-Ereignissen ist die Verwendung des Mouse_Move-Ereignisses, um die Aktionen auszulösen, wenn sich die Maus über dem Button befindet. Hier ist ein einfaches Beispiel:

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Range("M6:N6").Select
    Selection.Font.ColorIndex = 10  ' Schriftfarbe auf Grün setzen
End Sub

Diese Methode könnte nützlich sein, wenn du visuelle Hinweise geben möchtest, ohne dass der Button gedrückt wird.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie du den mousedown vba-Befehl nutzen kannst, um eine visuelle Rückmeldung beim Klicken zu geben:

Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    CommandButton1.BackColor = RGB(255, 0, 0)  ' Button wird rot
End Sub

Private Sub CommandButton1_MouseUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    CommandButton1.BackColor = RGB(0, 255, 0)  ' Button wird grün
End Sub

In diesem Beispiel ändert sich die Hintergrundfarbe des Buttons, wenn du ihn drückst und loslässt.


Tipps für Profis

  • Ereignisse kombinieren: Du kannst MouseUp und MouseDown kombinieren, um komplexere Interaktionen zu erstellen. Experimentiere mit verschiedenen Eigenschaften und Methoden, um das Verhalten deiner Steuerelemente anzupassen.

  • Debugging: Nutze die Debugging-Tools von VBA, um Fehler in deinem Code schneller zu identifizieren. Setze Haltepunkte und überprüfe die Werte von Variablen während der Ausführung.


FAQ: Häufige Fragen

1. Frage
Wie kann ich die Schriftfarbe einer Zelle ändern, ohne die Maus auf einen Button zu bewegen?
Antwort: Du kannst dies mit der Worksheet_Change-Methode tun, die auslöst, wenn sich der Inhalt einer Zelle ändert.

2. Frage
Gibt es eine Möglichkeit, MouseDown und MouseUp für andere Steuerelemente zu verwenden?
Antwort: Ja, die MouseDown- und MouseUp-Ereignisse sind auch für andere Steuerelemente wie Textfelder oder Listenfelder verfügbar.

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