Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1140to1144
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

Farbe der Autoform abhängig von Zellwert ändern

Farbe der Autoform abhängig von Zellwert ändern
Zellwert
Hallo liebe Community,
ich habe ein kleines VBA Problem und hoffe ich könnt mir etwas weiterhelfen.
In dem nachfolgenden Bild werden in Spalte "G" die Texte "WAHR" und "FALSCH" eingetragen; diese Werte werden ständig aktualisiert (von einem Server). Bei Mausklick auf den CommandButton "Start Refresh" soll jetzt ein Makro solange ausgeführt werden bis CommandButton "Start Refresh" wieder gedrückt wird. Das Makro soll den Wert "G8" überwachen; ändert sich der Wert von "Wahr" auf "Falsch", dann soll die AutoForm "Lüfter1" die Farbe von "grün" auf "rot" wechseln. Das ganze soll natürlich auch umgekehrt funktionieren.
Userbild
Leider habe ich mit meinem VB Versuch noch nicht so viel erfolgt gehabt:

Sub Worksheet_Change(ByVal Target As Range)
If Range("G8") = "WAHR" Then
ActiveSheet.Shapes("Lüfter1").Select
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = 11
End With
End If
If Range("G8") = "Falsch" Then
ActiveSheet.Shapes("Lüfter1").Select
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = 10
End With
End If
End Sub

Wahrscheinlich muss man hier aber eine Schleife verwenden ?
Könnt ihr mir weiterhelfen wie ich das zum Laufen bekommen ?
Vorab besten Dank...
Gruss,
Michael

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Farbe der Autoform abhängig von Zellwert ändern
26.02.2010 12:33:36
Zellwert
Hi Michael,
versuche es mal so: verwende einen ToggleButton und folgenden Code im Codemodul des Tabellenblattes
Private Sub Worksheet_Calculate()
If ActiveSheet.ToggleButton1 Then
If Range("G8") = True Then
ActiveSheet.Shapes("Lüfter1").DrawingObject.ShapeRange.Fill.ForeColor.SchemeColor =  _
11
Else
ActiveSheet.Shapes("Lüfter1").DrawingObject.ShapeRange.Fill.ForeColor.SchemeColor =  _
10
End If
End If
End Sub


AW: Farbe der Autoform abhängig von Zellwert ändern
26.02.2010 15:32:42
Zellwert
Hallo Beverly,
ich habe mein VB mal wie folgt abgeändert und einen ToggleButton verwendet:

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.ToggleButton1 Then
If Range("G8") = "WAHR" Then
ActiveSheet.Shapes("Lüfter1").Select
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = 11
End With
Else
ActiveSheet.Shapes("Lüfter1").Select
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = 10
End With
End If
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.ToggleButton1 Then
If Range("G8") = "WAHR" Then
ActiveSheet.Shapes("Lüfter1").Select
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = 11
End With
Else
ActiveSheet.Shapes("Lüfter1").Select
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = 10
End With
End If
Mit Worksheet_calculate hat es leider nicht funktioniert - kein Update der Autoformen.
Mit oben genanntem Code erfolgt leider auch kein koninuierliches Update der Autoform-Farben...
Nochmal zum verdeutlichen: Ich habe neben "Lüfter1" noch weitere Autoformen, die darauf schauen, dass sie die jeweilige Zelle in der Spalte G ändert. Bei Änderung ("WAHR" ---> "FALSCH") sollen sich die Farben der Autoformen ändern. Das muss solange und so oft funktionieren wie ein CommandButton oder ToggleButton aktiv ist.
Gruss,
Michael
Anzeige
AW: Farbe der Autoform abhängig von Zellwert ändern
26.02.2010 16:02:09
Zellwert
Hi Michael,
weise dem ToggleButton eine LinkeCell zu (sie kann durch den ToggleButton verdeckt sein) und schreibe in eine Zelle die Funktion ZUFALLSZAHL() - dann sollte es funktionieren.
Ich hänge mal ein Beispiel mit 2 Autoformen an - allerdings kann ich die Änderung in Spalte G nur dadurch simulieren, dass ich dort eine Formel stehen habe, deren Ergebnis sich bei Änderung einer anderen Zelle von WAHR auf FALSCH bzw. umgekehrt ändert. Die Formel bezieht sich auf A1 - wenn du also in A1 etwas eingibst oder löschst, simuliert dies das gleiche wie eine Datenübernahme von einem Server.
Zur Verdeutlichung habe ich noch die beiden Zellen in Spalte G mit einer bedingten Formatierung versehen, sodass der Wechsel dort besser zu sehen ist.
https://www.herber.de/bbs/user/68264.xls
Übrigens: auf Select kannst du hier - wie in 99% aller Fälle - verzichten.


Anzeige
AW: Farbe der Autoform abhängig von Zellwert ändern
27.02.2010 10:31:51
Zellwert
Hi Beverly,
tausend Dank. So wie du es beschrieben hast funktioniert es bestens. Kannst du mir vielleicht noch sagen, warum man hier die LinkedCell zuweisen muss bzw. was die Funktion Zufallszahl() bewirkt ?
Gruss und nochmals besten Dank...
Michael
AW: Farbe der Autoform abhängig von Zellwert ändern
27.02.2010 11:14:55
Zellwert
Hi Michael,
werden Daten von einem Server übernommen, löst dies in Excel kein Ereignis aus, welches man auswerten kann. Die Funktion ZFALLSZAHL() wird jedoch immer neu berechnet, wenn eine Veränderung im Tabellenblatt erfolgt (auch bei einer Datenübernahme von einem Server). Dadurch wiederum wird das Worksheets_Calculate Ereignis ausgelöst, mit welchem man nun überwachen kann, ob der ToggleButton gedrückt ist oder nicht, um in Abhängigkeit davon das Shape zu färben oder nicht. Das ist die erste Anforderung.
Die zweite Anforderung ist folgende: war der ToggleButton ausgeschaltet und man schaltet ihn ein, muss sofort geprüft werden, ob in Spalte G inzwischen eine Veränderung stattgefunden hat im Vergleich zum vorhergehenden Zustand bevor der ToggleButton eingeschaltet wurde. Das Drücken des ToggleButtons an sich nun löst ebenfalls kein Ereignis aus. Folglich würden die Shapes sozusagen die inzwischen möglicherweise erforderliche Farbänderung "nicht mitbekommen". Wenn der ToggleButton jedoch eine LinkedCell besitzt und die Zustandsänderung des Steuerelementes dort "dokumentiert" wird, ist dies eine Veränderung im Tabellenblatt und löst eine Neuberechnung der Funktion ZUFASLLSZAHL() aus. Und im Ergebnis dessen wird wiederum das Worksheet_Calculate Ereignis angestoßen und es wird sofort geprüft, welche Farbe das Shape bekommen muss.
Ich hoffe, dass die Erläuterung einigermaßen verständlich ausgefallen ist.


Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige