Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1080to1084
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

frage an Hajo Blinkende Zellen

frage an Hajo Blinkende Zellen
23.06.2009 07:30:03
chris
Hallo Hajo,
ich habe mir von Deiner Seite ´die Mappe heruntergeladen in denen meherer zellen untereinander blinken.
Aber ich bekomme es einfach nicht hin das mehr als 60 Zellen blinken ?
geht das überhaupt ?
Es handelt sich z.b um deinen Code "blinkende Zelle3"
Den habe ich so abgeändert klappt aber nicht.
Es blinken nicht mehr als 60 Zellen.
wenn ich mehr werte eingebe als 60 blinkt nichts mehr.
Was kann ich tun ? Hier ich der Code aus Dem Codemodule
Option Explicit ' Variablendefinition erfdorderlich
Option Private Module ' Makro nicht unter Extra, Makro sichtbar
Option Base 1 ' Array begnnt bei 1 und nicht wie Standard bei 0
'**************************************************
'* H. Ziplies *
'* 14.01.07 *
'* erstellt von Hajo.Ziplies@web.de *
'* http://Hajo-Excel.de/ *
'**************************************************
' das Schreiben der Startzeit auf eine Variable hat den Vorteil das die Prozedur leichter angehalten werden kann
Dim DaEt1 As Date ' Zeit erste Farbe
Dim DaEt2 As Date ' Zeit zweite Farbe
Public InWerte(100) As Integer ' Farbe zu Beginn, Integer da keine Farbe negativ
Public BoZustand As Boolean ' Zustand blinken, False =Ein
Dim VaArr1 As Variant ' Bereich erste Farbe
Dim VaArr2 As Variant ' Bereich zweite Farbe
' weiterentwicklung von Lutz aus dem Herberforum auf der Grundlage des Codes
' blinkende Zelle von der Seite http://home.media-n.de/ziplies/ neue Adresse Hajo-Excel.de
Public Const InFarbe1 = 3 ' erste Farbe negativ
Public Const InFarbe2 = 5 ' zweite Farbe positiv
Public Const InFarbe3 = 4 ' dritte Farbe negativ
Public Const InFarbe4 = 6 ' vierte Farbe positiv
Public Const DaZeit As Date = "00:00:01" ' Zeitabstand Blinken
Sub erste_Farbe() ThisWorkbook.Worksheets("Tabelle1").Range(VaArr1).Interior.ColorIndex = InFarbe1 DaEt1 = Now + DaZeit ' neue Startzeit setzen Application.OnTime DaEt1, "dritte_Farbe" ' Prozedur zur Startzeit starten End Sub



Sub zweite_Farbe()
ThisWorkbook.Worksheets("Tabelle1").Range(VaArr2).Interior.ColorIndex = InFarbe2
DaEt2 = Now + DaZeit                        ' neue Startzeit setzen
Application.OnTime DaEt2, "vierte_Farbe"    ' Prozedur zur Startzeit starten
End Sub



Sub dritte_Farbe()
ThisWorkbook.Worksheets("Tabelle1").Range(VaArr1).Interior.ColorIndex = InFarbe3
DaEt1 = Now + DaZeit                        ' neue Startzeit setzen
Application.OnTime DaEt1, "erste_Farbe"     ' Prozedur zur Startzeit starten
End Sub



Sub vierte_Farbe()
ThisWorkbook.Worksheets("Tabelle1").Range(VaArr2).Interior.ColorIndex = InFarbe4
DaEt2 = Now + DaZeit                        ' neue Startzeit setzen
Application.OnTime DaEt2, "zweite_Farbe"    ' Prozedur zur Startzeit starten
End Sub



Sub Ende()
On Error Resume Next
Application.OnTime EarliestTime:=DaEt1, Procedure:="erste_Farbe", Schedule:=False
Application.OnTime EarliestTime:=DaEt2, Procedure:="zweite_Farbe", Schedule:=False
Application.OnTime EarliestTime:=DaEt1, Procedure:="dritte_Farbe", Schedule:=False
Application.OnTime EarliestTime:=DaEt2, Procedure:="vierte_Farbe", Schedule:=False
Farbe_zurück
End Sub



Sub Start()
Dim iCounter As Integer
Ende                                        ' Blinken abschalten
VaArr1 = ""                                 ' Variable leeren da Zellen neu verglichen  _
werden
VaArr2 = ""                                 ' Variable leeren da Zellen neu verglichen  _
werden
On Error Resume Next
For iCounter = 1 To 100
' Ergänzung Hajo
If IsNumeric(Cells(iCounter, 1)) Then
If Range("A" & iCounter)  50 Then
VaArr2 = VaArr2 & "," & "A" & iCounter
End If
End If
Next iCounter
'   Veränderung Hajo
If Len(VaArr1) > 1 Then
VaArr1 = Mid(VaArr1, 2, Len(VaArr1) - 1)
erste_Farbe
End If
If Len(VaArr2) > 1 Then
VaArr2 = Mid(VaArr2, 2, Len(VaArr2) - 1)
zweite_Farbe
End If
End Sub



Sub Farbe_zurück()
Dim ByI As Byte
With ThisWorkbook.Worksheets("Tabelle1")
For ByI = 1 To 100
.Cells(ByI, 1).Interior.ColorIndex = InWerte(ByI)
Next ByI
End With
End Sub



Sub Farbe_auslesen()
Dim ByI As Byte
With ThisWorkbook.Worksheets("Tabelle1")
For ByI = 1 To 100
InWerte(ByI) = .Cells(ByI, 1).Interior.ColorIndex
Next ByI
End With
End Sub


Vielen Dank gruß Chris

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blinkende Zellen
23.06.2009 07:51:24
Hajo_Zi
Hallo chis,
ich habe 30 durch 150 ersetzt und Byte durch Long.
Ich habe in 120 Zellen entsprechende Werte eingetragen. Datei geschlossen und wieder geöffnet.
Es blinkten nur die negativen Werte ca. 58 aus welchen Grunde auch immer. Nach eingabe eines weiteren Wertes negativen Wettes, blinkten die positriven und negativen Werte 120 Wert.
Ich habe mein Original benutzt.

AW: Blinkende Zellen
23.06.2009 08:59:50
chris
Hmm,
Hajo danke für deine Antwort.
Wie schaffe ich es das bei mir auch mehr als 58 Werte blinken.
Danke
Anzeige
AW: Blinkende Zellen
23.06.2009 09:03:25
Hajo_Zi
Hallo Chris,
wie ich es gemacht hab, hatte ich geschrieben.
Gruß Hajo
AW: Blinkende Zellen
23.06.2009 09:14:23
chris
Ohh mann:),
danke Hajo jetzt blinkts !
AW: Blinkende Zellen
23.06.2009 09:22:27
chris
Stopp Hajo,
habe mich zu früh gefreut :(
es blinken nicht mehr als 66 werte.
Wenn ich mehere zellen fülle Blinkt gar nichts mehr ?
Kannst du helfen ?
Datei habe ich angehängt:
https://www.herber.de/bbs/user/62666.zip
AW: Blinkende Zellen
23.06.2009 10:14:46
Hajo_Zi
Halo Chris,
Danke für die Datei und das ausführliche Testen. Ich konnte jetzt das Problem nachvollziehen. Es war doch komplizierter als gedacht. Im Modul muss der Code ersetzt werden. Bitte gebe Rückmeldung ob es jetzt klappt. Dein Ergebnis bedeutet ja das alle meine Dateien auf der Seite überarbeitet werden müssen.


' ************************************************************* _
'  Modul:  Blinken_Modul  Typ = Allgemeines Modul
' **************************************************************
Option Explicit        _
' Variablendefinition erfdorderlich
Option Private Module                       ' Makro nicht unter Extra, Makro sichtbar
Option Base 1                               ' Array begnnt bei 1 und nicht wie Standard bei 0
'**************************************************
'* H. Ziplies                                     *
'* 23.06.09                                       *
'* erstellt von Hajo.Ziplies@web.de               *
'* http://Hajo-Excel.de/                          *
'**************************************************
' das Schreiben der Startzeit auf eine Variable hat den Vorteil  _
das die Prozedur leichter angehalten werden kann
Dim DaEt1 As Date      _
' Zeit erste Farbe
Dim DaEt2 As Date      _
' Zeit zweite Farbe
Public InWerte(500)  _
As Integer              ' Farbe zu Beginn, Integer da keine Farbe negativ
Public BoZustand As Boolean                 ' Zustand blinken, False =Ein
Dim VaArr1 As Range    _
' Bereich erste Farbe
Dim VaArr2 As Range    _
' Bereich zweite Farbe
'   weiterentwicklung von Lutz aus dem Herberforum auf der  _
Grundlage des Codes
'   blinkende Zelle von der Seite http://home.media-n.de/ _
ziplies/ neue Adresse Hajo-Excel.de
Public Const InFarbe1  _
= 3                   ' erste Farbe   negativ
Public Const InFarbe2  _
= 5                   ' zweite Farbe  positiv
Public Const InFarbe3  _
= 4                   ' dritte Farbe  negativ
Public Const InFarbe4  _
= 6                   ' vierte Farbe  positiv
Public Const DaZeit As Date = "00:00:01"    ' Zeitabstand Blinken
Sub erste_Farbe()
ThisWorkbook.Worksheets("Tabelle1"). _
Range(VaArr1.Address).Interior.ColorIndex = InFarbe1
DaEt1 = Now + DaZeit                        ' neue  _
Startzeit setzen
Application.OnTime DaEt1, "dritte_Farbe"    ' Prozedur zur Startzeit starten
End Sub
Sub zweite_Farbe()
ThisWorkbook.Worksheets("Tabelle1"). _
Range(VaArr2.Address).Interior.ColorIndex = InFarbe2
DaEt2 = Now + DaZeit                        ' neue  _
Startzeit setzen
Application.OnTime DaEt2, "vierte_Farbe"    ' Prozedur zur Startzeit starten
End Sub
Sub dritte_Farbe()
ThisWorkbook.Worksheets("Tabelle1"). _
Range(VaArr1.Address).Interior.ColorIndex = InFarbe3
DaEt1 = Now + DaZeit                        ' neue  _
Startzeit setzen
Application.OnTime DaEt1, "erste_Farbe"     ' Prozedur zur Startzeit starten
End Sub
Sub vierte_Farbe()
ThisWorkbook.Worksheets("Tabelle1"). _
Range(VaArr2.Address).Interior.ColorIndex = InFarbe4
DaEt2 = Now + DaZeit                        ' neue  _
Startzeit setzen
Application.OnTime DaEt2, "zweite_Farbe"    ' Prozedur zur Startzeit starten
End Sub
Sub Ende()
On Error Resume Next
Application.OnTime EarliestTime:=DaEt1, Procedure:= _
34;erste_Farbe", Schedule:=False
Application.OnTime EarliestTime:=DaEt2, Procedure:= _
34;zweite_Farbe", Schedule:=False
Application.OnTime EarliestTime:=DaEt1, Procedure:= _
34;dritte_Farbe", Schedule:=False
Application.OnTime EarliestTime:=DaEt2, Procedure:= _
34;vierte_Farbe", Schedule:=False
Farbe_zurück
Set VaArr1 = Nothing _
span>
Set VaArr2 = Nothing _
span>
End Sub
Sub Start()
Dim iCounter As Integer
Ende                                        ' Blinken  _
abschalten
Set VaArr1 = Nothing _
span>                        ' Variable leeren da Zellen neu verglichen werden
Set VaArr2 = Nothing _
span>                        ' Variable leeren da Zellen neu verglichen werden
On Error Resume Next
For iCounter = 1 To _
span> 500
' Ergänzung Hajo
If IsNumeric(Cells(iCounter, 1)) Then
' ***********
If Range( _
34;A" & iCounter) < 0 Then
If VaArr1 Is Nothing Then
Set VaArr1 = Range("A" & iCounter)
Else
Set VaArr1 = Union(Range( _
VaArr1.Address), Range("A" & iCounter))
End If _
ElseIf Range( _
"A" & iCounter) > 50 Then
If VaArr2 Is Nothing Then
Set VaArr2 = Range("A" & iCounter)
Else
Set VaArr2 = Union(Range( _
VaArr2.Address), Range("A" & iCounter))
End If _
End If
End If
Next iCounter
'   Veränderung Hajo
If Not VaArr1 Is Nothing Then
erste_Farbe
End If
If Not VaArr2 Is Nothing Then
zweite_Farbe
End If
End Sub
Sub Farbe_zurück()
Dim ByI As Long
With ThisWorkbook.Worksheets("Tabelle1")
For ByI = 1 To _
500
.Cells(ByI, 1).Interior.ColorIndex = InWerte(ByI)
Next ByI
End With
End Sub
Sub Farbe_auslesen()
Dim ByI As Long
With ThisWorkbook.Worksheets("Tabelle1")
For ByI = 1 To _
500
InWerte(ByI) = .Cells(ByI, 1).Interior.ColorIndex
Next ByI
End With
End Sub


Gruß Hajo

Anzeige
AW: Blinkende Zellen
23.06.2009 10:23:32
chris
Momentan hängts noch.
Bekomme beim einfügen in das Modul einen fehler in dieser zeile ?
Public BoZustand As span style="color:#000080"; >Boolean ' Zustand blinken, False =Ein
Dim VaArr1 As Range _
' Bereich erste Farbe
Danke Hajo das du dir die mühe machst !!
Echt klasse von Dir !
gruß Chris
AW: Blinkende Zellen
23.06.2009 10:31:05
chris
Danke Dir !
Jetzt klappts super.
schönen Tag noch !
AW: Blinkende Zellen
23.06.2009 11:02:22
Hajo_Zi
Hallo Chris,
Danke für die Information, dann kann ich mich ja an die HP machen
Gruß Hajo
Fehler gefunden.Umgehen möglich ?
23.06.2009 10:03:10
chris
Hallo Hajo,
habe den Fehler gefunden.
Der Fehler ist in dieser Zeile.
ThisWorkbook.Worksheets("Tabelle1").Range(VaArr2).Interior.ColorIndex = InFarbe2
Wenn die Variable VaArr2 zu groß ist gehts nicht weil sich dann das Programm aufhängt.
Es kommt nur nicht zu einer Fehlermeldung wegen on error.
Kann man das irgendwie umgehen ?
Würde mich über erneute Hilfe sehr freuen !
Vielen dank im vorraus
gruß Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige