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

"Bitte warten..." als Hinweis oder so

Forumthread: "Bitte warten..." als Hinweis oder so

"Bitte warten..." als Hinweis oder so
05.10.2004 10:15:02
norbert
Hallo,
folgenden Code zum Öffnen einer Arbeitsmappe:
Dim Filename1, Filename2 As String
Filename1 = "\\duisr20019\gruppen\Diensteinteilung.xls"
Filename2 = "\\duisr20020\gruppen\Diensteinteilung.xls"
If Dir(Filename1) = "" And Dir(Filename2) = "" Then
MsgBox "Die Datei wurde nicht gefunden!"
Exit Sub
End If
If Dir(Filename1) = "" Then
Workbooks.Open Filename2, ReadOnly:=True
Else
Workbooks.Open Filename1, ReadOnly:=True
End If
möchte ich nun erweitern, da das Öffnen der Datei so lange dauert, dass der Anwender meinen könnte, es passiert ja nichts...
Gibt es eine Möglichkeit, während des Öffnens der Datei eine Sanduhr oder einen Hinweis "Bitte warten..." anzeigen zu lassen?
Bitte für Ungeübte antworten ;o)
Vielen Dank,
Gruss
Anzeige

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 11:07:29
Peter
Vielleicht hilft das?
Beim Start Makro einfügen
Application.StatusBar = "Daten werden aktualisiert"
Beim Ende
Application.StatusBar = ""
Peter
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 11:23:05
Matthias
Hallo,
eine andere Möglichkeit wäre, ein Userform einzublenden:
im VBA-Editor erstellen mit Menü Einfügen - Userform
einen Hinweistext reinbasteln
in deinem Code dann:
UserForm1.Show False '"False", damit Code nicht auf das Schließen des UF wartet
DoEvents 'damit das UF auch komplett gezeichnet wird
'hier dann dein Code, der lange dauert
Unload UserForm1 ' UF entladen
Gruß Matthias
Anzeige
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 11:55:52
norbert
Hallo Matthias,
Deine Lösung hört sich super an und ich habe sie ausprobiert.
Allerdings kommt eine Fehlermeldung:
Fehler beim Kompilieren:
Falsche Anzahl an Argumenten oder ungültige Eigenschaftszuweisung
Die Fehlermeldung verweist auf den Formelteil: "UserForm1.Show False!"
Kannst Du was sagen?
Danke,
Norbert
Hallo Peter,
auch Deine Lösung habe ich ausprobiert, konnte aber überhaupt keine Meldung finden.
Auch Dir vielen Dank für die Mühe!
Gruß
Norbert
Anzeige
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 12:22:57
Matthias
Hallo Norbert,
die Meldung von Peter erscheint in der Statusleiste.
mögliche Fehler zu meinem Vorschlag:
1. das Ausrufezeichen nach False
2. Office 2000 unterstützt vielleicht die Mitgabe der ShowModal-Eigenschaft nocht nicht?
Dann in den Eigenschaften des Userforms die Eigenschaft "ShowModal" manuell auf "False" stellen und das Userform einfach mit
Userform1.Show
aufrufen.
Viel Erfolg,
Matthias
Anzeige
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 12:48:41
norbert
Hallo Matthias,
bei der ersten Frage dran gedacht, bei der zweiten nicht mehr.
Die Office-Version ist 97 und "Show" scheint 97 nicht zuzulassen.
Leider noch kein Erfolg, kannst Du nochmal?
Danke Dir herzlich,
Gruß
Norbert
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 13:23:19
Matthias
Hallo Norbert,
also den Befehl "Show" kennt die 97er Version ganz sicher, sonst könnte ja kein UserForm überhaupt angezeigt werden... :-)
Vielleicht heißt dein Userform anders?
Prüfe den Namen in der Eigenschaftsseite des UFs unter (Name)!
Geht denn der Befehl UserForm1.Show (ohne Argument)?
Gruß Matthias
Anzeige
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 13:39:15
Matthias
Hallo Norbert,
ich hab mal nachgeschaut und herausgefunden, dass es die Eigenschaft "ShowModal" bei UserForms unter Excel 97 leider noch nicht gibt, erst ab 2000.
Das heißt, der Code nach "UserForm1.Show" wird immer erst dann abgearbeitet, wenn das Userform per Klick geschlossen wird.
Somit ist mein Vorschlag für Excel 97 leider nicht zu gebrauchen, Du musst auf die Variante von Peter (Application.StatusBar = "Daten werden aktualisiert") zurückgreifen.
Leider nicht so auffällig wie ein UserForm.
Grüße,
Matthias
Anzeige
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 13:46:53
norbert
Hallo Matthias,
trotzdem vielen Dank für Deine Mühe.
Auf die Statusleiste schaut niemand, deshalb kann ich mir das schenken.
Ich finde dieses Forum sehr gut, wenn ich auch noch viele offene Fragen habe.
Sag mal bitte, kann man hier auch zu viele Fragen stellen?
Danke nochmals und einen schönen Tag noch,
Gruß
Anzeige
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 13:58:44
norbert
Hallo nochmal,
kann man evtl. den Statusleistentext blinken lassen?
Das fällt dann vielleicht doch auf... ?
Vielen Dank,
Gruss
Norbert
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 14:02:27
Matthias
Hallo Norbert,
als Möglichkeit ist mir noch eingefallen, ein extra Blatt mit dem Hinweis zu erstellen und bei Bedarf einzublenden:
1. Erstelle ein neues Tabellenblatt, gib ihm den Namen "Hinweis" und gestalte es als Hinweisfenster.
2. blende das Blatt mit Menü "Format - Blatt - Ausblenden" aus.
3. Nimm diesen Code:

Sub test()
Dim n As Integer
n = ActiveSheet.Index
Sheets("Hinweis").Visible = True
Sheets("Hinweis").Activate
' dein Code
Sheets("Hinweis").Visible = False
Sheets(n).Activate
End Sub

Sag mal bitte, kann man hier auch zu viele Fragen stellen?
Eigentlich nicht. Du solltes aber erst mal in der Recherche suchen, oder mit Google, wie ich es meist mache:
Gib als Suchbegriff unter Google folgendes ein:
Hinweisfenster site:www.herber.de
Dann findest Du schon mal dies:
https://www.google.de/search?hl=de&ie=UTF-8&newwindow=1&q=Hinweisfenster+site%3Awww.herber.de&btnG=Suche&meta=lr%3Dlang_de
Und wenn du damit nichts findest und zu den Antworten immer schön Rückmeldungen gibst, ob es Dir geholfen hat oder nicht, dann kannst du hier soviel fragen wie du willst...
Viel Spaß noch,
Matthias
Anzeige
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 15:44:45
norbert
*schämmich
der Code wird ausgeführt bis zum Ende, die geöffnete Datei wird angezeigt.
Aber:
die Ursprungsdatei gerät in den Hintergrund, das Hinweisfenster wird nicht wieder ausgeblendet...
'Laufzeitfehler 9 Index ausserhalb des gültigen Bereichs
Fehler tritt auf bei: Sheets("Hinweis").Visible = False
Hoffe, ich nerve nicht ...
Gruß und Danke,
Norbert
Anzeige
AW: "Bitte warten..." als Hinweis oder so
05.10.2004 15:53:45
Matthias
Hallo Norbert,
erstelle keine neue Mappe, sondern ein neues Blatt innerhalb der Mappe.
Geht's jetzt?
Gruß Matthias
AW: "Bitte warten..." als Hinweis oder so
06.10.2004 07:38:18
norbert
Hey Matthias,
habe keine neue Mappe erstellt.
Innerhalb der Arbeitsmappe habe ich eine Tabelle eingefügt, ausgeblendet.
Bei Codeablauf wird die Tabelle auch angezeigt, solange bis die neue Arbeitsmappe geöffnet ist.
Die neue Arbeitsmappe wird weiterhin angezeigt, dahinter liegt das geöffnete Blatt mit dem Hinweis.
Dann allerdings kommt die Fehlermeldung.
Hoffentlich verständlich geschrieben,
freundlichen Gruß
Norbert
Anzeige
AW: "Bitte warten..." als Hinweis oder so
06.10.2004 09:25:56
Matthias
Hallo Norbert,
jetzt verstehe ich, mein Fehler.
Nach dem Laden der Mappe ist diese ja die aktive, deshalb greift der Befehl "Sheets("Hinweis").Visible = False" nicht, denn in der geladenen Mappe gibt es keine solche Mappe...

Sub test()
Dim n As Integer
n = ActiveSheet.Index
Sheets("Hinweis").Visible = True
Sheets("Hinweis").Activate
' dein Code
ThisWorkbook.Sheets("Hinweis").Visible = False
End Sub

Ich habe jetzt auf das aktivieren der alten Mappe verzichtet, da es ja scheinbar erwünscht ist, dass die neu geladene Mappe aktiv bleibt.
Grüße,
Matthias
Anzeige
AW: "Bitte warten..." als Hinweis oder so
07.10.2004 08:36:27
norbert
Hallo Matthias,
es funktioniert immer noch nicht.
Habe jetzt folgenden Code genommen:

Private Sub CommandButton1_Click()
Dim Filename1, Filename2 As String
CommandButton1.BackColor = RGB(255, 255, 0)
CommandButton1.ForeColor = RGB(0, 0, 255)
CommandButton1.Caption = "Bitte warten..."
Filename1 = "\\duisr20019\...\....xls"
Filename2 = "\\duisr20020\...\....xls"
If Dir(Filename1) = "" And Dir(Filename2) = "" Then
MsgBox "Die Datei wurde nicht gefunden!"
CommandButton1.BackColor = RGB(0, 0, 255)
CommandButton1.ForeColor = RGB(255, 255, 0)
CommandButton1.Caption = "Diensteinteilung"
Exit Sub
End If
If Dir(Filename1) = "" Then
Else
Workbooks.Open Filename1, ReadOnly:=True
End If
CommandButton1.BackColor = RGB(0, 0, 255)
CommandButton1.ForeColor = RGB(255, 255, 0)
CommandButton1.Caption = "Diensteinteilung"
End Sub

Hierdurch wird der geklickte Button in Farbe und Text geändert auf "Bitte warten...", dadurch soll der Anwender auf dem geklickten Button erkennen, was passiert.
Allerdings - und schon wieder ein Problem, geschieht das unsichtbar, das Tabellenblatt wird zwar noch angezeigt, aber erst wenn die neue Arbeitsmappe offen ist, wird die Buttonfarbe geändert und zurückverändert.
Verstanden? Sorry wenn nicht, ich weiß es nicht besser zu erklären...
Gruß
Norbert
Anzeige
AW: "Bitte warten..." als Hinweis oder so
07.10.2004 10:24:04
Matthias
Hallo Norbert,
Das mit dem Commandbutton ändern ist eine gute Idee.
setzte nach "CommandButton1.Caption = "Bitte warten..."" die Zeile
DoEvents
Das gibt Excel die Mögllichkeit, das Ding auch zu zeichnen.
Gruß Matthias
AW: "Bitte warten..." als Hinweis oder so
07.10.2004 12:20:31
norbert
Hallo Matthias,
was lange währt...
wird endlich gut...
Nun wechselt BackColor und ForeColor, sobald ich den Button gedrückt habe und der Text "Bitte warten..." erscheint.
Wenn der Code abgelaufen ist, wechseln die Farben wieder in die Grundstellung zurück!
Genauso wollte ich es haben !!!
Ein herzliches DANKESCHÖN für Deine Mühe und Deine Geduld.
Ich freue mich, mal wieder ein Stückchen in meiner Baustelle fertig zu haben.
Komme sicher schon bald wieder auf die Hilfe des Forums und hoffentlich auf Deine Hilfe zurück!
Vielen Dank,
und bald ein Schönes Wochenende
von Norbert aus dem Ruhrgebiet bei schönem Wetter
Anzeige
Danke für die Rückmeldung - o.T.
07.10.2004 13:53:29
Matthias
-
;
Anzeige

Infobox / Tutorial

"Bitte warten..." Hinweis in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffnen des VBA-Editors: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. UserForm erstellen:
    • Gehe zu Einfügen > UserForm.
    • Füge ein Label hinzu, um den Hinweis "Bitte warten..." anzuzeigen.
  3. Code für das UserForm:
    • Füge den folgenden Code in das UserForm ein:
      Private Sub UserForm_Initialize()
       Me.Caption = "Bitte warten..."
       Me.Label1.Caption = "Daten werden geladen, bitte warten..."
      End Sub
  4. Makro erstellen:
    • Erstelle ein neues Modul und füge den folgenden Code ein:
      Sub OpenWorkbookWithWait()
       UserForm1.Show False
       DoEvents ' UserForm zeichnen
       ' Hier kommt dein Code zum Öffnen der Arbeitsmappe
       UserForm1.Hide
      End Sub
  5. Makro ausführen: Führe das Makro OpenWorkbookWithWait aus, um die Arbeitsmappe zu öffnen und den Hinweis anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: "Falsche Anzahl an Argumenten":

    • Überprüfe, ob du ein Ausrufezeichen nach UserForm1.Show hast. Der richtige Befehl sollte UserForm1.Show sein.
  • StatusBar zeigt keine Meldung:

    • Stelle sicher, dass du den Code Application.StatusBar = "Daten werden aktualisiert" zu Beginn und Application.StatusBar = "" am Ende deines Codes einfügst.

Alternative Methoden

  • StatusBar verwenden:

    • Du kannst die StatusBar anpassen, um einen Hinweis anzuzeigen, während der Befehl ausgeführt wird.
      Application.StatusBar = "Daten werden aktualisiert"
      ' Dein Code
      Application.StatusBar = ""
  • Hinweisblatt erstellen:

    • Erstelle ein tabellarisches Blatt mit dem Namen "Hinweis" und blende es ein, während der Code läuft.
      Sub ShowHintSheet()
      Sheets("Hinweis").Visible = True
      ' Dein Code
      Sheets("Hinweis").Visible = False
      End Sub

Praktische Beispiele

Hier ist ein Beispiel, um die Möglichkeit "Bitte warten..." mit einem CommandButton zu implementieren:

Private Sub CommandButton1_Click()
    CommandButton1.Caption = "Bitte warten..."
    DoEvents
    ' Dein Code zum Öffnen der Datei
    CommandButton1.Caption = "Fertig!"
End Sub

Tipps für Profis

  • Nutze DoEvents nach dem Setzen des Hinweises "Bitte warten...", damit Excel die Benutzeroberfläche aktualisieren kann.
  • Überlege, ein animiertes UserForm oder eine StatusBar zu verwenden, um den Anwender über lange Ladezeiten zu informieren.
  • Teste deinen Code in der entsprechenden Excel-Version, da einige Funktionen in älteren Versionen wie Excel 97 nicht verfügbar sind.

FAQ: Häufige Fragen

1. Wie kann ich die StatusBar blinken lassen?
Ein Blinken der StatusBar ist nicht direkt möglich, aber du kannst die Meldung regelmäßig ändern, um die Aufmerksamkeit darauf zu lenken.

2. Funktioniert das auch in Excel 97?
Einige Funktionen, wie die ShowModal-Eigenschaft, sind in Excel 97 nicht verfügbar. In diesem Fall musst du alternative Methoden wie die StatusBar verwenden.

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