Zellen oder Objekte farbig blinken lassen?

Hallo,

das ist schon die Frage. Kann man das, ohne dass die Bearbeitung der Tabelle gestoppt wird, d.h. man während des Blinkzustands Makros aufrufen, Zellen bearbeiten kann usw.

Danke, Laika

Hallo,

anhand eines Timers kannst Du zeitgesteuert ein Makro ausführen lassen, z.B. um eine Zelle blinken zu lassen. Das lässt dann auch das Bearbeiten von Zellen zu, z.B. Formatieren usw. Allerdings ist zu beachten, dass wenn sich eine Zelle im Bearbeitungmodus befindet, das zeitgesteuerte Makro ausgesetzt wird. Ebenso, während ein anderes Makro läuft. Das kannst Du mit folgenden Beispielcode (einfacher Timer mit VBA-Standardmethoden) austesten:

Private blnBlinkend       As Boolean
Private lngFarbe          As Long
Private lngFarbeBlinkend  As Long

Sub Blinken()
  
  ThisWorkbook.Worksheets(1).Cells(1, 1).Interior.Color = _
  IIf(blnBlinkend, lngFarbe, lngFarbeBlinkend)
  blnBlinkend = Not blnBlinkend
  Application.OnTime Now + TimeValue("00:00:01"), "Blinken"
  
End Sub

Sub BlinkenStarten()
  
  lngFarbe = RGB(255, 255, 255)
  lngFarbeBlinkend = RGB(128, 0, 0)
  Application.OnTime Now + TimeValue("00:00:01"), "Blinken"
  
End Sub

Sub BlinkenStoppen()
  
  blnBlinkend = False
  Application.OnTime Now + TimeValue("00:00:01"), "Blinken", , False
  
End Sub

Sub Test()

  MsgBox "Hallo Welt"
  
End Sub

Die Makros lassen Zelle A1 in der ersten Tabelle blinken. Das musst Du anpassen. Und, besser wäre es, das Makro zu erweitern und nur dann ausführen zu lassen, wenn die Tabelle auch tatsächlich aktiv ist. Nebenbei bemerkt, eine ganze Reihe an Zellen gleichzeitig blinken zu lassen, also viele, kann auf die Performance gehen.

Gruß

Hallo,

Noch ein Nachtrag: das Blinken wird ebenfalls ausgesetzt, wenn Excel-Dialoge aufgerufen werden, z.B. bedingte Formatierung.

@Mods hier: eben den Beitrag davor geschrieben, das Ändern meines Beitrags war nicht mehr zulässig. Es erschien eine Meldung, mein Beitrag wäre zu alt. Warum?

Gruß

@maninweb
[MOD]: Es gibt eine Zeitspanne, wo die Mitglieder ihre Artikel bearbeiten können, ich meine es ist eine Minute oder so, genau weiß ich es nicht. Danach ist der Artikel zu „alt“. Wenn Du es genauer wissen möchtest, dann kannst Du Dich ans Team wenden oder ich kann auch für Dich nachfragen. Du kannst aber auch jederzeit den MOD des jeweiligen Bretts anschreiben, dann ändert er für Dich den Artikel.

Danke maninweb,
„Application.OnTime“, „Application.OnAction“ hatte ich früher schon mal verwendet, hatte aber nicht so richtig geklappt und es dann, da nicht so wichtig, wieder ruhen lassen. Nun habe ich es so wie Du probiert, lasse ein Textfeld blinken … kaum macht man’s richtig, schon funktioniert’s!
Jetzt muss ich es nur noch hinkriegen, mehrere Objekte unabhängig voneinander blinken zu lassen, d.h. ein-/auszuschalten. Das Problem ist ja, wenn man „Application.OnTime“ mehrfach gibt, ein Blinkchaos entsteht, da wohl mehrere Timer aufgesetzt werden. Alle zusammen können aber mit einem „Application.OnTime … False“ gelöscht werden - wird schon werden.
Schönes Restostern
Laika