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

Shape per True/False färben

Shape per True/False färben
25.05.2018 10:58:22
Andreas
Hallo an alle,
ich möchte per Zellwert die Farbe eines Shapes steuern.
Habe folgenden Code, der allerdings nicht funktioniert:
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.Range("Y2").Value = True Then
ActiveSheet.Shapes("Rechteck1").Fill.ForeColor.RGB = vbGreen
ElseIf ActiveSheet.Range("Y2").Value = False Then
ActiveSheet.Shapes("Rechteck1").Fill.ForeColor.RGB = vbRed
End If
End Sub
Kann mir jemand sagen, was ich falsch mache?

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

Betreff
Datum
Anwender
Anzeige
AW: Shape per True/False färben
25.05.2018 11:04:51
Gerd
Hallo Andreas,
wodurch ändert sich Y2?
Wieso RGB und Farbkonstanten?
Gruß Gerd
AW: Shape per True/False färben
25.05.2018 11:08:27
Andreas
Y2 ändert sich entweder durch eine Checkbox in Tabellenblatt1 oder eine Checkbox in Tabellenblatt2.
RGB und Farbkonstanten? Weil ich keine andere Lösung kenne :-D
AW: Shape per True/False färben
25.05.2018 11:07:54
Werner
Hallo Andreas,
es geht wohl um diesen Beitrag
https://www.herber.de/forum/messages/1625607.html
Und da stellen sich die Fragen:
-warum gibst du dort keine Rückmeldung auf Lösungsvorschläge
-warum machst du nicht in diesem Beitrag weiter
@Gerd: Wenn ich nach dem vorigen Beitrag gehe, dann wohl mittels CheckBox
Gruß Werner
Anzeige
AW: Shape per True/False färben
25.05.2018 11:23:37
Andreas
Ach danke! Das habe ich völlig übersehen. Allerdings möchte ich es eben nicht über die Checkbox steuern, sondern über den Zellwert. Nochmal zur AUsgangslage: Ich habe ein Shape in Tabellenblatt 2. Dieses möchte ich mittels Checkbox 2 in Tabellenblatt 2 färben können. Gleichzeitig habe ich in Tabellenblatt 1 eine weitere Checkbox, Checkbox 1. Auch mit diesem möchte ich die Farbe des Sahpes in Tabellenblatt 2 ändern können.
AW: Shape per True/False färben
25.05.2018 11:11:14
UweD
Hallo
wenn ich das so nachbaue, ist bei mir in der Shape- Bezeichnung noch ein Leerzeichen enthalten.
Dann klappt das auch.
ActiveSheet.Shapes("Rechteck 1")


Aber: soll das makro IMMER laufen, egal welche Zelle du änderst, oder nur bei Änderung von Y2?
LG UweD
Anzeige
AW: Shape per True/False färben
25.05.2018 11:27:10
Andreas
Danke für die Antwort.
Also bei mir heißt das Rechteck tatsächlich "Rechteck1" ohne Leerzeichen.
Das Makro soll immer laufen: von Zellwert Y2 bis Y73 und für die Recktecke 1 bis 72
AW: Shape per True/False färben
25.05.2018 11:27:27
Gerd
Hi
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$Y$2" Then
If Me.Range("Y2").Value = True Then
Me.Shapes("Rechteck 1").Fill.ForeColor.RGB = RGB(0, 255, 0)
ElseIf ActiveSheet.Range("Y2").Value = False Then
Me.Shapes("Rechteck 1").Fill.ForeColor.RGB = RGB(255, 0, 0)
End If
End If
End Sub

Gruss Gerd
AW: Shape per True/False färben
25.05.2018 11:36:19
Andreas
Das klappt leider immer noch nicht. Hilft es vielleicht, wenn ich mal meine Datei hochlade?
https://www.herber.de/bbs/user/121819.xlsm
Anzeige
AW: Shape per True/False färben
25.05.2018 11:37:19
Andreas
Der Code befindet sich im Tabellenblatt "Timeline"
Wiederholung von weiter unten...
25.05.2018 11:51:24
weiter
Hallo Andreas,
Was du willst ist klar. Wie du es willst, nämlich über die LinkedCell Eigenschaft der Checkboxe(n) ist mehr als zweifelhaft! Ebenso zweifelhaft ist, dass 2 Checkboxen die gleiche LinkedCell benutzen. Änderst du den Zustand einer Checkbox, ändert sich damit automatisch auch der Zustand der anderen. Und noch einmal: Das _Change Ereignis ist hier völlig fehl am Platz, weil es nicht ausgelöst wird, durch die Zustandsänderung der Checkbox. In deinem Fall würde die Farbänderung nur dann ausgelöst, wenn in irgendeiner anderen Zelle als Y2 eine manuelle Eingabe erfolgt und das kann unmöglich dein Ziel sein, es sei denn du hast letzteres falsch mitgeteilt!
Also gilt für die beiden (ActiveX-)Checkboxen der gleiche Code, jeweils im entsprechenden Tabellenblatt der Checkbox:
Private Sub CheckBox1_Click()
With Worksheets("Timeline").Shapes("Rechteck 1")
.Fill.ForeColor.RGB = IIf(CheckBox1, vbGreen, vbRed)
End With
End Sub
Die LinkedCell Eigenschaft beider Checkboxen sollte leer bleiben!
Gruess Hansueli
Anzeige
Ich ziehe meinen Vorschlag zurück
25.05.2018 12:28:16
EtoPHG
...Andreas,
Ich hab deine Mappe leider zu spät gesehen.
Einige Anmerkungen:
Du hast von CheckBox und dem _Click Ereignis geredet, darum hab ich vorausgesetz, dass es ActiveX Steuerelemente sind. Du hast aber überall Formularsteuerelemente verwendet. Für diese muss ein Code anders aussehen! Welche Rechtecke grün/rot gefärbt werden sollen beschreibst du nicht. Ich vermute, dass es die links von den Checkboxen im Blatt "Timeline" sind. Leider korrelieren die Namen der Rechtecke nicht mit den Checkbox Namen. Ein typischer Fall von: Zuerst will ich mein Blatt schön gestalten und dann überlege ich mir wie ich die Funktionen einbaue, statt zuerst die Funktionen beschreiben und dann die Gestaltung!
Also... sorry ich bin raus!
Gruess Hansueli
Anzeige
AW: Shape per True/False färben
25.05.2018 12:07:32
Gerd
Hallo Andreas,
vorgefunden habe ich in deiner Datei Formeln in Timline!Y2:Y73, die auf Änderungen in Übersicht!E2:E73 reagieren,aber keine Rechtecke.
Wenn diese im Blatt Timeline sein sollten, beim momentanen Stand:
INS MODUL VON BLATT "ÜBERSICHT":
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E2:E73")) Is Nothing Then Exit Sub
For Each Zelle In Intersect(Target, Range("E2:E73"))
If Zelle.Value = True Then
Worksheets("Timeline").Shapes("Rechteck " & Target.Row - 1).Fill.ForeColor.RGB =  _
RGB(0, 255, 0)
Else
Worksheets("Timeline").Shapes("Rechteck " & Target.Row - 1).Fill.ForeColor.RGB =  _
RGB(255, 0, 0)
End If
End If
End Sub

Gruss Gerd
Anzeige
AW: Shape per True/False färben
25.05.2018 15:37:38
Andreas
Danke für die Hilfe. Habe es versucht, hat aber nicht so richtig klappen wollen.
Die Farbe des Shapes lässt sich mit folgendem Code mit der Checkbox steuern, die sich in dem gleichen Tabellenblatt befindet wie das SHape. Leider ändert sich die Farbe nicht, wenn man die Checkbox in dem anderen Tabellenblatt aktiviert.
Sub Rechteck1()
If Worksheets("Übersicht").Range("E2").Value = True Then
Worksheets("Timeline").Shapes("Rechteck1").Fill.ForeColor.SchemeColor = 11
ElseIf Worksheets("Übersicht").Range("E2").Value = False Then
Worksheets("Timeline").Shapes("Rechteck1").Fill.ForeColor.SchemeColor = 10
End If
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige