Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Form mit Farbe aus Zelle formatieren
#1
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. Dodgy

Ich freue mich auf eure Antworten.
Antworten Top
#2
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
Antworten Top
#3
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
Antworten Top
#4
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
Antworten Top
#5
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. Angel
Antworten Top
#6
Hallo Ben,

(10.02.2017, 21: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. Angel

ja, das könnte man. Dafür gibt es das Worksheet_Change-Ereignis.

Gruß Uwe
Antworten Top
#7
Hallo Uwe, 

Könntest du mir noch sagen wie und wo ich das eintragen muß?

Dann bin ich fertig. 

Gruß Ben
Antworten Top
#8
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
Antworten Top
#9
Hallo Uwe,

noch eine kurze Frage. Wie mache ich es wenn ich das gleiche auch bei A2 usw. machen möchte.

Gruß Ben
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste