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

Forumthread: Mauszeiger als "Hourglass"

Mauszeiger als "Hourglass"
23.02.2006 14:21:56
ingo
hallo,
warum funktioniert es im folgenden Code nicht, dass bei Ausführung, die Sanduhr angezeigt wird.

Private Sub CB4_Click()
If CB4.Caption = "Variablenliste" Then
If OptionButton1.Value = True Then
ListBox1.Visible = True
CB4.Caption = "ausblenden"
ListBox1.Clear
Para.MousePointer = fmMousePointerHourGlass  'sobald diese Schleife
'läuft soll die Sanduhr angezeigt werden
While Sheets("Variablenliste a.P.").Cells(2 + i, 3) <> ""
With ListBox1
.ColumnCount = 2
.AddItem Sheets("Variablenliste a.P.").Cells(i + 2, 5)
.ColumnWidths = "390;40"
.Font.Size = 12
.List(i, 1) = Sheets("Variablenliste a.P.").Cells(i + 2, 3)
End With
i = i + 1
Wend
Para.MousePointer = fmMousePointerDefault
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mauszeiger als "Hourglass"
23.02.2006 14:29:53
Detlef
Hi,
was ist Para?
Das gehört nicht in die Schleife:
.ColumnCount = 2
.ColumnWidths = "390;40"
.Font.Size = 12
mfg Detlef
AW: Mauszeiger als "Hourglass"
23.02.2006 14:41:54
Ceci
Hallo Ingo,
warum nicht so:

Private Sub CB4_Click()
If CB4.Caption = "Variablenliste" Then
If OptionButton1.Value = True Then
ListBox1.Visible = True
CB4.Caption = "ausblenden"
ListBox1.Clear
Application.Cursor = xlWait 'Sanduhr
While Sheets("Variablenliste a.P.").Cells(2 + i, 3) <> ""
With ListBox1
.ColumnCount = 2
.AddItem Sheets("Variablenliste a.P.").Cells(i + 2, 5)
.ColumnWidths = "390;40"
.Font.Size = 12
.List(i, 1) = Sheets("Variablenliste a.P.").Cells(i + 2, 3)
End With
i = i + 1
Wend
Application.Cursor = xlNormal 'Ende der Sanduhr
End Sub

mfg Cäzilia
Anzeige
AW: Mauszeiger als "Hourglass"
23.02.2006 14:48:16
ingo
Joh super hat funktioniert.
Besten dank
Gruß Ingo
;
Anzeige
Anzeige

Infobox / Tutorial

Mauszeiger als "Hourglass" in Excel VBA


Schritt-für-Schritt-Anleitung

Um den Mauszeiger in Excel VBA als "Hourglass" anzuzeigen, kannst du den folgenden Code verwenden. Dieser wird typischerweise in einem Button-Click-Ereignis platziert:

Private Sub CB4_Click()
    If CB4.Caption = "Variablenliste" Then
        If OptionButton1.Value = True Then
            ListBox1.Visible = True
            CB4.Caption = "ausblenden"
            ListBox1.Clear
            Application.Cursor = xlWait ' Sanduhr anzeigen
            While Sheets("Variablenliste a.P.").Cells(2 + i, 3) <> ""
                With ListBox1
                    .ColumnCount = 2
                    .AddItem Sheets("Variablenliste a.P.").Cells(i + 2, 5)
                    .ColumnWidths = "390;40"
                    .Font.Size = 12
                    .List(i, 1) = Sheets("Variablenliste a.P.").Cells(i + 2, 3)
                End With
                i = i + 1
            Wend
            Application.Cursor = xlNormal ' Sanduhr zurücksetzen
        End If
    End If
End Sub

Achte darauf, dass du die richtige Variable für den Zähler i deklarierst und initialisierst. Der Code sorgt dafür, dass der Mauszeiger während der Ausführung der Schleife als "Hourglass" angezeigt wird.


Häufige Fehler und Lösungen

  1. Der Mauszeiger wird nicht als "Hourglass" angezeigt

    • Stelle sicher, dass Application.Cursor = xlWait vor der Schleife gesetzt wird und Application.Cursor = xlNormal nach der Schleife.
  2. Fehler bei der Verwendung von Para.MousePointer

    • Der korrekte Befehl für den Mauszeiger in Excel VBA ist Application.Cursor, nicht Para.MousePointer.
  3. Schleife läuft unendlich

    • Überprüfe die Bedingung der Schleife. Es sollte sichergestellt werden, dass die Zelle, die du prüfst, tatsächlich leer oder gefüllt ist, um die Schleife zu beenden.

Alternative Methoden

Eine alternative Methode zur Anzeige des "Hourglass" ist die Verwendung von DoCmd.Hourglass. Dies könnte in Access verwendet werden, jedoch nicht in Excel. In Excel solltest du immer Application.Cursor verwenden.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du den Mauszeiger in einem Button-Click-Ereignis verwenden kannst:

Private Sub CommandButton1_Click()
    Application.Cursor = xlWait
    ' Führe hier deine langwierige Berechnung aus
    Application.Cursor = xlNormal
End Sub

Verwende xlWait, um die Sanduhr anzuzeigen und xlNormal, um sie zurückzusetzen, wenn die Aufgabe abgeschlossen ist.


Tipps für Profis

  • Überlege, ob du auch visuelles Feedback für den Benutzer bereitstellen möchtest, während die Sanduhr angezeigt wird. Zum Beispiel durch das Deaktivieren von Schaltflächen oder das Anzeigen eines Fortschrittsbalkens.
  • Halte deinen Code sauber und gut kommentiert, um die Lesbarkeit zu erhöhen, besonders wenn du mit vba hourglass arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich den Mauszeiger wieder auf den Standard zurücksetzen?
Verwende Application.Cursor = xlNormal, um den Mauszeiger nach der Ausführung deiner Aufgabe zurückzusetzen.

2. Warum funktioniert Para.MousePointer nicht?
Para.MousePointer ist nicht korrekt für die Anzeige des Mauszeigers in Excel VBA. Verwende stattdessen Application.Cursor.

3. Gibt es eine Möglichkeit, die Sanduhr nur für bestimmte Teile des Codes anzuzeigen?
Ja, setze Application.Cursor = xlWait vor dem spezifischen Codeabschnitt und Application.Cursor = xlNormal danach, um die Sanduhr nur während dieser Zeit anzuzeigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige