Exel Zellenfarbe einer anderen Zelle übernehmen

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Dieses Makro wird ausgeführt, wenn neu berechnet wird (...Calulate).
Im VBA-Monitor (erreichbar mit F11) in das entsprechende Arbeitsblatt (hier(Tabelle 1) kopieren und .... fertig.

Private Sub Worksheet_Calculate()
For i = 8 To 23 'von...bis Zeile
    Cells(i, 14).Select 'Zeile 8, Spalte 14 (N)
        Selection.Copy 'Formatierung holen
    Range(Cells(i, 15), Cells(i, 19)).Select 'auswählen Zielbereich 1
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

Cells(i, 14).Select 'nochmal Formatierung holen
Selection.Copy
Range(Cells(i, 21), Cells(i, 24)).Select 'auswählen Zielbereich 2
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

Next i
End Sub

(natürlich gehören Next I und End Sub mit ins Makro, das will hier aber nicht in den Code)

Berichte mal, ob es so gedacht war.

Gruß aus Berlin

Woher ich das weiß:Hobby – Jahrelanges programmieren.
Makro ändert Farben - (Microsoft, Microsoft Excel)
MrAnonym87 
Fragesteller
 07.08.2012, 11:02

Makro funktionier, jedoch leider nicht, wie es soll :-D

was nun passiert ist, dass die Bedingte Formatierung und nicht die Farbe, die durch die Bedingte Formatierung ausgegeben wird an die folgenden Zellen weitergegeben wird, das heißt, die Farben in Spalte O-X richten sich nach der Höhe der Zahl, nicht nach farbe der nachbarzellen.

Sollte mich wohl damit abfinden, dass es nicht gehen mag :-(

dennoch danke für die Mühe

0

Als eventuelle Lösung sehe ich hier noch de Erstellung eines Makros.

Dieses Makro könnte gestartet werden, wenn
a) Neuberechnung durchgeführt wird oder
b) auf Befehl per Button.

Voraussetzung ist, dass sich die zu färbenden Zellen nicht "verschieben".
Das Makro merkt sich dann die Farbe der Quellzelle
"Farbe = Cells(Zeile, Spalte).Interior.Color"
und schreibt diese Farbe in die Zielzellen.
"Cells(Zeile, Spalte).Interior.Color = Farbe"

Vielleicht hilft diese Anregung weiter.

Gruß aus Berlin

Woher ich das weiß:Hobby – Jahrelanges programmieren.
MrAnonym87 
Fragesteller
 07.08.2012, 09:16

Hi,

mit Makros habe ich noch nicht gearbeitet, könntest du mir zum Verständnis die komplette Formel zur Farbübernahme aus N8 und zur Farbausgabe an O8-S8;U8-X8 schreiben? Habe jetzt schon hin und her getestet, aber bekomme immer nur Fehlermeldungen, die Exel-Hilfe hilft auch nicht wirklich weiter :-P

Und noch eine Frage zur Übernahme an andere Zeilen, Ich möchte ja jede weitere Spalte bis zur Nr. 23 fortführend die Farbe von Spalte N an die oben aufgeführten weitergeben. Ist es Möglich das Makro auch in diese Richtung zu schreiben, oder muss pro Quellzelle ein extra Makro her?

Letzte Frage, wie kann man implementieren, dass ein Makro automatisch bei einer Neuberechnung ausgeführt wird, immer das Makro zu starten, ist ja über die Menüleiste möglich.

Danke im Vorraus

0
Iamiam  08.08.2012, 13:37
@MrAnonym87

Cells(Zeile, Spalte).Interior.Color dachte ich auch, aber das liest nur die Grundfarbe der Zelle aus, nicht die durch bedingte Formatierung hervorgerufene Farbe. Eine Makro-Aufzeichnung dieses Phänomens brachte einen so komplizietrten Code bzw so kompliziert sinnvoll nachzustellenden Code, dass ich das gar nicht erst versucht habe:
da müsste man die Priorität der Bedingung, die Festlegung der Formatierung für die jeweilige Priorität und ihre Erfüllung durch die Zahl miteinbeziehen... (wäre schätzungsweise ein mehrtägiger Lernprozess und hinterher nicht mehr zu vermitteln -da kapituliere ich!)

0
MrAnonym87 
Fragesteller
 08.08.2012, 14:41
@Iamiam

:-D hab ich mir schon gedacht, aber trotzdem danke für die verdeutlichung der Schwierigkeit ;)

0

Oh je, ... ... meine Bemühungen, dem Makro die Farben beizubringen (Color und ColorIndex) laufen alle darauf hinaus, dass die Grundfarbe der Zelle kopiert wird, nicht aber die durch die bedingte Formatierung erzwungene Fabe weiterbearbeitet werden kann.
Also der falsche Weg.
Aber ...
man kann doch die bedingte Formatierung auch auf ANDERE Zellen anwenden.
Ich habe mal im anliegenden Bild (hochladen NUR als "Antwort", nicht in "Kommentar") die Bedingung in Zelle N3 (wenn größer als 10) auf die Bereiche N8 bis S8 und U8 bis X8 ausgedehnt.

Das sollte den Anforderung genügen (?)

Gruß aus Berlin

Woher ich das weiß:Hobby – Jahrelanges programmieren.
bedingteFormatierung - (Microsoft, Microsoft Excel)
MrAnonym87 
Fragesteller
 07.08.2012, 13:03

leider nein, denn die skala geht von 0-max 59 und wird ab 60 auf 0 reduziert, alle werte über 60 werden anderweitig addiert,... ich werde jetzt einfach eine Sotierung mit einbauen und so den Farbverlauf fest auf die zellen einbringen, ohne bedingte formatierung, dann passen die farben immerhin :-D herzlichen dank für die Mühe und schöne Grüße zurück nach Berlin

0

Ich habe jetzt mal eine zeitlang herum probiert, finde dafür aber leider keine Lösung.
Selbst wenn ich bei der Farbskala Formel einsetzte, bekomme ich es nicht hin.
Die einzige Möglichkeit, die ich da sehe, ist mehrere Bedingte Formatierungen zu erstellen, in abgestuften Farbtönen, und für diese Formeln festzulegen, die sich auf die Nachbarspalte beziehen.
Eine andere Möglichkeit sehe ICH im Moment nicht.

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
MrAnonym87 
Fragesteller
 06.08.2012, 14:28

Ist leider auch nicht möglich, da man ja keine feste Anzahl von Farben hat, da Werte identisch sein können und so den selben Endwert bekommen (folglich auch die selbe Farbe) und da es ein Fließender Übergang ist, den man (in meinem Fall grün über gelb zu rot) kann man auch nichts festes einstellen, außer man setzt sich von anfang an ca 24 Farben fest und geht dann über Formel (% vom Maximalwert oder ähnlichem)

--> recht umständlich, dachte man könne es anderweitig Einbinden

0

Ich hab den Problem nicht 100% verstanden, aber kannst du die benachbarten Zellen nicht einfach gleich formatieren, wie die vorgegeben Zelle (diese mit der richtigen Farbe)?

MrAnonym87 
Fragesteller
 06.08.2012, 13:00

leider nein, denn die Farblich formatieren Zellen haben andere werte.

z.B. wenn jetzt zellen A1-A12 Zahlenwerte haben und sich daraus die Farbliche Makierung ableitet und B1-B12 kommentare zu A1-A12 Beinhalten, kann man ja nach Kommentaren keinerlei Formeln, oder sonstige Werte eingeben. (in wirklichkeit sind in den folgenden nachbarzeilen aber weitere berechnungsformeln, die jedoch nicht Farblich sotiert werden können, da diese von A1-A12 abweichen und in keinerlei relation stehen)

anderst ausgedrückt: die bedingt Formatierten Zellen ergeben sich aus einer Reihe von Rechnungen/Formeln und die darauffolgenden Zellen haben nichts mehr damit am Hut, sollen aber die selbe Farbliche Kennzeichnung beibehalten und sich Farblich anpassen. (A1-A12 berechnen sich durch einen Grundwert, den man z.B. in H1-K1 an Werten eingeben kann -->Variablen)

0