Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mauszeiger verändern

Mauszeiger verändern
Andreas
Hallo,
ich habe in einer Userform ein Bild. (z.b. 300 x 200 px groß)
ich habe ein Array in dem bis zu 80 werte stehen. z.b. 100
wenn ich mit der maus über das bild fahre wird abgeglichen ob der mauszeiger weniger als 10px von einem der werte aus dem array entfernt ist Betrag(X-100)
Userform1.Image1.MousePointer = 99
Userform1.Image1.MouseIcon = LoadPicture(ThisWorkbook.Path & Application.PathSeparator & "Hand. _
ico"

sonst wird er auf Default gestellt
Userform1.Image1.MousePointer=0


Das Funktioniert alles sehr gut
. Jedoch nach einem Klick komischer weise nicht mehr
Der Mauszeiger flimmert in den bereichen wo die hand sein sollte immer zwischen hand und default umher. ich würde die datei sehr gerne hochladen, jedoch ist es meine Facharbeit und ich denke kaum dass ich das darf.
Hier der vollständige code, der jedoch ohne Zusammenhänge meiner Ansicht nach ein wenig unlesbar ist
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
_
ByVal Y As Single)
Dim normal_start As Integer
Dim normal_end As Integer
If Sheets("Daten").Cells(16, 1) = 1 Then
normal_start = Sheets("Daten").Cells(15, 1)
normal_end = Sheets("Daten").Cells(14, 1)
Else
normal_start = Sheets("Daten").Cells(22, 1)
normal_end = Sheets("Daten").Cells(21, 1)
End If
normal_x_start = Sheets("Daten").Cells(5, 1)
normal_x_end = Sheets("Daten").Cells(6, 1)
pixwidth_of_0 = normal_to_pixel(Userform1.Image1.Width, 18, 18, 0, normal_x_start,  _
normal_x_end)
pixheight_of_0 = normal_to_pixel(Userform1.Image1.Height, 18, 19, 0, normal_start,  _
normal_end)
hand = False
If Betrag(Y - pixheight_of_0) 

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mauszeiger verändern
05.01.2010 13:52:04
Andreas
Habs jetzt anders gelöst
danke an alle die sich gedanken gemacht haben
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Mauszeiger in Excel ändern


Schritt-für-Schritt-Anleitung

Um den Mauszeiger in Excel zu ändern, insbesondere in einer Userform, kannst du den folgenden VBA-Code verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle eine Userform: Klicke mit der rechten Maustaste auf "VBAProject (deinWorkbookName)" und wähle "Einfügen" > "UserForm".

  3. Füge ein Bild hinzu: Ziehe ein Bildsteuerelement auf die Userform.

  4. Füge folgenden Code in das UserForm-Modul ein:

    Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
       If Betrag(Y - pixheight_of_0) < 10 Then
           Me.Image1.MousePointer = 99 ' Hand-Cursor
       Else
           Me.Image1.MousePointer = 0 ' Standard-Cursor
       End If
    End Sub
  5. Lade ein Cursor-Bild: Stelle sicher, dass dein Hand-Cursor-Bild im richtigen Format (z.B. Hand.ico) im Verzeichnis deiner Arbeitsmappe gespeichert ist.

  6. Starte die Userform: Füge einen Button hinzu, um die Userform zu laden, und teste die Funktionalität.


Häufige Fehler und Lösungen

  1. Mauszeiger ändert sich nicht: Stelle sicher, dass der Cursor-Status korrekt zugewiesen wird und keine anderen Ereignisse den Cursor überschreiben.

  2. Flimmern des Mauszeigers: Dies kann passieren, wenn zu viele Bedingungen in der MouseMove-Ereignisprozedur geprüft werden. Reduziere die Komplexität der Bedingungen oder stelle sicher, dass die Werte, die du überprüfst, stabil sind.

  3. Mauszeiger wird nicht angezeigt: Überprüfe den Pfad zur Cursor-Datei und stelle sicher, dass die Datei existiert und korrekt geladen wird.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, den Mauszeiger in Excel zu ändern:

  • Direkte Änderungen im Excel-Optionsmenü: Du kannst die Cursor-Farbe in den Windows-Einstellungen ändern. Dies wirkt sich jedoch auf alle Anwendungen aus, nicht nur auf Excel.

  • Verwendung von VBA: Du kannst den Mauszeiger mit der Application.Cursor-Eigenschaft anpassen, um den Cursor für das gesamte Excel-Dokument zu ändern.

    Application.Cursor = xlWait ' Beispiel für den Warte-Cursor

Praktische Beispiele

  1. Fadenkreuz-Cursor: Wenn du einen Fadenkreuz-Cursor verwenden möchtest, kannst du diesen Code anpassen:

    Userform1.Image1.MousePointer = 3 ' Fadenkreuz-Cursor
  2. Maßgeschneiderte Cursor: Um die Cursorfarbe zu ändern, kannst du VBA verwenden, um einen benutzerdefinierten Cursor zu erstellen und diesen dann in der Userform zu laden.


Tipps für Profis

  • Verwende die MousePointer-Eigenschaft, um verschiedene Cursor zu testen. Die Werte reichen von 0 (Standard) bis 99 (benutzerdefinierte Cursor).

  • Setze die Cursor-Änderungen innerhalb von Bedingungsprüfung, um sicherzustellen, dass der Mauszeiger nur dann geändert wird, wenn es sinnvoll ist.

  • Nutze die Application.ScreenUpdating = False vor komplexen Cursor-Änderungen, um Flimmern zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich den Cursor in einer Excel-Tabelle ändern?
Du kannst den Cursor in Tabellen nicht direkt ändern. Verwende VBA, um den Cursor in Userforms zu ändern.

2. Warum flimmert mein Mauszeiger?
Flimmern tritt häufig auf, wenn mehrere Ereignisse in der MouseMove-Ereignisprozedur gleichzeitig bearbeitet werden. Überprüfe und optimiere die Logik, um dies zu vermeiden.

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