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

Forumthread: Cursor ausblenden

Cursor ausblenden
09.01.2018 01:22:20
Ludmila
Hallo,
Über eine Start_Userform möchte ich den Fortschritt auflisten.
Dabei möchte ich den Mauszeiger ausblenden.
Es wird zwar der Pfeil ausgebendet, dafür erschein der rotierende Kreis.
Wie kann ich dies ändern?
Vielen Dank!
LG
Gruß, Ludmila
Private Declare PtrSafe Function ShowCursor Lib "user32.dll" (ByVal bShow As Long) As Long
Private Sub UserForm_Activate()
Call ShowCursor(0)
lblWarten.Caption = "Bitte warten..."
lblAufruf.Caption = "Kundendaten werden eingelesen..."
DoEvents
Application.Wait Now + TimeSerial(0, 0, 2)
lblAufruf.Caption = "Mitarbeiterdaten werden erstellt..."
DoEvents
Application.Wait Now + TimeSerial(0, 0, 2)
lblAufruf.Caption = "Materialdaten werden aufbereitet..."
DoEvents
Application.Wait Now + TimeSerial(0, 0, 2)
lblAufruf.Caption = "Verzeichnis wird vorbereitet..."
DoEvents
Application.Wait Now + TimeSerial(0, 0, 2)
lblAufruf.Caption = "Stammdaten werden angelegt..."
DoEvents
Application.Wait Now + TimeSerial(0, 0, 2)
frmMenu.Show
Unload Me
Call ShowCursor(1)
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Cursor ausblenden
09.01.2018 05:37:39
Hajo_Zi
In Deinem Code vermisse ich
MousePointer =
mal mit den Eigenschaften spielen

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: Cursor ausblenden
09.01.2018 09:11:38
Ludmila
Hallo Hajo,
habe alle Möglichkeiten mit dem MousePointer ausprobiert.
Immer ist der der MousPointer iregndwie sichtbar.
Danke, für Deinen gut gemeinten Ratschlag.
LG
Ludmila
AW: Cursor ausblenden
11.01.2018 17:01:34
mmat
Also, in meiner persönlichen Api-Referenz steht, das der Parameter für ShowCursor negativ sein muss, damit er verschwindet. 0 ist nicht unbedingt negativ ...
Ich hab das jetzt nicht ausprobiert, das überlass ich dir... :-)
Hinweis: Wahrscheinlich sind die Auswirkungen global, der Cursor verschwindet ganz, auch für alles andere, was im Hintergrund läuft. Ich würde daher davon abraten. Lieber eine Sanduhr draus machen.
Anzeige
AW: Cursor ausblenden
11.01.2018 18:50:09
Ludmila
Hallo mmat,
Danke für Deinen Ratschlag.
Ich habe das mal mit MousePointer = fmMousePointerHourGlass funktioniert aber nicht.
Der Fehler war das ich Call ShowCursor (0)anstatt ShowCursor (0) verwendet habe.
Trotzdem Danke für Deine Hilfe.
LG
Ludmila
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mauszeiger ausblenden in Excel


Schritt-für-Schritt-Anleitung

Um den Mauszeiger in Excel auszublenden, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle UserForm, um ein neues Formular zu erstellen.

  3. Füge die folgenden Zeilen in das Codefenster des UserForms ein:

    Private Declare PtrSafe Function ShowCursor Lib "user32.dll" (ByVal bShow As Long) As Long
    
    Private Sub UserForm_Activate()
       Call ShowCursor(0) ' Cursor ausblenden
       ' Hier kannst du die Progressbar oder Labels einfügen
       Application.Wait Now + TimeSerial(0, 0, 2)
       Call ShowCursor(1) ' Cursor wieder anzeigen
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Teste die Funktion, indem du das UserForm anzeigst.


Häufige Fehler und Lösungen

  • Problem: Der Mauszeiger ist trotz des Codes sichtbar.

    • Lösung: Stelle sicher, dass du Call ShowCursor(0) richtig verwendest und dass keine anderen Prozesse den Cursor beeinflussen.
  • Problem: Der Cursor wird in anderen Anwendungen nicht angezeigt.

    • Lösung: Der Befehl ShowCursor wirkt global. Überlege, ob du den Mauszeiger in Excel ausblenden oder nur den Cursor innerhalb des UserForms kontrollieren möchtest.

Alternative Methoden

Falls du den Mauszeiger nicht komplett ausblenden möchtest, kannst du ihn auch in eine Sanduhr umwandeln:

  1. Setze MousePointer auf fmMousePointerHourGlass:

    MousePointer = fmMousePointerHourGlass

Diese Methode ist besonders nützlich, wenn du dem Benutzer anzeigst, dass eine Verarbeitung läuft, ohne den Mauszeiger komplett unsichtbar zu machen.


Praktische Beispiele

Hier ein einfaches Beispiel für eine UserForm, bei der der Mauszeiger ausgeblendet wird, während ein Ladeprozess angezeigt wird:

Private Sub UserForm_Activate()
    Call ShowCursor(0)
    lblStatus.Caption = "Lade Daten..."
    DoEvents
    Application.Wait Now + TimeSerial(0, 0, 3) ' Simulation einer Ladezeit
    lblStatus.Caption = "Daten geladen."
    Call ShowCursor(1)
End Sub

Die Labels lblStatus müssen vorher im UserForm erstellt werden.


Tipps für Profis

  • Globaler Einfluss: Sei vorsichtig, wenn du den Mauszeiger global ausblendest. Dies kann die Benutzererfahrung beeinträchtigen, wenn Benutzer versuchen, mit anderen Anwendungen zu interagieren.
  • Debugging: Wenn der Cursor nicht wie gewünscht verschwindet, überprüfe die VBA-Einstellungen und ob andere Makros aktiv sind, die den Mauszeiger beeinflussen könnten.

FAQ: Häufige Fragen

1. Warum wird der Cursor in Excel nicht angezeigt?
Der Cursor kann aufgrund von VBA-Befehlen wie ShowCursor(0) ausgeblendet werden. Stelle sicher, dass du den Cursor wieder mit ShowCursor(1) sichtbar machst.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, einschließlich Excel 2016 und neuer.

3. Gibt es eine Möglichkeit, den Mauszeiger nur in bestimmten Bereichen auszublenden?
Nein, der ShowCursor-Befehl wirkt global. Du kannst jedoch visuelle Effekte innerhalb deines UserForms verwenden, um den Eindruck eines ausgeblendeten Cursors zu erzeugen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige