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

Fehler wenn Fenster nicht aktiv

Fehler wenn Fenster nicht aktiv
30.03.2023 19:01:24
Michael

Hallo zusammen,

Ich habe für meine Firma ein Eingabe-Formular gebaut, mit dem Proben erfasst werden. Damit nicht jeder in der Datei rumfummelt, besitzt diese Datei ein einfaches Passwort-System, welches den Nutzer nach ca. 10 Minuten aus der Datei ausloggt. Der sich selbst wiederholende Aufruf fuktioniert auch soweit ganz gut, ABER... Wenn ich ein anderes Fenster im Fokus habe, um dort etwas einzutragen, dann bekomme ich den Laufzeitfehler '9', Index außerhalb des gültigen Bereichs. Ich vermute mal, es liegt daran, dass mein Fenster mit der entsprechenden Datei nicht im Fokus liegt, aber wie bekomme ich den Fehler weg? Hier der Code:

Sub check_lastaction()

    Application.ScreenUpdating = False
    
    'Diese Sub checkt alle 30 Sekunden, ob der Timer von 10 Minuten abgelaufen ist.
    'Bei Ablauf des Timers wird der Benutzer automatisch abgemeldet

    'Wenn der Timer abgelaufen ist UND ein Nutzer eingeloggt ist, wird der Nutzer ausgeloggt
    If (Worksheets("Eingabemaske").Cells(1, 16).Value  Now) And Not (Worksheets("Eingabemaske").Cells(2, 16).Value = "" Or Worksheets("Eingabemaske").Cells(2, 16).Value = 0) Then
        Call Modul1.Auto_Speichern_und_logout
    End If
    
    'Den 30 Sekunden Timer neu setzen
    'Dim check_logout As Variant
    check_logout = Now + TimeValue("00:00:30")
    
    'Die Statusbar je nach Login aktualisieren
    If Worksheets("Eingabemaske").Cells(2, 16).Value = "" Or Worksheets("Eingabemaske").Cells(2, 16).Value = 0 Then
        Application.StatusBar = "Auto-Logout: > - Nächster Check: " & check_logout
    Else
        Application.StatusBar = "Auto-Logout: " & Worksheets("Eingabemaske").Cells(1, 16).Value & " - Nächster Check: " & check_logout
    End If
    
    'Diese Sub ruft sich in 30 Sekunden neu auf
    Application.OnTime check_logout, "Modul2.check_lastaction"
    
    Application.ScreenUpdating = True
    
End Sub


Es gibt eine andere Sub, die bei jeder Aktion einen Zeitstempel in einer Zelle aktualisiert, dagegen wird prüft der Timer in dieser Sub.

Ich hab schon versucht, mit ScreenUpdating, ob das das Problem behebt, aber es klappt nicht. Nachdem diese Sub einmal durch den Fehler ausgefallen ist, spinnt die Datei und muss geschlossen und neu geöffnet werden, damit man wieder Proben erfassen kann...

Wie bekomme ich das hin, dass auch im Hintergrund der Login geprüft wird und ggf. der Nutzer ausgeloggt?

Und, nein, ich darf die Datei leider nicht hochladen...

MfG

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler wenn Fenster nicht aktiv
30.03.2023 19:37:56
Nepumuk
Hallo Michael,

teste mal:

Public Sub check_lastaction()

    'Dim check_logout As Date

    Application.ScreenUpdating = False

    'Diese Sub checkt alle 30 Sekunden, ob der Timer von 10 Minuten abgelaufen ist.
    'Bei Ablauf des Timers wird der Benutzer automatisch abgemeldet

    With ThisWorkbook.Worksheets("Eingabemaske")

        'Wenn der Timer abgelaufen ist UND ein Nutzer eingeloggt ist, wird der Nutzer ausgeloggt
        If (.Cells(1, 16).Value  Now) And Not (.Cells(2, 16).Value = "" Or .Cells(2, 16).Value = 0) Then
            Call Modul1.Auto_Speichern_und_logout
        End If

        'Den 30 Sekunden Timer neu setzen
        'Dim check_logout As Variant
        check_logout = Now + TimeValue("00:00:30")

        'Die Statusbar je nach Login aktualisieren
        If .Cells(2, 16).Value = "" Or .Cells(2, 16).Value = 0 Then
            Application.StatusBar = "Auto-Logout: > - Nächster Check: " & check_logout
        Else
            Application.StatusBar = "Auto-Logout: " & .Cells(1, 16).Value & " - Nächster Check: " & check_logout
        End If
    End With

    'Diese Sub ruft sich in 30 Sekunden neu auf
    Application.OnTime check_logout, "Modul2.check_lastaction"

    Application.ScreenUpdating = True

End Sub
Gruß
Nepumuk


Anzeige
AW: Fehler wenn Fenster nicht aktiv
30.03.2023 19:58:45
Michael
Manchmal ist es zu einfach... Danke dir...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige