Können Exce-Zellen blinken?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

ich hoffe, die Anweisungen sind ausreichend verständlich und ausreichend genau:

Voraussetzungen schaffen:

beliebigen Bereich auswählen, in Adresszeile als "Zellgruppe" benennen.

Menü "Einfügen", Textfeld einfügen. beschriften (zB. 1.: Zellen zu Bereich Zellgruppe zuordnen). FormatierungsVorschlag: FüllFarbe gelbgrün, Schrift Arial Rounded MT bold  Gr.12

Zweites Textfeld einfügen, beschriften (vorläufig) mit Blinken = Ja, andere Füllfarbe(rosa?) (wird im Makro zu ActiveSheet.Shapes.Range(Array("TextBox 2"))
drittes Textfeld einfügen, beschriften mit zB "Startknopf blinken+HiGr/Font für Zellgruppe". Füllfarbe zB.hellgrün(=los gehts)

Ggf noch Rahmenfarbe, -Stärke, Schatten, Schriftstil gestalten. Nachträgliche Änderungen sind möglich, aber etwas aufwändiger, v. a. für Anfänger.

Makros installieren:

Alt+F11 öffnet den VBA-Editor

Menü EINFÜGEN, Modul fügt ein Modulblatt ein (die Module der Blattnamen und deren übergeordnetes Modul Workbook ignorierst Du vorläufig

Codetext hier kopieren (zB auch mit Strg+c), in das neu angelegte Modulblatt reinkopieren (ein ggf doppeltes Option.explicit kann (muss?) gelöscht werden.


Option Explicit: Public Blinken As Boolean 'ganz wichtig: nicht Dim, sondern Public, damit zwischen Aufrufen erhalten bleibt! (ResourcenAktualisierung)

Sub ZellGruppeBenennen() '1/4 die folgenden 4/4 Makros gehören zusammen
Dim KombiSel
Set KombiSel = Selection
ActiveWorkbook.Names("Zellgruppe").RefersToR1C1 = KombiSel
End Sub

Sub Blinkenbeenden() '2/4
If Blinken = False Then Blinken = True: Knopftext: Exit Sub
Blinken = False: Knopftext
End Sub

Sub Knopftext() '3/4
ActiveSheet.Shapes.Range(Array("TextBox 2")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "BLINKEN = " & UCase(Blinken) ': Debug.Print Blinken 'ginge das einfacher?
End Sub

Sub xblinkenZellHiGru() '4/4
If Range("Zellgruppe").Cells(1).Interior.ColorIndex = 3 Then
Range("Zellgruppe").Cells.Interior.ColorIndex = 6: Range("Zellgruppe").Cells.Font.ColorIndex = 1
Else
Range("Zellgruppe").Cells.Interior.ColorIndex = 3: Range("Zellgruppe").Cells.Font.ColorIndex = 4
End If: Debug.Print Blinken
If Blinken = False Then Exit Sub
Application.OnTime Now + TimeSerial(0, 0, 1), "xblinkenZellHiGru"
End Sub 'weiterentwickelt aus Vorlage Jörg Lorenz: lorenz@joerglorenz.de http://www.spotlight.de/ewf-faq http://www.joerglorenz.de


Textfelder den Makros zuweisen

  (und damit zu Schaltknöpfen machen)


auf Kontext-Menü des ersten Textfelds klicken, Makro zuweisen wählen. Makro ZellGruppeBenennen auswählen (wird ggf samt Dateiname angegeben, egal)

auf Kontext-Menü des zweiten Textfelds klicken, Makro zuweisen wählen. Makro Blinkenbeenden auswählen

auf Kontext-Menü des dritten Textfelds klicken, Makro zuweisen wählen. Makro xblinkenZellHiGru auswählen

Makros in Gang setzen


mehrere Zellen mit ständig gedrückter Strg-Taste markieren (diejenigen, die blinken sollen). Knopf Zellen zu Bereich Zellgruppe zuordnen drücken.

Erfolgskontrolle: andere Zellen auswählen. Im Adressfeld den Bereich Zellgruppe wählen: er muss die vorher markierten Zellen auswählen.

Knopf Blinken=Ja drücken: er sollte sich auf BLINKEN = WAHR stellen. Ggf erneut irgendeine andere Zelle auswählen, Knopf drücken: sollte alternierend WAHR und FALSCH zeigen.

Erst jetzt den Hauptknopf (Startknopf blinken...) drücken: die vorher gewählten Zellen sollten im Sekundentakt blinken.

Abbrechen mit Knopf Blinken, dieser zeigt dann ...FALSCH. In diesem Zustand können die Farben durch den Startknopf manuell gesteuert umgestellt werden, bei jedem Knopfdruck erneut.

Nach zwischenzeitlichem Verlassen des Blattes oder der Anwendung Excel

Der Blinkvorgang erlischt, wenn das Arbeitsblatt, die Datei oder die Anwendung xl verlassen wird.
Zum Wiederingangsetzen brauchen die Zellen nicht neu ausgewählt zu werden(der Kombi-Bereich bleibt erhalten), aber die Anzeige Blinken = WAHR stimmt evtl nicht mehr. Knopf (evtl doppelt) umstellen wieder auf WAHR, dann Startknopf.

Das Wiederingangsetzen könnte durch ein Ereignis-Makro geschehen (Worksheet_activate()), aber das lasse ich jetzt erst mal. Ggf nachfordern.

ich hoffe, das wars. Wenn nicht, frag nach!


Iamiam  20.05.2016, 22:09

noch ganz wichtig: Datei entweder im alten Format als  :xls oder im neuen als .xlsm speichern,  sonst verlierst du die mühsam zusammengetragene Arbeit größtenteils wieder!

Sollte was nicht gehen, bei VBA-Fehlermeldung >Nr notieren, auf debuggen gehen uns festhalten, welche Zeile betroffen ist. hier alles schreiben!

1
Iamiam  24.05.2016, 23:54
@Iamiam

Danke für Stern und Kompliment! Was ich dem aber nicht entnehmen kann: Hast Du es zum Laufen(Blinken) gekriegt oder hast du mit dem Verweis auf Anfänger kapituliert? Wäre schade, aber bei mir hat sich beim ersten Mal gar nichts getan, ich musste im Makro die Textfeldnummer ändern, weiss selbst noch nicht, warum sich das geändert hat!

Ich helfe dir gerne weiter, wenn ich kann! (ggf auch auf nichtöffentlichem Weg über zeitlich befristete Freundschaft)

1

also ich hab vor langer Zeit mal was aus dem Netz gezogen, was ein Labelfeld (Label1) in einer  Useform1 zum Blinken bringt und geb das mal hier wieder:

Dim c
Sub zeigen()
c = True
ändern
UserForm1.Show
End Sub

Sub ändern()
If UserForm1.Label1.BackColor = &H8000000F Then UserForm1.Label1.BackColor = &H8080FF Else UserForm1.Label1.BackColor = &H8000000F
If c = True Then Application.OnTime Now + TimeSerial(0, 0, 1), "ändern"
End Sub

Sub entladen()
c = False
Unload UserForm1
End Sub

beachte: beide if sind die einzeilige Variante, die kein end if braucht. Der Zeilenumbruch nach then ist (ggf) nur durch die Darstellung hier vorgetäuscht

ich werde später noch nach weiterem suchen, ich meine, ich müsste noch was für Zellen haben..

Harald2310 
Fragesteller
 18.05.2016, 18:50

Vielen Dank für die schnelle Antwort,aber zum Verstehen bin ich zu laienhaft.:-)

0
Iamiam  19.05.2016, 01:11
@Harald2310

ich hab das zwar eben fertig funktionsfähig ausgearbeitet, aber es bleibt kompliziert zum erklären, leichter zum Installieren.

Du kannst schon mal einen Bereich namens Zellgruppe einrichten und drei Textfelder einfügen (aber die Reihenfolge merken, sonst könnte es schwierig werden, die später anzusprechen, also am besten untereinander (später kannst Du die dann beliebig verschieben)

Dem Bereich weist Du erst mal nur eine Zelle zu, kann später auf beliebig viele Einzelzellen und/oder Zellbereiche ausgedehnt werden, die dann alle einen Hintergrund-Farbwechsel rot<->gelb ausführen, ebenso einen Schriftfarbwechsel hellgrün(vor Rot)<->schwarz(vor gelb) (beliebig einstellbar)

Der letzte Rest dann morgen.

[in Hamburg lebten zwei Ameisen, die wollten nach Australien reisen

In Altona, auf der Chaussee, da taten ihnen die Beine weh

und so verzichteten sie weise  auf den letzten Rest der Reise...

J. Ringelnatz]

1
Iamiam  19.05.2016, 21:38
@Iamiam

Hi Harald, ich hab Dich nicht vergessen, aber eine halbwegs wasserdichte Anleitung für diese Aufgabe kostet mehr Zeit als ich dachte! Hoffe, heut nacht noch fertig zu werden und werd das dann in einer neuen Antwort alles wiedergeben!

1
Iamiam  20.05.2016, 12:23
@Iamiam

habs zwar jetzt fertig, aber keine Zeit mehr, das alles zusammen- und hier einzufügen

Bis heute abd!

1

Hallo Harald,

ein wenig Google hätte dir auch schon eine Antwort gebracht. Daher will ich jetzt auch mal faul sein und verweise auf: http://www.office-loesung.de/ftopic286449_0_0_asc.php

Schau dir da mal den Eintrag 4 (von Nepumuk) an. Ist von ihm recht recht gut und simpel erklärt.

LG, Chris