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,
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