Registriert seit: 10.02.2017
Version(en): 2010
Hallo zusammen,
vermutlich ich komme ohne VBA Kenntnisse an der Stelle nicht weiter.
Ich würde gerne eine Form im Tabellenblatt mit der gleichen Farbe ausfüllen mit der Zelle A1 eingefärbt ist.
Hab schon vieles Probiert aus verschiedenen Foren, aber ich scheine dafür zu blöd zu sein.
Ich freue mich auf eure Antworten.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Ben,
füge in ein neues VBA-Modul (Einfügen - Modul) dieses Makro ein:
Sub FarbeWieA1()
ActiveSheet.Shapes(Application.Caller).Fill.ForeColor.RGB = Range("A1").Interior.Color
End Sub
Zurück auf dem Excelblatt weist Du der Form dieses Makro zu (Rechtsklick auf die Form - Makro zuweisen - Makro auswählen).
Nun reicht ein Mausklick auf diese Form, um die Farbe von A1 zu übernehmen.
Gruß Uwe
Registriert seit: 10.02.2017
Version(en): 2010
10.02.2017, 21:37
(Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2017, 21:37 von Ben1234.)
Hallo Uwe,
ist ja genial. Vielen Dank
Gibt es auch eine Möglichkeit das sich die Farbe der Form sich automatisch ändert wenn sich die Farbe der Ausgangszelle verändert?
Was ich gerade auch noch gemerkt habe, wenn ich die Ausgangszellen mit einer bedingten Formatierung versehe, übernimmt er die Farbe nicht. Gibt es da auch eine Möglichkeit?
Gruß Ben
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Ben,
so ist es egal, ob feste Farbe oder bedingte Formatierung:
Sub FarbeWieA1()
ActiveSheet.Shapes(Application.Caller).Fill.ForeColor.RGB = Range("A1").DisplayFormat.Interior.Color
End Sub
Leider löst ein Farbwechsel kein Ereignis aus, das man dann nutzen könnte.
Gruß Uwe
Registriert seit: 10.02.2017
Version(en): 2010
10.02.2017, 22:21
(Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2017, 22:30 von Ben1234.)
Hallo Uwe,
das heißt wenn sich ein Wert in der Zelle ändern würde könnte man das nutzen um ein Makro ablaufen zu lassen dass dann alle Farben aktualisiert?
Wie würde das dann lauten? Sorry ich hab echt keinen Plan von VBA.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Ben,
(10.02.2017, 22:21)Ben1234 schrieb: Hallo Uwe,
das heißt wenn sich ein Wert in der Zelle ändern würde könnte man das nutzen um eine Makro ablaufen zu lassen dass dann alle Farben aktualisiert?
Wie wurde das dann lauten? Sorry ich hab echt keinen Plan von VBA.
ja, das könnte man. Dafür gibt es das Worksheet_Change-Ereignis.
Gruß Uwe
Registriert seit: 10.02.2017
Version(en): 2010
Hallo Uwe,
Könntest du mir noch sagen wie und wo ich das eintragen muß?
Dann bin ich fertig.
Gruß Ben
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Ben,
Rechtsklick auf den Tabellenblattreiter - Code anzeigen
In das rechte Codefenster folgenden Code einfügen:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Shapes("Abgerundetes Rechteck 1").Fill.ForeColor.RGB = Range("A1").DisplayFormat.Interior.Color
End Sub
Gruß Uwe
Registriert seit: 10.02.2017
Version(en): 2010
Hallo Uwe,
noch eine kurze Frage. Wie mache ich es wenn ich das gleiche auch bei A2 usw. machen möchte.
Gruß Ben
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Ben,
hier eine Variante mit der Select Case-Anweisung, die Du beliebig erweitern kannst:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strShapename As String
Select Case Target.Address(0, 0)
Case "A1"
strShapename = "abc"
Case "A2"
strShapename = "def"
Case "A3"
strShapename = "ghi"
End Select
If Len(strShapename) Then
Me.Shapes(strShapename).Fill.ForeColor.RGB = Target.DisplayFormat.Interior.Color
End If
End Sub
Gruß Uwe