Zellen mit blinkendem Hintergrund

716 Aufrufe
Gefragt 8, Jan 2017 in Tabellenkalkulation von Piedro
Hallo Zusammen,
ich hätte eine Frage an das Forum, vielleicht kann mir jemand helfen,
In meiner Excel Tabelle hab ich eine Spalte mit vielen Datums, wie kann man zwei
bzw. mehrere Zellen mit dem gleichen Datum mit einem Makro zum blinken bringen ?
Vielleicht mit einer Wenn-Funktion ?
Das Blinken sollte bei einem bestimmten Klick dann aufhören, vielleicht geht das mit
einem CommandButton ?
Und ein zweites Makro dass das gleiche macht anstelle des Datums ein Text in der
Zelle steht ? Spalten sollen dann frei wählbar sein.
Vielen Dank schon mal im voraus
Gruß Peter

12 Antworten

0 Punkte
Beantwortet 9, Jan 2017 von flupo Profi (12,749 Punkte)
Eine "Blinken"-Eigenschaft für Zellen gibt es meines Wissens nach
nicht. Man könnte sie in einem Makro in der Art nachbauen, dass man in
regelmäßigen Abständen die Vorder- oder Hintergrundfarbe ändert.
Ich nutze für sowas eher die bedingten Formatierungen.
Wenn man im Fehlerfall die Hintergrundfarbe auf einen markanten Wert
setzt, hilft das in den meisten Fällen schon weiter. Blinken muss da nicht
unbedingt sein.

Gruß Flupo
0 Punkte
Beantwortet 9, Jan 2017 von Nighty__
Hi Community ^^

Wenn es die Laufzeit erlaubt :-)
Ein Beispiel!

Gruss Night

Das Makro "BlinkendeFilterung" arbeitet in Wechselwirkung!
Ein wiederholter Start schaltet es wieder aus!

Public NextBlink As Double

Public FilteredRange As Range

Sub BlinkendeFilterung()
Dim Qdate As Date
If NextBlink = 0 Then
Qdate = "01." & Mid(Date, 4, 7)
ActiveSheet.Range("G1").AutoFilter Field:=1, Criteria1:="<" & CDbl(Qdate)
Set FilteredRange = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
ActiveSheet.Range("G1").AutoFilter
Call BlinkStart
Else
Call BlinkStopp
End If
End Sub

Sub BlinkStart()
If FilteredRange.Interior.ColorIndex = 3 Then
FilteredRange.Interior.ColorIndex = 0
Else
FilteredRange.Interior.ColorIndex = 3
End If
NextBlink = Now + TimeSerial(0, 0, 1)
Application.OnTime NextBlink, "BlinkStart", , True
End Sub

Sub BlinkStopp()
On Error Resume Next
Application.OnTime NextBlink, "BlinkStart", , False
FilteredRange.Interior.ColorIndex = 0
NextBlink = 0
End Sub
0 Punkte
Beantwortet 9, Jan 2017 von Nighty__
hi all ^^

Es wird in Spalte G ein Datum gesucht das kleiner als der Laufende Monat ist
und in Blinkzustand versetzt

Gruss Nighty
0 Punkte
Beantwortet 10, Jan 2017 von Piedro
Hi Nighty,

kann man dein Makro auch so verändern das in der gleichen Spalte zwei oder mehrere Zellen blinken die das gleiche Datum enthalten ??
Ich habe dein Makro getestet, es funktioniert nur teilweise, bedeutet: ich habe in 5 zellen ein größeres Datum eingetragen als Januar 2017 und in 2 Zellen ein Datum aus 2016. Die zellen mit Datum aus 2016 blinken, wenn ich aber dann in den zellen aus 2016 ein Datum nach Januar 2017 eintrage und die Datei speicher und wieder öffne, blinken noch immer diese zwei zellen obwohl sie jetzt größer sind als das heutige Datum !?

Gruß Peter
0 Punkte
Beantwortet 10, Jan 2017 von Nighty__
hi all ^^

Nutze den Filter!

gruss nighty

"BlinkStopp" Makro ergänzt

Sub BlinkStopp()
On Error Resume Next
Application.OnTime NextBlink, "BlinkStart", , False
FilteredRange.Interior.ColorIndex = 0
NextBlink = 0
FilteredRange = Nothing
End Sub
0 Punkte
Beantwortet 10, Jan 2017 von Piedro
Hi Nighty,

also ich habe überhaupt keine Ahnung wie man ein Makro schreibt, ich weiß zwar wo man so ein Makro einfügt und des startet, das ist aber auch schon alles. Erstens weiß ich nicht was du meinst mit "Nutze den Filter" , zweitens ist es nicht das was ich suchte. Z.B habe ich die Datums untereinander in einer Spalte geschrieben, A1 = 10.01.2017, A2 = 15.01.2017, A3 = 20.01.2017, A4 = 25.01.2017, A5 = 30.01.2017, A6 = 15.01.2017, A7 = 15.01.2017. Mein Wunsch wäre jetzt das ein Makro die Zellen A2, A6 und A7 zum Blinken bringt (gleiches Datum). In meiner Tabellenspalte sind nur Geburtstage eingetragen, in etwa über 2000, damit ich schnell einen Doppeleintrag oder Mehrfacheintrag finde soll das Makro diese Spalte durchlaufen und diese Doppel- oder Mehrfacheinträge zum Blinken bringen.

Gruß Peter
0 Punkte
Beantwortet 11, Jan 2017 von Nighty__
Hallo Peter ^^

Blinkt auf einmalige gefilterte Daten in Spalte A!

Andersherum habe ich noch keine Idee!

Gruss Nighty

Public NextBlink As Double

Public FilteredRange As Object

Sub AusblendenZweiKreterien()
If NextBlink = 0 Then
Dim LZeile As Long
LZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.Range("A1:A" & LZeile).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Set FilteredRange = Range("A1:A" & LZeile).SpecialCells(xlCellTypeVisible).Cells
ActiveSheet.Range("A1:A" & LZeile).AdvancedFilter Action:=xlFilterInPlace, Unique:=False
Call BlinkStart
Else
Call BlinkStopp
End If
End Sub

Sub BlinkStart()
If FilteredRange.Interior.ColorIndex = 3 Then
FilteredRange.Interior.ColorIndex = 0
Else
FilteredRange.Interior.ColorIndex = 3
End If
NextBlink = Now + TimeSerial(0, 0, 1)
Application.OnTime NextBlink, "BlinkStart", , True
End Sub

Sub BlinkStopp()
On Error Resume Next
Application.OnTime NextBlink, "BlinkStart", , False
FilteredRange.Interior.ColorIndex = 0
NextBlink = 0
FilteredRange = Nothing
End Sub
0 Punkte
Beantwortet 11, Jan 2017 von Nighty__
Hallo Peter und All ^^

Hab es hinbekommen :-)

Gruss Nghty

Doppelte in Spalte A blinken,wiederholter Start schaltet es wieder aus

Public NextBlink As Double

Public FilteredRange As Object

Sub DoppelteBlinken()
If NextBlink = 0 Then
Dim LZeile As Long
Dim FilteredRangeSp As Object
LZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.Range("A1:A" & LZeile).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Set FilteredRangeSp = Range("A1:A" & LZeile).SpecialCells(xlCellTypeVisible).Cells
ActiveSheet.Range("A1:A" & LZeile).AdvancedFilter Action:=xlFilterInPlace, Unique:=False
FilteredRangeSp.EntireRow.Hidden = True
Set FilteredRange = Range("A1:A" & LZeile).SpecialCells(xlCellTypeVisible).Cells
FilteredRangeSp.EntireRow.Hidden = False
Call BlinkStart
Else
Call BlinkStopp
End If
End Sub

Sub BlinkStart()
If FilteredRange.Interior.ColorIndex = 3 Then
FilteredRange.Interior.ColorIndex = 0
Else
FilteredRange.Interior.ColorIndex = 3
End If
NextBlink = Now + TimeSerial(0, 0, 1)
Application.OnTime NextBlink, "BlinkStart", , True
End Sub

Sub BlinkStopp()
On Error Resume Next
Application.OnTime NextBlink, "BlinkStart", , False
FilteredRange.Interior.ColorIndex = 0
NextBlink = 0
FilteredRange = Nothing
End Sub
[/code]
0 Punkte
Beantwortet 12, Jan 2017 von Piedro
Hallo Nighty,


Am Anfang hat es mich gefreut das es geklappt hat dann habe ich mal verschiedene Varianten getestet mit dem Makro, zuerst die, die ich schon aufgeschrieben habe A1 = 10.01.2017, A2 = 15.01.2017, A3 = 20.01.2017, A4 = 25.01.2017, A5 = 30.01.2017, A6 = 15.01.2017, A7 = 15.01.2017, es BLINKEN A6 und A7, A2 NICHT. Dann hab ich was anderes probiert, ich habe dann in A10 nochmal 15.01.2017 eingetragen, die Zelle hat dann auch geblinkt und A2 noch immer nicht. Außerdem haben zusätzlich auch die LEEREN Zellen A8, A9 auch geblinkt !? Teste mal indem du die oberen Datums stehen lässt von A1 bis A7 und versuche mal z.B. in A15 oder A25 oder in zwei weiteren Zellen ein Datum einzutragen welches schon in den oberen Zellen vorkommt. Dazwischen liegen dann leere Zellen, die werden dann auch blinken, was nicht mein Wunsch wäre und zusätzlich müsste ja auch die Zelle blinken die in den oberen 7 Zellen vorkommt.
Ich hoffe und bin sicher du kriegst das auch noch hin, vorerst vielen, vielen Dank für deine Mühe und lass dir Zeit, es eilt nicht so sehr

Gruß Peter
0 Punkte
Beantwortet 12, Jan 2017 von Nighty__
Hallo Peter ^^

1)
Der Spezialfilter prüft auf doppelte,ich wählte diese Methode,weil es recht flink ist
Bei 3 Treffer des selben Wertes werden 2 angezeigt,bei 4 entsprechend 3 etc.
Ich überleg mir was!

2)
Leerzellen könnten durch vorige Sortierung ausgeschlossen werden

Gruss Nighty
...