Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
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

VBA MsgBox aufrufen, automatisch schließen

VBA MsgBox aufrufen, automatisch schließen
07.08.2015 07:11:03
Anton
Hallo.
bastle gerade mit VBA eine Berechnung, die bei bestimmtem Ergebnis eine MsgBox einblendet , calculate, ganze Prozedur sieht so aus:

Private Sub worksheet_Calculate()
If Range("B6").Value > 32 Then
msgbox "Bezugszeit" & vbCrLf & "ist zu groß!", vbOKOnly, "HOPPLA"
End If
End Sub

---
Nun habe ich gesehen, dass man diese Box auch timergesteuert nach ein paar Sekunden automatisch ausblenden kann statt mit Klick auf Ok. Wie baue ich das hier mit ein?
Danke f.d Hilfe.
Anton

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA MsgBox aufrufen, automatisch schließen
07.08.2015 07:37:31
Nepumuk
Hallo,
teste mal:
Private Sub worksheet_Calculate()
    Dim objShell As Object
    If Range("B6").Value > 32 Then
        Set objShell = CreateObject("WScript.Shell")
        Call objShell.Popup("Bezugszeit" & vbCrLf & "ist zu groß!", 2, "HOPPLA", vbOKOnly)
        Set objShell = Nothing
    End If
End Sub


Gruß
Nepumuk

Anzeige
AW: VBA MsgBox aufrufen, automatisch schließen
07.08.2015 10:27:26
Anton
Hallo Nepumuk,
spitze, das klappt!
Danke

WsShell.Popup ...
07.08.2015 07:39:15
Matthias
Hallo
Dim Ibox, WsShell
If Range("B6").Value > 32 Then
'Verweis auf "Microsoft Scripting Runtime" erforderlich
Set WsShell = CreateObject("WScript.Shell")
Ibox = WsShell.Popup("Bezugszeit ist zu groß!", 3, "3 Sek Fenster")
End If

Gruß Matthias

AW: WsShell.Popup ...
07.08.2015 07:46:30
Luschi
Hallo Matthias,
diese Info:

'Verweis auf "Microsoft Scripting Runtime" erforderlich
ist falsch, da
Set WsShell = CreateObject("WScript.Shell")
ein 'Late Binding' ist und keinen expliziten Verweis erfordert.
Gruß von Luschi
aus klein-Paris

Anzeige
Info entfernt ...
07.08.2015 08:07:56
Matthias
Hallo Luschi
Habs gerade mal geprüft und Du hast Recht,
Der Verweis ist auch bei mir nicht gesetzt und es funktioniert.
Evtl war es ja früher mal notwendig, stammt noch aus der Zeit um XL2000
Danke. Hab die Info aus meiner Personl.xls entfernt.
Gruß Matthias

AW: WsShell.Popup ...
07.08.2015 10:30:51
Anton
Sieht gut aus, aber
er markiert B6 und meldet "Fehler beim Kompilieren außerhalb einer Prozedur ungültig".

AW: WsShell.Popup ...
07.08.2015 10:53:41
Daniel
Hi
die meisten zeigen hier nur den relevanten Ausschnitt des Codes und lassen gerne mal die Selbstverständlichkeiten wie die Start- und Endzeile des Makros weg.
Auch deswegen weil man davon ausgehen kann, dass du den gezeigten Code ja so nicht alleine als Makro einsetzen willst, sondern in ein grösseres Projekt einfügst.
dh. du musst hier die Start- und Endzeile des Makros selber schreiben und den gezeigten Code dazwischen einfügen:
Sub Test()
... hier dann der Code
End Sub

Anzeige
AW: WsShell.Popup ...
07.08.2015 17:56:58
Anton
Sorry, bin halt doch noch blutiger Anfänger bei VBA.
Nun habe ich es so gemacht
Sub test()
Dim Ibox, WsShell
If Range("B6").Value > 32 Then
'Verweis auf "Microsoft Scripting Runtime" erforderlich
Set WsShell = CreateObject("WScript.Shell")
Ibox = WsShell.Popup("Bezugszeit ist zu groß!", 3, "3 Sek Fenster")
End If
End Sub
Ergebnis: keines, auch keien fehler. Hängt es damit zusammen, dass es nun ein Infobox ist?
Anton

ist denn B6 > 32 ? ...kwT
07.08.2015 20:47:31
Matthias
.

AW: ist denn B6 > 32 ? ...kwT
08.08.2015 17:29:32
Anton
Hallo, auch wenn B6 den Wert von 32 überschreitet, erscheint keine infoBox.
Ehrlich

Anzeige
Funkt doch, siehe Datei...
08.08.2015 17:40:24
robert

Die Datei https://www.herber.de/bbs/user/99427.xlsm wurde aus Datenschutzgründen gelöscht


AW: Funkt doch, siehe Datei...
08.08.2015 18:49:46
Anton
Danke Robert, danke Matthias.
Ja mit direkter Eingabe in B6 klappt das.
Hatte aber eingangs erwähnt, dass dieser Wert in B6 keine Eingabe ist, sondern ein Berechnungsergebnis von drei anderen Zellen. Deshalb auch der erste Ansatz mit sub calculate().
Evtl.liegt da unser Missverständnis ?
Trotzdem danke im Voraus.
Anton

AW: Funkt doch, siehe Datei,mit Formel B6...
08.08.2015 21:51:55
Anton
Alles klar, super danke
Anton

10 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige