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

Timer zum schließen der Datei funktioniert nicht

Timer zum schließen der Datei funktioniert nicht
02.12.2019 15:36:32
Ann
Hallo,
ich habe folgendes Problem: Seit der Umstellung auf Windows 10 (64 Bit) funktioniert der Timer nicht mehr korrekt. Anstatt die UserForm (frmExpire) zu öffnen, erhalte ich nach Ablauf der Zeit einen Fehler. Beim Debuggen wir mir GetActiveWindow im Private Sub UserForm_Activate() markiert.
Die Datei findet ihr hier:
https://www.herber.de/bbs/user/133541.xlsm
Danke für die Hilfe

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Timer zum schließen der Datei funktioniert nicht
02.12.2019 16:59:22
volti
Hallo Ann,
ich weiß nicht, was da alles falsch ist, aber zumindest deine API-Deklarationen für 64 Bit sind m.E. nicht korrekt.
Wo hast Du die her?
Außerdem musst du sämtliche Fensterhandle als LongPtr deklarieren.
Diese sollten besser passen.
Public Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr
Public Declare PtrSafe Function SetForegroundWindow Lib "user32.dll" _
                (ByVal hwnd As LongPtr) As Long
'Public Declare PtrSafe Function GetWindowLongPtr Lib "user32" Alias "GetWindowLongPtrA" _
        (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
'Public Declare PtrSafe Function SetWindowLongPtr Lib "user32" Alias "SetWindowLongPtrA" _
        (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
Public Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
       (ByVal hwnd As LongPtr, ByVal nIndex As Long) As Long
Public Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
       (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare PtrSafe Function SetWindowPos Lib "user32" _
      (ByVal hwnd As LongPtr, ByVal hWndInsertAfter As LongPtr, ByVal x As Long, _
       ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
       
Public Declare PtrSafe Function GetWindowRect Lib "user32" (ByVal hwnd As LongPtr, lpRect As Rect) As Long
Public Declare PtrSafe Function SetTimer Lib "user32" _
       (ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr
Public Declare PtrSafe Function KillTimer Lib "user32" _
       (ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr) As Long

Anzeige
AW: Timer zum schließen der Datei funktioniert nicht
02.12.2019 17:42:09
Nepumuk
Hallo Ann,
wo hast du diesen Gruselcode her?
Beschreib mal genau was wann wie passieren soll, dann kann ich dir das anpassen.
Gruß
Nepumuk
AW: Timer zum schließen der Datei funktioniert nicht
03.12.2019 08:24:30
Ann
Hallo,
erst einmal vielen Dank für die Antwort.
Wir haben eine Aufgabenliste. Mit Hilfe eines Add-Ins kann ich darin Aufträge erstellen oder auch Aufgaben die andere Personen erstellt haben ansehen und zur Bearbeitung mit meinem Namen markieren. Die Datei in der der beschriebene Code steht, öffnet diese Aufgabenliste und bleibt auch im Hintergrund geöffnet. Wenn ich die Aufgabenliste für 5 Minuten nicht bearbeitet habe, poppt ein kleines Fenster mit einem 20 Sekunden Countdown auf. Klicke ich dann "Schließen" schließen sich beide Dateine (Aufgabenliste und Datei mit dem Code des Timers). Gehe ich im kleinen Pop-up Fenster (frmExpire) auf "Abbrechen" schließt sich das Pop-Up und die 5 Minuten Bearbeitungszeit starten erneut. Wenn ich vor dem Ablauf des Timers die Aufgabenliste schließe, schließt sich auch die Datei mit dem Timer-Code. Umgekehrt erhalte ich eine Nachricht (MsgBox("Das schließen der '" & Me.Name & "' verlangt das schließen der Mappe '" & PseudoChild.Name & "'." & vbCrLf & "Klicken sie auf ""Ja"" um beide Mappen zu schlie?en." & "Klicken sie auf ""Nein"" um beide Mappen offen zu lassen.", vbInformation + vbYesNo, Me.Name)
Der Code existiert schon ewig und macht erst seit der Umstellung auf Windows 10 Probleme. Ich hoffe die Beschreibung reicht dir aus.
Gruß Ann
Anzeige
Timer zum schließen der Datei funktioniert nicht
04.12.2019 09:31:03
Nepumuk
Hallo Ann,
es fehlt das Modul modTimer in der Beispielmappe. Kannst du das noch hochladen?
Gruß
Nepumuk
AW: Timer zum schließen der Datei funktioniert nicht
05.12.2019 07:46:28
Ann
Hallo Nepomuk,
entschuldige bitte den Fehler. Jetzt sollte die Datei komplett sein:
https://www.herber.de/bbs/user/133607.xlsm
Gruß Ann
AW: Timer zum schließen der Datei funktioniert nicht
07.12.2019 10:12:40
Nepumuk
Hallo Ann,
ich habe es jetzt getestet und es funktioniert einwandfrei. Was geht bei dir nicht?
Gruß
Nepumuk
AW: Timer zum schließen der Datei funktioniert nicht
09.12.2019 08:00:53
Ann
Hallo Nepomuk,
wenn ich in der Datei unter DieseArbeitsmappe die Datei, die geöffnet werden soll, und auch den zugehörigen Pfad angebe, öffnet mir das Makro zwar die Datei, aber nach Ablauf der 5 Minuten erscheint das frmExpire Fenster nicht. Stattdessen startet der Debugger und zeigt an, dass es eine Typenunverträglichkeit gibt. Gehe ich dann auf Debuggen färbt er mir im Code von frmExpirre in der Private Sub Userform_Activate den Ausdruck hWnd = GetActiveWindow gelb ein.
Gruß Ann
Anzeige
AW: Timer zum schließen der Datei funktioniert nicht
10.12.2019 09:20:39
Nepumuk
Hallo Ann,
ändere in Modul des Userforms die Deklaration ganz oben so:
Private hWnd As LongPtr
Wenn du ein 64Bit Office hast, dann sehe ich noch andere Probleme kommen. Z.B. der Timer wird nicht mehr funktionieren.
Gruß
Nepumuk
AW: Timer zum schließen der Datei funktioniert nicht
10.12.2019 09:53:13
Ann
Hallo Nepomuk,
leider habe ich ein 64 Bit Office. Kannst du mir eventuell sagen, was ich ändern muss, um auch in der 64Bit-Version wieder einen Timer zu haben?
Gruß Ann
AW: Timer zum schließen der Datei funktioniert nicht
15.12.2019 15:26:40
Nepumuk
Hallo Ann,
hat leider ein bisschen gedauert. Im Anhang findest du die neue clsTimer und die frmExpire.frm als Dateien. Die alten plus das modTimer in deiner Mappe löschen und dann die beiden Neuen importieren.
https://www.herber.de/bbs/user/133788.zip
Gruß
Nepumuk
Anzeige

112 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige