Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Popup stoppt ganzes Makro bis zum Schließen

Betrifft: Popup stoppt ganzes Makro bis zum Schließen von: Susanne99
Geschrieben am: 09.07.2008 13:24:31

Hallo,
kriege bei einem Code immer ein Popup als Warnung. Eigentlich sollte sich das Popup in dem Code unten selbstständig schließen. Tut es aber leider nicht. Mein 1. Problem.
2. Problem ist: Solange das Popup auf ist, wird das gesamte Makro angehalten. Bis zum Schließen. Ich will ja eigentlich nur einen Hinweis, aber kein Stopp des Makros. Wie kann man das ändern?

OFF Topic noch: Der Code ist als Archiv gespeichert hier im Forum. Eine neue Frage anhängen an den Thread geht dann nicht, oder?

Hier das Posting von Chris(Danke)

Betrifft: AW: Warnmeldung bei "Summe größer als x"
von: Susanne99
Geschrieben am: 08.07.2008 00:19:18

Die Sache mit der Warnmeldung ist interessant. Kann man das noch so erweitern, daß das Popups sich automatisch nach z.b. 1 Minute wieder schließt? Und , daß es beim "Aufpoppen" einen Sound erzeugt?
LG Susanne



Betrifft: AW: Warnmeldung bei "Summe größer als x"
von: Chris
Geschrieben am: 08.07.2008 09:25:29

Servus Susanne,

mal ein Beispiel:

Option Explicit

Declare Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName _
As String, ByVal uFlags As Long) As Long

in ein allgemeines Modul



Private Sub Worksheet_Change(ByVal Target As Range)
Dim WshShell
Dim intText As Integer
If Target.Address = "$H$16" Then
   If Target = "" Then Exit Sub
   If IsNumeric(Target) And Target > 800 Then
      Call sndPlaySound32("C:\Alte Daten\Daten\SONSTIGES\Scheißbirschdn.wav", 1)
      Set WshShell = CreateObject("WScript.Shell")
          intText = WshShell.Popup("Erinnerungstext", 10, "Erinnerung", vbSystemModal)
   End If
End If
End Sub



ins Modul des Tabellenblattes.

Wenn du in H16 einen Wert größer 800 eingibst, erklingt ein Sound und es geht ein Popup-Fenster auf, das sich nach 10 Sek. schließt (die 10 in inText).

Die .wav-Datei muss im angegebenen Pfad existieren, dass musst du noch anpassen, sonst gibt's natürlich einen BUG.

Gruß

Chris

  

Betrifft: AW: Popup stoppt ganzes Makro bis zum Schließen von: Dirk aus Dubai
Geschrieben am: 09.07.2008 15:13:12

Hallo!

Ich habe Deinen Code mal ausprobiert und er funktioniert bei mir einwandfrei.

Setze doch mal ein 'on error resume next' and den anfang des Macros.
Und verkuerze mal die Wartezeit auf z.b. 5

Gruss

Dirk aus Dubai


  

Betrifft: AW: Popup stoppt ganzes Makro bis zum Schließen von: hary
Geschrieben am: 09.07.2008 15:39:33

Hallo Susanne
Habe gestern bei der Warnung mitgewerkelt. Habe mal eine Mappe gemacht, in der sich das pupup nach einer Minute schliesst. Beim Sound kann ich Dir leider nicht helfen. Schreibe in d10 eine andere zahl groesser 800 rein.
https://www.herber.de/bbs/user/53691.xls
Um ein anderes Makro mitlaufen zulassen, musst Du es wohl als eigenes schreiben und nicht in das der Meldung.
Gruss Hary


  

Betrifft: AW: Popup stoppt ganzes Makro bis zum Schließen von: Chris
Geschrieben am: 09.07.2008 23:48:09

Servus Susanne,



mit einem PopUp sehe ich da schwarz, weil das im Prinzip eine MsgBox ist und die wartet eben auf ein ENTER, bevor der Code weiterläuft.



Nimm die Idee von Hary auf und schreibe den Code, der weiterlaufen soll, in das Activate-Ereignis der UF.

Dann hast du deine Warnmeldung solange der Code läuft. ich hab das mal beispielsweise in der angehängten Datei gemacht.



der Code dauert ca. 4-5 s.



https://www.herber.de/bbs/user/53705.xls




Wenn du in D10 einen Wert größer 800 eingibst, wird das Makro ausgelöst.



Gruß



Chris


  

Betrifft: AW: aber ein gemeines Makro ;-) owT von: hary
Geschrieben am: 10.07.2008 14:05:22

.


  

Betrifft: AW: man muss ja nicht speichern ;-)) owT von: Chris
Geschrieben am: 10.07.2008 14:41:44

.


  

Betrifft: AW: aber ein gemeines Makro ;-) owT von: Susanne99
Geschrieben am: 10.07.2008 18:55:07

Klasse,
besonders die "Hallo"-Orgie....
Da fällt mir als Laie ein: Das Sheet kann ja Tabelle,1, 2 3 etc. enthalten. Wenn ich an jede Tabelle
jeweils ein Makro knüpfe, laufen die doch im Hintergrund in Tab 1 und 2 weiter, selbst, wenn in Tabelle 3 z.b. das Popup abläuft, oder?

Sound kann man doch problemlos auch noch an dieses Popup-Makro dranhängen, oder?

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column <> 4 Then Exit Sub
If Range("d10") > 800 Then
UserForm1.Show vbModeless
End If
End Sub




  

Betrifft: AW: Kleine Idee;-) mT von: Susanne99
Geschrieben am: 10.07.2008 18:59:44


Klasse,
besonders die "Hallo"-Orgie....
Da fällt mir als Laie ein: Das Sheet kann ja Tabelle,1, 2 3 etc. enthalten. Wenn ich an jede Tabelle
jeweils ein Makro knüpfe, laufen die doch im Hintergrund in Tab 1 und 2 weiter, selbst, wenn in Tabelle 3 z.b. das Popup abläuft, oder?

Sound kann man doch problemlos auch noch an dieses Popup-Makro dranhängen, oder?

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column <> 4 Then Exit Sub
If Range("d10") > 800 Then
UserForm1.Show vbModeless
End If
End Sub




  

Betrifft: AW: Kleine Idee;-) mT von: Chris
Geschrieben am: 10.07.2008 20:19:06

Servus Susanne,

würde dann so aussehen (schreibt dann auch in Tabelle2 und 3, mit Sound (im Change-Ereignis) natürlich [Pfad anpassen!!!])

https://www.herber.de/bbs/user/53738.xls

Gruß

Chris


  

Betrifft: AW: kleine Anmerkung ;-) von: Chris
Geschrieben am: 10.07.2008 21:53:42

Servus Susanne,

du kannst natürlich auch über Application.Run Makros aufrufen !

z.B.:

Application.Run ("Tabelle2.Makroname") .

Gruß

Chris


  

Betrifft: AW: Kleine Idee;-) mT von: Susanne
Geschrieben am: 11.07.2008 23:27:12

Hallo,
Chris, was meinst du mit "schreibt dann auch in Tabelle2 und 3, mit Sound (im Change-Ereignis) "
Wenn sich in Tabelle2 die Zelle D10 auf z.b. 900 ändert, tut sich da nichts.
LG Susanne



  

Betrifft: AW: Kleine Idee;-) mT von: Chris
Geschrieben am: 12.07.2008 08:36:59

Servus Susanne,

naja das Makro wird ja auch in Tabelle1 ausgelöst, schreibt aber auch was in Tabelle2 und 3. Wenn du das in Tabelle2 auslösen willst musst du dort entweder ein Worksheet_Change-Ereignis reinsetzen oder in das Modul DieseArbeitsmappe ein Worbook_SheetChange.

Gruß

Chris