Microsoft Excel

Herbers Excel/VBA-Archiv

Laufzeitfehler bei VBA blinkender Zelle

Betrifft: Laufzeitfehler bei VBA blinkender Zelle von: Markus
Geschrieben am: 25.06.2008 07:39:58

Hallo!

Ich habe folgendes Problem:

Ich habe per VBA folgenden Code eingebaut:

  • Option Explicit
    'gehört in ein allgemeines Modul
    Public datTimer As Date

    Public Sub prcTimer()
        Dim rngZelle As Range
       For Each rngZelle In Workbooks("W3_2008").Sheets("Gesamtübersicht").Range("j7:j35")  ' _
    Bereich, in dem es blinken soll
            With rngZelle
                If .Value > "0,3" Then
                    .Interior.ColorIndex = IIf(.Interior.ColorIndex = 37, 19, 37)
                Else
                    .Interior.ColorIndex = 19
                End If
            End With
        Next
        datTimer = Time + TimeSerial(0, 0, 1)   'Wechselt alle 1 Sekunde
        Application.OnTime datTimer, "prcTimer"
    End Sub




  • Das bedeutet bei mir, dass im Blatt "W3_2008" alle Zellen blinken, der Wert dort größer als 0,3 ist.

    Das funktioniert auch alles einwandfrei, nur bekomme ich einen Laufzeitfehler, sobald ich versuche dieses Blatt per Blattschutz zu schützen.

    Ich nehme an, dass es daran liegt, dass der obige Code noch immer läuft und ich deswegen keine Sperre einbauen kann.

    Habe es zwar schon versucht zu umgehen, aber dann habe ich zwar den Blattschutz jedoch blinken dann die Zellen nicht mehr, ich hätte aber gerne blinkende Zellen UND Blattschutz.

    Hat da jemand ne Idee?

      

    Betrifft: AW: Laufzeitfehler bei VBA blinkender Zelle von: Luschi
    Geschrieben am: 25.06.2008 08:14:35

    Hallo Markus,

    eigentlich finde ich blinkende Zellen in Tabellen 'ganz großen Bullenschit',
    aber man kann es realisieren:

    Dim ok as Boolean
    
    Public Sub prcTimer()
        Dim rngZelle As Range
    
        If Not ok Then
           Workbooks("W3_2008").Sheets("Gesamtübersicht").Protect Passwort:= "???", UserInterfaceOnly:= True

    End If For Each rngZelle In Workbooks("W3_2008").Sheets("Gesamtübersicht").Range("j7:j35") 'Bereich, in dem es blinken soll With rngZelle If .Value > "0,3" Then .Interior.ColorIndex = IIf(.Interior.ColorIndex = 37, 19, 37) Else .Interior.ColorIndex = 19 End If End With Next datTimer = Time + TimeSerial(0, 0, 1) 'Wechselt alle 1 Sekunde Application.OnTime datTimer, "prcTimer" End Sub

    Gruß von Luschi
    aus klein-Paris


      

    Betrifft: AW: Laufzeitfehler bei VBA blinkender Zelle von: Markus
    Geschrieben am: 25.06.2008 08:49:38

    Hallo !

    Das gibt bei mir wieder einen Laufzeitfehler, Anwendungs- oder objektdefinierter Fehler *grübel*


      

    Betrifft: AW: Laufzeitfehler bei VBA blinkender Zelle von: Tino
    Geschrieben am: 25.06.2008 09:10:41

    Hallo,
    versuche es mal hiermit.
    Lösche aber den Timer auch beim beenden der Datei, sonst kann es zu einer Überraschungen kommen.

    Public Sub prcTimer()
          Dim rngZelle As Range
          With Workbooks("W3_2008").Sheets("Gesamtübersicht")
          .Unprotect "Mein Kennwort" 'Schutz aus
         For Each rngZelle In .Range("j7:j35")
              With rngZelle
                  If .Value > "0,3" Then
                      .Interior.ColorIndex = IIf(.Interior.ColorIndex = 37, 19, 37)
                  Else
                      .Interior.ColorIndex = 19
                  End If
              End With
          Next
          datTimer = Time + TimeSerial(0, 0, 1)   'Wechselt alle 1 Sekunde
          .Protect "Mein Kennwort" 'Schutz an
          End With
          
          Application.OnTime datTimer, "prcTimer"
      End Sub




    Gruß Tino

    www.VBA-Excel.de




      

    Betrifft: AW: Laufzeitfehler bei VBA blinkender Zelle von: Markus
    Geschrieben am: 25.06.2008 12:46:53

    Ich kriegs nicht hin :-(

    Bei mir gehts einigermaßen, wobei ich auch nicht mehr entsperren kann, solang das Ding läuft, aber wenn meine Kollegen über das Netzwerk die Datei öffnen bekommen sie gleich einen Laufzeitfehler 9 *indenTischbeiss*


      

    Betrifft: AW: Laufzeitfehler bei VBA blinkender Zelle von: Tino
    Geschrieben am: 25.06.2008 12:59:48

    Hallo,
    weil dieses Ding bei jedem Durchlauf die Tabelle endsperrt und wieder sperrt.
    Du musst Dir etwas einfallen lassen um dies zu umgehen, also dass solang der Timer gestartet ist die Tabelle ungeschützt bleibt.
    Leider habe ich jetzt keine Zeit mehr, da ich auf die Mittagschicht muss.

    Ich lass die Frage mal offen.

    Gruß Tino

    www.VBA-Excel.de




     

    Beiträge aus den Excel-Beispielen zum Thema "Laufzeitfehler bei VBA blinkender Zelle"