Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Msgbox automatisch schliessen

Msgbox automatisch schliessen
25.04.2018 18:55:46
Weiss
Hallo,
habe für etwa 100 Mitarbeiter jeweils eine Datei gespeichert. Unter "Private Sub Workbook_Open()" wird geprüft, ob ein bestimmtes Datum überschritten wurde. Dann wird eine Meldung per Msgbox ausgegeben. Was beim Arbeiten mit der Datei sehr sinnvoll ist, stört beim Updaten (s.u.) doch gewaltig.
Mit meinem Update-Programm werden jedes Jahr in jeder der 100 Dateien zahlreiche Variablen und Formeln ergänzt/geändert. Das Update-Programm habe ich so geschrieben, das folgendes passiert:
1. Erste Datei öffnen
2. Änderungen durchführen
3. Datei Speichern
4. Nächste Datei öffnen
5. ...usw
Funktioniert auch gut. Bis zu einer Datei, bei der die Msgbox aufpoppt. Dann muß ich jedesmal ENTER drücken. Das heißt, ich muß den gesamten Update-Prozeß ständig überwachen.
Hat jemand ne Idee, wie mann das automatisieren kann, oder geht das nicht.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Msgbox automatisch schliessen
25.04.2018 19:09:59
Hajo_Zi

Option Explicit
Sub MsgZeit()
'   Blendet eine Msgbox nach 10 Sekunden automatisch wieder aus
'   von K.Rola
'   kein Verweis notwendig
Const bytZeit As Byte = 10
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("Ich bin in " & bytZeit & " Sekunden verschwunden!" & Space(10), _
bytZeit, "gebe bekannt...", vbOKCancel + vbQuestion)
Set objWSH = Nothing
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Msgbox automatisch schliessen
25.04.2018 19:17:40
Zwenn
Hallo Weiss,
ich bin mir zwar nicht sicher, aber da eine MsgBox ja gezielt aufgerufen wird, um dem Anwender etwas mitzuteilen, kann ich mir nicht vorstellen, dass sie sich auf einfache Weise automatisch schließen lässt. Das würde ihrem Sinn einfach wiedersprechen.
Deshalb folgender Vorschlag:
Ich bin oft damit beschäftigt Daten von irgendwelchen Webseiten auszulesen. Da ist man immer abhängig vom Verhalten des Internet Explorers und vor allem, vom Verhalten des Servers, den man über eine URL anspricht. Es passieren also Fehler, die sich schwer vorher sehen lassen. Für solche Fälle verwende ich eine Variable namens debugModus vom Typ Boolean, um mir durch Zähler in bestimmten Zellen während der Laufzeit anzeigen zu lassen, ob meine Fehlerbehandlung für Fehler, die ich annehme, greift.
Das gleiche kannst Du auch verwenden. Ob das aufwändig zu integrieren ist, hängt von der größe Deines Codes ab. Definiere eine Varibale updateModus vom Typ Boolean. Die initialisierst Du im Standard auf False. Dann "klammerst" Du alle betreffenden MsgBoxes in ein If-Statement:

If updateModus = flase then
MsgBox ...
End If

Wenn Du den Wert der Variable auf True setzt, werden die MsgBoxes anschließend bei Deinen Updates ignoriert.
Viele Grüße,
Zwenn
Anzeige
Hajo war schneller :-)
25.04.2018 19:20:07
Zwenn
Mal wieder cool von Hajo^^ Es geht also doch mit dem automatischen Ausblenden. Aber Aufwand hast Du da auch.
Du irrst, Zwenn, ...
25.04.2018 20:01:09
Luc:-?
…Hajo hat ein altbekanntes Pgm für eine recht primitive MsgBox-Alternative gezeigt. Wesentlich komfortabler kann man das schon mit selbstgestalteten, normalen Textfeldern machen. Die könnte man sogar animieren, ähnlich wie es in PowerPoint möglich ist…
🙈 🙉 🙊 🐵 Gruß, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
AW: Du irrst, Zwenn, ...
25.04.2018 20:19:22
Zwenn
Hallo Luc,
das mag schon sein. Mein Kommentar zur 'früheren Lösung' von Hajo rührt aber daher, dass ich mir gar nicht vorstellen konnte, einen solchen Dialog automatisch schließen zu lassen. Es ging mir also eher darum, dass ich wieder etwas dazu gelernt habe :-)
Im übrigen denke ich eher pragmatisch. Meine Lösung reagiert unmittelbar auf die Einstellung der vorgeschlagenen Variablen. Gut, man muss dann vor dem Update einmal in den Code. Aber 'irgend etwas ist ja immer' ;-) Ob animierte Textfelder da jetzt mehr Sinn machen, wage ich für die Lösung des vorliegenden Problems mal zu bezweifeln.
Ich fände es aber super, wenn Du mich weiter lehrst und eine modernere Lösung, als die von Hajo postest :-)
Viele Grüße,
Zwenn
Anzeige
Für das geschilderte Problem reicht das alte ...
25.04.2018 23:49:22
Luc:-?
…Pgm von Karola, die hier leider schon seit vielen Jahren nicht mehr in Erscheinung getreten ist, durchaus aus, Zwenn,
aber es verwendet eben nicht eine klassische MsgBox, womit deine Vorstellung schon richtig war, denn das dürfte, falls überhpt möglich, wesentlich aufwendiger sein.
Ansonsten würde man so etwas ggf leichter mit einem UF realisieren können. Mit simplen Textfeldern hatte ich so etwas schon mal gemacht, man muss nur eine EndlosSchleife laufen lassen (natürlich mit DoEvents, damit auf NutzerAktionen reagiert wdn kann), die auf Button-Veränderungen reagiert. Dann muss man nur noch die Button-Form wechseln, wenn drauf geklickt wird. In der Schleife wird dann abgefragt, wie diese aussieht, zB erhaben oder eingetieft (bei Klick). Falls nicht geklickt wird, wird nach einer bestimmten Zeit entweder die Button-Form automatisch geändert (Komfortlösung) oder die Schleife einfach abgebrochen und danach das Textfeld wieder ausgeblendet.
Der Vorteil ist, dass man wie bei einem UF beliebige Buttons mit beliebigen Texten verwenden kann. Auch sind beliebige Farben und Schriftarten möglich. Und was eine evtl Animation ala PPt betrifft, dafür muss man halt verschiedene Zwischenstufen zeichnen und die nacheinander per Pgm sicht- bzw wieder unsichtbar wdn lassen. So könnte man die Anzeige bspw aus- und wieder einrollen lassen. Geht alles, man muss es nur wollen und den richtigen Weg finden.
Das Pgm dafür aus einem alten Projekt zu isolieren, fehlt mir leider jetzt die Zeit. Aber evtl schaffst du so etwas auch allein, falls du das wirklich willst… ;-]
Luc :-?
Anzeige

9 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige