Farbkombination aus zelle in makro verwenden

Guten Tag,
ich möckte aus eine Zelle die aktuelle Farbkombination in eine Variable übernehmen und diese in der Arbeitsmappe in einem Zellbereich bei einer bestimmten bedingung per makro anwenden

danke für alle vorschläge

Herbert

ich möckte aus eine Zelle die aktuelle Farbkombination in eine
Variable übernehmen und diese in der Arbeitsmappe in einem
Zellbereich bei einer bestimmten bedingung per makro anwenden

Hallo Herbert,

woher stammt diese aktuelle Farbkombination, manuell oder bed. Formatierung?
Letzteres ist schwieriger.

Gruß
Reinhard

ich möckte aus eine Zelle die aktuelle Farbkombination in eine
Variable übernehmen und diese in der Arbeitsmappe in einem
Zellbereich bei einer bestimmten bedingung per makro anwenden

Hallo Herbert,

Sub Makro1()
Range(„A1“).Copy
Range(„C2:smiley:8“).PasteSpecial Paste:=xlFormats
Range(„C2“).Select
Application.CutCopyMode = False
End Sub

Gruß
Reinhard

Hallo Reinhard,
danke für deine bemühungen!!!
code funktioniert.
leider habe ich mich nicht so klar ausgedrückt was ich erreichen wollte.

also nochmal.

Farbkombination steht in der Tabelle „INFO“ Zelle „H8“

verwenden in TABELLE „PV“ im folgenden Makro anstelle von

"„objCell.Interior.ColorIndex = 33"“ usw.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim objCell As Range
For Each objCell In Target
If Not Intersect(objCell, Range(„I6:I10000“)) Is Nothing Then
Select Case objCell.Text
Case „WJ 00/01“: objCell.Interior.ColorIndex = 33
Case „WJ 01/02“: objCell.Interior.ColorIndex = 34
Case „WJ 02/03“: objCell.Interior.ColorIndex = 35
Case „WJ 03/04“: objCell.Interior.ColorIndex = 36
Case „WJ 04/05“: objCell.Interior.ColorIndex = 37
Case „WJ 05/06“: objCell.Interior.ColorIndex = 38
Case „WJ 06/07“: objCell.Interior.ColorIndex = 39
Case „WJ 07/08“: objCell.Interior.ColorIndex = 40
Case „WJ 08/09“: objCell.Interior.ColorIndex = 42
Case „WJ 09/10“: objCell.Interior.ColorIndex = 43
Case Else: objCell.Interior.ColorIndex = xlNone
End Select
End If
Next
End Sub

entschuldige meine vorhergehende schlechte erklärung was ich vorhabe

gruß
herbert

Farbkombination steht in der Tabelle „INFO“ Zelle „H8“
verwenden in TABELLE „PV“ im folgenden Makro anstelle von
"„objCell.Interior.ColorIndex = 33"“ usw.

hallo Herbert,

der Code müßte schneller sein da intersect nur einmal abgefragt wird.

Private Sub Worksheet\_Change(ByVal Target As Range)
Dim objCell As Range
Set Target = Intersect(Target, Range("I6:I10000"))
If Target Is Nothing Then Exit Sub
With Worksheets("INFO")
 For Each objCell In Target
 Select Case objCell.Text
 Case "WJ 00/01": objCell.Interior.ColorIndex = .Range("H8").Interior.ColorIndex
 Case "WJ 01/02": objCell.Interior.ColorIndex = 34
 Case "WJ 02/03": objCell.Interior.ColorIndex = 35
 Case "WJ 03/04": objCell.Interior.ColorIndex = 36
 Case "WJ 04/05": objCell.Interior.ColorIndex = 37
 Case "WJ 05/06": objCell.Interior.ColorIndex = 38
 Case "WJ 06/07": objCell.Interior.ColorIndex = 39
 Case "WJ 07/08": objCell.Interior.ColorIndex = 40
 Case "WJ 08/09": objCell.Interior.ColorIndex = 42
 Case "WJ 09/10": objCell.Interior.ColorIndex = 43
 Case Else: objCell.Interior.ColorIndex = xlNone
 End Select
 Next objCell
End With
End Sub

Gruß
Reinhard

Grüezi Herbert

Farbkombination steht in der Tabelle „INFO“ Zelle „H8“

verwenden in TABELLE „PV“ im folgenden Makro anstelle von

"„objCell.Interior.ColorIndex = 33"“ usw.

Ich habe den Code noch ein klein wenig modifiziert und die erste Zeile entsprechend umgeschrieben - die restlichen musst Du halt noch anpassen:

Private Sub Worksheet\_Change(ByVal Target As Range)
Dim objCell As Range
 Set Target = Intersect(Target, Range("I6:I10000"))
 If Not Target Is Nothing Then
 For Each objCell In Target
 Select Case objCell.Text
 Case "WJ 00/01"
 objCell.Interior.ColorIndex = Worksheets("INFO").Range("H8").Interior.ColorIndex
 Case "WJ 01/02"
 objCell.Interior.ColorIndex = 34
 Case "WJ 02/03"
 objCell.Interior.ColorIndex = 35
 Case "WJ 03/04"
 objCell.Interior.ColorIndex = 36
 Case "WJ 04/05"
 objCell.Interior.ColorIndex = 37
 Case "WJ 05/06"
 objCell.Interior.ColorIndex = 38
 Case "WJ 06/07"
 objCell.Interior.ColorIndex = 39
 Case "WJ 07/08"
 objCell.Interior.ColorIndex = 40
 Case "WJ 08/09"
 objCell.Interior.ColorIndex = 42
 Case "WJ 09/10"
 objCell.Interior.ColorIndex = 43
 Case Else
 objCell.Interior.ColorIndex = xlNone
 End Select
 Next objCell
 End If
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Reinhard,
danke, der code funktioniert prima.
das tüpfelchen aus dem „i“ wäre wenn es nicht zu kompliziert ist nicht nur der hintergrund sondern auch die schriftfarbe übernommen würde.

noch einmal danke für bisher

gruß herbert

danke, der code funktioniert prima.
das tüpfelchen aus dem „i“ wäre wenn es nicht zu kompliziert
ist nicht nur der hintergrund sondern auch die schriftfarbe
übernommen würde.

Hallo herbert,

Thomas hat ja quasi den gleichen Code wie ich geschrieben.
Die optische Aufteilung der „case“ gefällt mir da besser.
Ich finde durch „:“ getrennte mehrfache Kommandos in einer Zeile nicht gut *persönliche Auffassung*

objCell.Interior.ColorIndex = .Range(„H8“).Interior.ColorIndex
ergibt ja die Zellenhintergrundfarbe
Mit
objCell.Font.ColorIndex = .Range(„H8“).Font.ColorIndex
kriegste die Schriftfarbe.

Gruß
Reinhard