Excel wenn zelle von bis im tabellenblatt 2 farbe dann zelle von bis Tabellenblatt 1 gleiche Farbe

2 Antworten

Mit Farben kann man [meistens] nicht direkt arbeiten. Excel ist eine Tabellenkalkulation und dort wird überwiegend gerechnet und das Ergebnis wäre etwa eine Zahl. Also etwa eine Formel eintragen die 1 oder 0 ergibt. Dann kann ich per bedingter Formatierung dafür sorgen, dass die 1 eine Farbe bekommt und wenn es sein muss die 0 eine andere.

ich stimme Mr Process uneingeschränkt zu. Die Formatdatei sorgt leicht für zusätzliche Fehler.
Wenn du einverstanden bist, ALLE FORMATE zu übertragen, ließe sich Dein Problem vermutlich relativ einfach mit einem Makro lösen, das ich jetzt aber nicht ausprobiere (nur aus dem Gedächtnis):
gefärbten Bereich markieren, dann aufrufen:

Sub FarbenSchicken()
Dim Sel, Quellblatt, Zielblatt
Quellblatt = activesheet.name
Zielblatt = "musst Du definieren"
Sel = Selection.address (external:=false)
Selection.copy
Worksheets(Zielblatt).activate : Range(Sel).select
Selection.pastespecial(xlformats)
Worksheets(quellblatt).activate
CutCopymode = false 'entspricht Esc, die "Ameisen" verschwinden
End Sub

Wolltest Du das Zelle für Zelle haben, würde das recht umständlich werden und lange dauern. Ausserdem müsste eine Prüfung vorausgehen etwa derart (Dim c , ciFarbe )
For each c in selection
if (c.interior.colorindex <> xlautomatic) And (c.interior.colorindex <> xlnone) then
ciFarbe = c.interior.color
'Dann Blattwechsel, Zieladresse analog c
'(vorher also Dim ZA , ZA = c.address (external:= false)
activesheet.range(ZA).interior = ciFarbe
'Blattrückwechsel...
end if

'(vllt ginge es auch ohne ständigen Blattwechsel, hab ich nicht mehr im Kopf. Ist aber ohnehin ein Beispiel, wie Du es vermeiden sollst!)
Ausserdem weiß ich nicht, wie Du es machst, dass sich verschiedene Mitarbeiter-Farben nicht gegenseitig löschen. Könntest jedem eine Zahl zuweisen und mit
Selection.offset(0, MitarbeiterZahl).pastespecial(xlformats)
jeden in eine andere Spalte projizieren.