Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1740to1744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellenfarbe übernehmen

Zellenfarbe übernehmen
19.02.2020 16:52:44
Jimmy
Hallo zusammen,
ich habe 2 Excel-Blätter ohne Zahlen.
In Blatt 1 sind ungefähr 100 Zellen (Spalte A).Jede Zelle hat einen anderen Text und eine zugewiesene Farbe. Die Spalte ist also bunt.
In Blatt 2 sind ungefähr 500 Zellen (Spalte H) und diese beinhalten Zellen, die den gleichen Text haben wie die Zellen in Blatt 1. Blatt 2 aber ohne Farbe.
Nun möchte ich, dass die Farben aus Blatt 1, Spalte A auch auf Blatt 2, Spalte H übertragen werden, wenn die Zelle den gleichen Text hat.
das heisst:
Wenn Text einer Zelle in Spalte A aus Blatt 1 gleich ist wie der Text in Spalte H aus Blatt 2 , dann Zellenfarbe aus Spalte A Blatt 1 automatisch übernehmen für Blatt 2 Spalte H.
Wie geht das mit der Bedingten Formatierung?
Bitte helft mir :-) Ganz herzlichen Dank im voraus.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellenfarbe übernehmen
19.02.2020 16:55:47
Hajo_Zi
damit geht es nicht.
Im Blatt 1 wird die Farbe nicht über bedingte Formatioerung gefärbt.

AW: Zellenfarbe übernehmen
19.02.2020 16:56:03
SF
Hola,
mit der bedingten Formatierung kann man keine Farben auslesen.
Gruß,
steve1da
Im Prinzip geht das schon, ...
20.02.2020 03:03:35
Luc:?
…Jimmy,
aber nur mit VBA, weshalb du wenigstens auch über Basiskenntnisse in VBA verfügen solltest. Außerdem würde ich das nur empfehlen, wenn die davon betroffene ZellAnzahl nicht sehr groß ist (100 geht bestimmt), es sich bei der 2.Tabelle um eine Kopie der 1. handelt und auf nachträgliche (Wert- bzw) TextÄnderungen in einer der beiden Tabellen geprüft wdn soll und im Kopie-PrüfBereich keine weiteren BedingtFormatierungen vorhanden sind. Anderenfalls könnte die Anzahl verarbeitbarer Formatierungen schnell überschritten wdn. Der Vorteil ist, dass das Programm nur dann erneut laufen muss, wenn die Farben in der OriginalTabelle geändert wdn. (Dazu mal ein ProgrammBsp im Anhang, das für jede relevante Zelle der Kopie eine eigene BedingtFormatierung anlegt.)
Aber das ist hier ja nicht dein Problem, sondern die Texte der 2.Tabelle sollen/müssen in der 1.Tabelle gesucht und vgln wdn (Xl-Fkt VERGLEICH, in VBA WorksheetFunction.Match). Das ginge zwar ebenfalls per BedingtFormatierung, ist aber kaum zu empfehlen. Besser wäre hier ein Programm, das die DirektFärbung der beim Vgl in der 1.Tabelle gefundenen Zelle (bzw ihrer Schrift) ausliest und auf die Zelle (bzw Schrift) der 2.Tabelle mit identischem bzw gleichem Inhalt überträgt. Dazu sollte jeder ZellInhalt der 2.Tabelle per .Match mit allen ZellInhalten der 1. vgln wdn, denn dabei dürfte wohl schon 1 Treffer ausreichen (vorausgesetzt, jeder Text kommt in der 1.Tabelle nur maximal 1× vor). So etwas könnten hier etliche pgmmieren, falls sie interessiert sind und du damit zurecht kommen würdest. Anderenfalls könnte man aber auch mit einer Hilfsspalte und Formel …
=WENNFEHLER(VERGLEICH(Tab2!A1;Tab1!A1:A100;0);0)
…feststellen, ob der Text der jeweiligen Tabelle2-Zelle in Tabelle1 vorkommt. In diesem Fall wird in deinem Fall die Position im SpaltenBereich der 1.Tabelle zurückgegeben. Mit dieser Angabe könnte man per INDEX auch auf die dortige Zelle verweisen und per uralter XLM-Fkt ZELLE.ZUORDNEN (nur in .xlsm-Dateien per benannter Formel!) mit 1.Argument =38 bzw 63 den (heute kaum noch ausreichenden) FarbIndex (56 Indizes gesamt) der Zelle auslesen. Man könnte allerdings auch den echten Farbwert auslesen, benötigte dafür aber eine VBA-basierte UDF. Allerdings kann man das nicht in einer manuell erstellten BedingtFormatierung verwenden, es sei denn, man hat die 3 einzelnen RGB-Werte ermittelt. Aber das wäre ohnehin manuell viel zu aufwendig. Mit einer VBA-Subprozedur ist man da besser bedient.
Morhn, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anhang (nur Bsp, nicht für das vorliegende Problem, sondern wie anfangs beschrieben):
Sub bedZFarbKopie()
Const adQBer$ = "A1:B3", naQTaB$ = "Tabelle3"
Dim spx As Long, zlx As Long, qBer As Range, zBer As Range, xZ As Range, _
qTaB As Worksheet
Set qTaB = Worksheets(naQTaB): Set qBer = qTaB.Range(adQBer)
Set zBer = ActiveWindow.RangeSelection
With zBer.FormatConditions
If CBool(.Count) Then .Delete
End With
For Each xZ In zBer
With zBer.Cells(1)
spx = xZ.Column - .Column + 1: zlx = xZ.Row - .Row + 1
End With
With xZ.FormatConditions
.Add xlCellValue, xlEqual, "='" & qTaB.Name & _
"'!" & qBer.Cells(zlx, spx).Address(0, 0)
.Item(1).Interior.Color = qBer.Cells(zlx, spx).Interior.Color
End With
Next xZ
Set qBer = Nothing: Set zBer = Nothing: Set qTaB = Nothing
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige