Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
948to952
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
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Farbwechsel für 10 Sekunden

Farbwechsel für 10 Sekunden
12.02.2008 11:46:00
Werner
Hallo,
Ich habe mal wiedereine Frage:
In C3 steht die Formel =WENN(AC3=1;"P";""), jetzt möchte ich folgendes erreichen: Immer wenn sich der Wert in AC3 und damit auch in C3 ändert, dann soll die Hintergrundfarbe von C3 für 10 Sekunden auf "grün" geändert werden, danach soll wieder die ursprüngliche Farbe erscheinen.
Das soll aber nur dann passieren, wenn sich C3 von "" auf "P" ändert oder von "P" auf "P" ändert (erneute Eingabe von 1 in AC3), nicht aber, wenn sich C3 von "P" auf "" ändert.
Hoffentlich hat diese umständliche Beschreibung jemand verstanden und kann mir helfen.
Gruß
Werner

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das kann man auf der Basis 1er Ereignisprozedur...
12.02.2008 12:27:05
Luc
...wie Worksheet_Change bzw _Calculate - je nach dem, was die Änderung auslöst - erreichen, Werner.
Dabei hast du dann die Wahl, die Bedingungen in der Prozedur nachzubauen und die Zellfarbe mit der Range-Eigenschaft .Interior.ColorIndex direkt zu ändern oder aber eine bedingte Formatierung mit entsprechender Bedingung zu setzen und das in beiden Fällen nach 10 s wieder zu ändern. Die Verzögerung erreichst du mE mit Wait Now+10.
Gruß Luc :-?

AW: Farbwechsel für 10 Sekunden
12.02.2008 12:27:06
Chris
Servus,
probiers mal so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim merk As String
If Target.Address = "$AC$3" Then
merk = Range("C3").Interior.ColorIndex
If Target = 1 Then
Range("C3").Interior.ColorIndex = 4
Application.Wait Now + TimeSerial(0, 0, 10)
Range("C3").Interior.ColorIndex = merk
Else
If Target = "" Then
Range("C3").Interior.ColorIndex = merk
End If
End If
End If
End Sub


Das Makro in das Tabellenblattmodul, in dem es ausgeführt werden soll.
Gruß
Chris

Anzeige
AW: Farbwechsel für 10 Sekunden
12.02.2008 13:59:04
Werner
Hallo,
da kommt folgende meldung:
Fehler beim Kompilieren: Worksheet_change mehrdeutiger Name
Was kann ich tun?
Danke bisher und schon mal im Voraus!
Werner

AW: Farbwechsel für 10 Sekunden
12.02.2008 15:48:52
Chris
Servus,
dann hast du wohl schon ein Makro, das so heißt:
einfach den Code ohne private Sub... und End sub in das andere Worksheet_Change-Ereignis kopieren, einfach unten anhängen .
Gruß
Chris

AW: Farbwechsel für 10 Sekunden
12.02.2008 17:39:00
Werner
Hallo,
das habe ich gemacht,aber es funktioniert einfach nicht!
HILFE!!!
Gruß
Werner

AW: Farbwechsel für 10 Sekunden
12.02.2008 18:22:54
Chris
Servus,
bitte den anderen Code posten, oder besser eine Bsp.-Datei. So kann ich das nicht nachvollziehen.
Gruß
Chris

Anzeige
AW: Farbwechsel für 10 Sekunden
12.02.2008 18:30:00
Werner
Hier der Code, kann heute nicht mehr antworten, muß zum Dienst, DANKE!!
Option Explicit

Private Sub Image1_Click()
Range("G2").Select
End Sub


' Makro zum Zurückspringen ins EingACefeld nach ENTER


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$3" Then Range("G2").Select
If Target.Address = "$G$1" Then Range("G2").Select
If Target.Address = "$F$2" Then Range("G2").Select
If Target.Address = "$H$2" Then Range("G2").Select
End Sub


' Makro zum Übertragen der eingegebenen Zahlen in die Permanenzliste


Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte, s As Byte, _
check As Boolean
If Target.Address  "$G$2" Then Exit Sub
Application.EnableEvents = False
If Application.IsNumber(Target.Value) = False Then
GoTo ErrorHandler
End If
Select Case Target.Value
Case 4, 6, 7, 8, 9
With Range("G2")
.Value = ""
.Select
End With
Case 0
Range("AC4:AC22").Value = Range("AC5:AC23").Value
Range("AC23").ClearContents
Call DBKminus
With Range("G2")
.Value = ""
.Select
End With
Case 999
Call Anzeigelöschen
Case 1, 2, 3, 5
Range("AC5:AC23").Value = Range("AC4:AC22").Value
Range("AC4") = Target.Value
Call DBKplus
With Range("G2")
.Value = ""
.Select
End With
Case Else
With Range("G2")
.Value = ""
.Select
End With
End Select
Application.EnableEvents = True
Dim merk As String
If Target.Address = "$AC$4" Then
merk = Range("F4").Interior.ColorIndex
If Target = 1 Then
Range("F4").Interior.ColorIndex = 4
Application.Wait Now + TimeSerial(0, 0, 10)
Range("F4").Interior.ColorIndex = merk
Else
If Target = "" Then
Range("F4").Interior.ColorIndex = merk
End If
End If
End If
ErrorHandler:
With Range("G2")
.Value = ""
.Select
End With
End Sub


Anzeige
AW: Farbwechsel für 10 Sekunden
12.02.2008 22:40:04
Chris
Servus Werner,
so müsste es hinhauen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte, s As Byte, _
check As Boolean
Application.EnableEvents = False
If Target.Address = "$G$2" Or Target.Address = "$AC$4" Then
If Target.Address = "$G$2" Then
If Application.IsNumber(Target.Value) = False Then
GoTo ErrorHandler
End If
Select Case Target.Value
Case 4, 6, 7, 8, 9
With Range("G2")
.Value = ""
.Select
End With
Case 0
Range("AC4:AC22").Value = Range("AC5:AC23").Value
Range("AC23").ClearContents
Call DBKminus
With Range("G2")
.Value = ""
.Select
End With
Case 999
Call Anzeigelöschen
Case 1, 2, 3, 5
Range("AC5:AC23").Value = Range("AC4:AC22").Value
Range("AC4") = Target.Value
Call DBKplus
With Range("G2")
.Value = ""
.Select
End With
Case Else
With Range("G2")
.Value = ""
.Select
End With
End Select
Else
Dim merk As String
If Target.Address = "$AC$4" Then
merk = Range("F4").Interior.ColorIndex
If Target = 1 Then
Range("F4").Interior.ColorIndex = 4
Application.Wait Now + TimeSerial(0, 0, 10)
Range("F4").Interior.ColorIndex = merk
Else
If Target = "" Then
Range("F4").Interior.ColorIndex = merk
End If
End If
End If
End If
Else
Application.EnableEvents = True
Exit Sub
End If
Application.EnableEvents = True
ErrorHandler:
With Range("G2")
.Value = ""
.Select
End With
End Sub


Gruß
Chris

Anzeige
AW: Nachbesserung
13.02.2008 08:06:00
Chris
Servus Werner,

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte, s As Byte, _
check As Boolean
If Target.Address = "$G$2" Or Target.Address = "$AC$4" Then
If Target.Address = "$G$2" Then
If Application.IsNumber(Target.Value) = False Then
GoTo ErrorHandler
End If
Select Case Target.Value
Case 4, 6, 7, 8, 9
With Range("G2")
.Value = ""
.Select
End With
Case 0
Range("AC4:AC22").Value = Range("AC5:AC23").Value
Range("AC23").ClearContents
'Call DBKminus
With Range("G2")
.Value = ""
.Select
End With
Case 999
'Call Anzeigelöschen
Case 1, 2, 3, 5
Range("AC5:AC23").Value = Range("AC4:AC22").Value
Range("AC4") = Target.Value
'Call DBKplus
With Range("G2")
.Value = ""
.Select
End With
Case Else
With Range("G2")
.Value = ""
.Select
End With
End Select
Else
Dim merk As String
If Target.Address = "$AC$4" Then
merk = Range("F4").Interior.ColorIndex
If Target = 1 Then
Range("F4").Interior.ColorIndex = 4
Application.Wait Now + TimeSerial(0, 0, 10)
Range("F4").Interior.ColorIndex = merk
Else
If Target = "" Then
Range("F4").Interior.ColorIndex = merk
End If
End If
End If
End If
Else
Application.EnableEvents = True
Exit Sub
End If
ErrorHandler:
With Range("G2")
.Value = ""
.Select
End With
End Sub


Ohne Enable.Events = False / True geht es auch innerhalb des Makros Case "$G$2" 1 u.s.w..
Gruß
Chris

Anzeige
AW: Nachbesserung
13.02.2008 12:41:00
Werner
Hallo Chris,
herzlichen Dank für deine Mühe, ich traue mich schon gar nicht mehr zu schreiben, das es zwar funktioniert, aber nicht so, wie ich mir das vorgestellt habe.
Jetzt ist die Tabelle sehr, sehr langsam geworden.
Es dauert nicht nur 10 Sek, bis das Feld wieder weiß wird, sonder auch 10 sekunden, bis danach das Feld G2 wieder aktiviert wird und wieder 10 Sek, bis ich dort die nächste Eingabe machen kann und dann wieder 10 sek bis sie verarbeitet wird.
Ich glaube, wenn du jetzt keine Idee mehr hast, dann gebe ich das Vorhaben mit dem Farbwechsel auf.
Trotzdem DANKE!!
Werner

Anzeige
AW: Nachbesserung
13.02.2008 17:06:00
Chris
Servus Werner,
ich gehe davon aus, dass das Ereignis öfters ausgelöst wird durch deine Call-geschichten u.s.w.. Das kann man nicht verhindern, deswegen wartet das Makro dann wohl jedesmal 10 s.
Das einfachste ist wirklich, es bleiben zu lassen. Mir fällt jetzt auch nichts mehr ein.
Gruß
Chris

AW: Nachbesserung
13.02.2008 17:16:19
Werner
Hallo Chris,
das macht nichts, es wäre nur ein nützliches Highlight für die Anwendung gewesen, jetzt müssen die User eben etwas aufmersamer und sorgfältiger sein.
Herzlichen Dank trotzdem für deine Mühe.
Gruß
Werner

AW: Farbwechsel für 10 Sekunden
12.02.2008 15:49:00
Horst
Hi,
diese Prozedur darf es nur einmalig in einem Tabellenmodul geben!
mfg Horst
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige