Excel "Blatt-Bildschirmschoner"

Dieses Thema Excel "Blatt-Bildschirmschoner" im Forum "Microsoft Office Suite" wurde erstellt von Jenz, 5. März 2005.

Thema: Excel "Blatt-Bildschirmschoner" Hallo zusammen, ich möchte gerne mal wieder euer Wissen ;) Folgendes: Nach einer bestimmten Zeitspanne ohne...

  1. Hallo zusammen,

    ich möchte gerne mal wieder euer Wissen ;)
    Folgendes:

    Nach einer bestimmten Zeitspanne ohne Eingabe auf Blatt A - z.B. 10 Sekunden - soll automatisch ein bestimmtes Blatt B angezeigt werden. Gibts da ne Möglichkeit?
    Dachte evtl. an das Ereignis AfterChange, kenne mich ja nun aber mit Makros nich so aus - soll heißen bis auf das Sheet Select fehlts im Text...

    Kann jemand helfen?
    Vielen Dank im voraus.
    jenz
     
  2. Also ich habe selber einen eigens entwickelten Bildschirmschoner, der startet, wenn eine Datei eine Zeit lang nicht genutzt wird. Ich rede hier von einer Excel-Tabelle oder eine Sammlung dieser.

    Aber es gibt auch die Möglichkeit, die ich auch einsetze, der Passwortaufforderung bei Inaktivität.

    Leider geht nur die Startseite von Deiner Homepage, sonst hätte ich Dir zwei Beispiel gerne gesendet.

    Sanny
     
  3. Hallo Jenz,

    ich hab mal eine Beispielarbeitsmappe mit 2 Blättern erzeugt.
    Die Blattnamen sind Arbeitsblatt und Bildschirmschoner.
    In die Code-Seite der Arbeitsmappe gehört folgender Code:
    Code:
    Private Sub Workbook_Open()
     Call myBildschirmschoner
    End Sub
    In die Code-Seite des Blattes Arbeitsblatt:
    Code:
    Private Sub Worksheet_Activate()
      l_ZeitZaehler = 0
    End Sub
    
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
      l_ZeitZaehler = 0
    End Sub
    Dann noch ein Modul einfügen. In dessen Code-Seite muß folgendes stehen:
    Code:
    Dim b_scrBusy As Boolean
    Global l_ZeitZaehler As Long
    Sub myBildschirmschoner()
      
     ->Ist der Macro schon aktiv?
      If b_scrBusy Then Exit Sub
      b_scrBusy = True
      
     ->Ist diese Arbeitsmappe aktiv ?
      If ActiveWorkbook.Name = ThisWorkbook.Name Then
        
       ->ist das Arbeitsblatt aktiv
        If ThisWorkbook.Worksheets(Arbeitsblatt).Name = ActiveSheet.Name Then
          l_ZeitZaehler = l_ZeitZaehler + 1
         ->Zeit für Arbeitsblatt abgelaufen?
          If l_ZeitZaehler > 1 Then
            l_ZeitZaehler = 0
            ThisWorkbook.Worksheets(Bildschirmschoner).Activate
          End If
        Else
          l_ZeitZaehler = 0
        End If
      End If
      
      Application.OnTime Now() + TimeValue(00:00:10), myBildschirmschoner
      
      b_scrBusy = False
    End Sub
    Datei speichern und schliessen.

    Wenn Du jetzt die Mappe öffnest, ist die Timer-Überwachung aktiv. Wird das Blatt Arbeitsblatt aktiviert und 10 sec keine Eingabe getätigt, schaltet das Makro das Blatt Bildschirmschoner aktiv.

    Gruß Matjes  ;)
     
  4. Das hab ich ja gleich zu was ganz Bösem umbauen müssen:
    Freu mich jetzt schon auf die Gesichter ;D
     
  5. Vielen Dank Matjes, funktioniert wunderbar,
    musste lediglich die Dauer etwas hochschrauben, da Excels Uhren scheinbar schneller gehen :)

    PS: Irgendwie werden meine Arbeitsmappe immer benutzerfreundlicher ;)
     
  6. Hallo nochmal,

    hab das ganze jetzt ja schon ne Weile im Einsatz, und bin recht zufrieden. Nur eins ist mir aufgefallen, und das ist manchmal ganz schön belastend, da brauch ich noch mal eure Hilfe, bitte.

    Denn wenn ich die mappe mit schoner im excel schließe - Excel jedoch geöffnet bleibt - dann läuft der Countdown scheinbar weiter, denn nach der besagten Zeit öffnet Excel die Mappe automatisch wieder, und bringt die Bildschirmschonseite.
    Hab schon etwas probiert, mit Close. und so - hat aber nicht geklappt :-\....

    Was muss noch rein?
    Danke,
    jenz.
     
  7. Hallo Jenz,

    danke für die Nachricht  :)

    Hab dem Bildschirmschoner ein Abschalt-Makro spendiert. Der setzt ein Flag b_BilschirmschonerSchliessen.
    Bei nächsten Überwachungsschritt wird dann statt des erneuten Timeraufrufs die Mappe automatisch geschlossen.

    Gruß Matjes :)

    geändert: Code im Modul
    Code:
    Dim b_scrBusy As Boolean
    Global l_ZeitZaehler As Long
    Global b_BildschimschonerSchliessen As Boolean
    Sub myBildschirmschoner()
      
     ->Ist der Macro schon aktiv?
      If b_scrBusy Then Exit Sub
      b_scrBusy = True
      
     ->Ist diese Arbeitsmappe aktiv ?
      If ActiveWorkbook.Name = ThisWorkbook.Name Then
        
       ->ist das Arbeitsblatt aktiv
        If ThisWorkbook.Worksheets(Arbeitsblatt).Name = ActiveSheet.Name Then
          l_ZeitZaehler = l_ZeitZaehler + 1
         ->Zeit für Arbeitsblatt abgelaufen?
          If l_ZeitZaehler > 1 Then
            l_ZeitZaehler = 0
            ThisWorkbook.Worksheets(Bildschirmschoner).Activate
          End If
        Else
          l_ZeitZaehler = 0
        End If
      End If
      
      If b_BildschimschonerSchliessen Then
        ThisWorkbook.Close Savechanges:=False
      Else
        Application.OnTime Now() + TimeValue(00:00:10), myBildschirmschoner
      End If
      b_scrBusy = False
    End Sub
    Sub myBildschirmschonerSchliessen()
      b_BildschimschonerSchliessen = True
    End Sub
     
  8. Hallo Matjes,
    hab deins mal ergänzt, und den BeforeClose geändert

    Code:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
      Call myBildschirmschonerSchliessen
    End Sub
    allerdings funktionierts nicht, weiß aber nicht, warum. Nen Fehler gibts nicht, die Mappe wird einfach nochmal geöffnet....
     
  9. Hallo Jenz,

    die Variable , die das Abschalten signalisiert lebt nur solange die Bildschirmschoner-Mappe geöffnet ist. So wie du es jetzt konstruiert hast, wird die Mappe aber geschlossen. Der Timer-Aufruf öffnet sie dann wieder und die Variable hat dann den default-Wert (nicht beenden).

    Für die Benutzung BeforeClose-Ereignis sind die foolgenden Änderungen notwendig.

    Gruß Matjes :)

    Modul:
    Code:
    Dim b_scrBusy As Boolean
    Global l_ZeitZaehler As Long
    Global b_BildschirmschonerSchliessen As Boolean
    Global b_BildschirmschonerTimerUnterbrochen As Boolean
    Sub myBildschirmschoner()
      
     ->Ist der Macro schon aktiv?
      If b_scrBusy Then Exit Sub
      b_scrBusy = True
      
     ->Ist diese Arbeitsmappe aktiv ?
      If ActiveWorkbook.Name = ThisWorkbook.Name Then
        
       ->ist das Arbeitsblatt aktiv
        If ThisWorkbook.Worksheets(Arbeitsblatt).Name = ActiveSheet.Name Then
          l_ZeitZaehler = l_ZeitZaehler + 1
         ->Zeit für Arbeitsblatt abgelaufen?
          If l_ZeitZaehler > 1 Then
            l_ZeitZaehler = 0
            ThisWorkbook.Worksheets(Bildschirmschoner).Activate
          End If
        Else
          l_ZeitZaehler = 0
        End If
      End If
      
      If b_BildschirmschonerSchliessen Then
        b_BildschirmschonerTimerUnterbrochen = True
        ThisWorkbook.Close Savechanges:=False
      Else
        Application.OnTime Now() + TimeValue(00:00:10), myBildschirmschoner
      End If
      b_scrBusy = False
    End Sub
    Sub myBildschirmschonerSchliessen()
      b_BildschirmschonerSchliessen = True
    End Sub
    Code-Seite ThisWorkbook
    Code:
    Private Sub Workbook_Open()
     Call myBildschirmschoner
    End Sub
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
      If Not b_BildschirmschonerTimerUnterbrochen Then
        Call myBildschirmschonerSchliessen
       ->close verhindern und auf nächsten Timer warten
        Cancel = True
      End If
    End Sub
     
  10. irgendwo klemmts noch..
    habs jetzt haargenau so, wie du zuletzt schriebst. und jetzt lässt sich die mappe gar nicht mehr schließen :(
     
Die Seite wird geladen...

Excel "Blatt-Bildschirmschoner" - Ähnliche Themen

Forum Datum
Excel-Feature gesucht Microsoft Office Suite 11. Okt. 2016
Excel Tabelle Werte zu ordnen Microsoft Office Suite 23. Sep. 2016
Excel: Bereiche auf 'leer' Überprüfen Microsoft Office Suite 15. Sep. 2016
Import Datensatz inkl = und - Zeichen in Excel/Libre CALC Software: Empfehlungen, Gesuche & Problemlösungen 20. Mai 2016
Bestimmter User kann seine Excel Dateien nicht mehr direkt öffnen Software: Empfehlungen, Gesuche & Problemlösungen 16. Apr. 2016