Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
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

Zellen einfärben wenn, 2 Tabellenblätter

Zellen einfärben wenn, 2 Tabellenblätter
15.11.2018 10:50:07
Stephanie
Guten Tag,
ich bin VBA-technisch leider völlig aus der Übung und schaffe es nicht mir den richtigen Code zusammen zu stückeln.
Folgendes (hoffentlich versändlich formuliertes) Problem:
Ich habe zwei Tabellenblätter. In Tabellenblatt1, Spalte C, habe ich eine Auflistung von Kürzeln (z.B. "WB 1.01", "WB 1.02", "WB 3.05", "WB 8.23" etc.). Die genaue Anzahl kann variieren.
Jedes Kürzel hat seine eigene Farbe, soll heißen, die Zellen in denen die Kürzel stehen sind jeweils unterschiedlich eingefärbt.
In Tabellenblatt2 (Spalten D, L, T, AB) tauchen dieselben Kürzel wieder auf, in unvorhersehbarer Anzahl und Reihenfolge. Es ist auch möglich, dass ein Kürzel aus Tabellenblatt1 in Tabellenblatt2 nicht vorkommt.
Nun möchte ich den Kürzeln, bzw. den Zellen in denen sie stehen, in Tabellenblatt2 automatisch dieselben Farben zuweisen, die sie auch in Tabellenblatt1 haben.
Wie stell ich das am Geschicktesten an?
Vielen Dank,
Stephanie

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen einfärben wenn, 2 Tabellenblätter
15.11.2018 11:04:33
Werni
Hallo Stephanie
Versuchs mal mit Bedingtem Format.
Gruss Werni
AW: Zellen einfärben wenn, 2 Tabellenblätter
15.11.2018 13:19:49
Stephanie
Hallo Werni,
mit bedingter Formatierung kann ich nicht automatisch die Farbe aus bereits gefärbten Zellen entnehmen, zumindest wüsste ich nicht wie. Und ich möchte ja gerade nicht händisch mehrere Dutzend Kürzel-Farb-Kombinationen definieren.
Gruß,
Stephanie
AW: Zellen einfärben wenn, 2 Tabellenblätter
15.11.2018 13:35:06
SF
Hola,
wenn jedes Kürzel seine eigene Farbe hat kannst du die doch per bedingter Formatierung färben. Das ganze dann auf dem anderen Blatt analog.
Gruß,
steve1da
AW: Zellen einfärben wenn, 2 Tabellenblätter
15.11.2018 14:26:20
Stephanie
Hallo steve,
vielleicht steh ich auf dem Schlauch. Klar kann ich mit bedingter Formatierung die Zellen färben, aber dann müsste ich doch für jedes Kürzel eine eigene Regel anlegen, damit denen jeweils die von mir gewünschte Farbe zugewiesen wird, oder nicht? Denn es sollen bestimmte Farben (mit fest definierten RGB-Werten)sein, keine von Excel automatisch gewählten.
Und bei der aktuellen Datei z.B. sind das 80 Kürzel. Bei zukünftigen Dateien können es auch mal mehr werden. Da möchte ich nicht für jedes zusätzliche Kürzel ne neue Regel schreiben, sondern möglichst nur das neue Feld in Tabellenblatt1 einfärben.
Gruß,
Stephanie
Anzeige
AW: Zellen einfärben wenn, 2 Tabellenblätter
15.11.2018 14:29:38
SF
Hola,
naja, ich bin davon ausgegangen:
Jedes Kürzel hat seine eigene Farbe

Wie werden die denn aktuell gefärbt?
Gruß,
steve1da
AW: Zellen einfärben wenn, 2 Tabellenblätter
16.11.2018 11:28:54
Stephanie
Hi,
die Datei ist schon etwas älter, will die jetzt nur soweit möglich automatisieren. Ursprünglich hab ich einfach jede Zelle händisch eingefärbt...
Dank Peters Code funktioniert das aber jetzt.
Gruß,
Stephanie
AW: Zellen einfärben wenn, 2 Tabellenblätter
15.11.2018 14:23:29
PeterK
Hallo
Die Tabellen-Namen musst Du entsprechend anpassen

Option Explicit
Sub CopyColor()
Dim toColorRange As Range
Dim foundRange As Range
Dim i As Long
Dim toFind  As String
Dim myColor As Long
Dim firstAddress
' Den Range definieren der durchsucht werden soll
Set toColorRange = Range("Tabelle2!A:A,Tabelle2!C:C,Tabelle2!E:E")
Tabelle3.Activate ' Tabelle in der die Suchbegriffe stehen
For i = 1 To Cells(Rows.Count, 3).End(xlUp).Row  ' Geht die Werte in Spalte C durch
toFind = Cells(i, 3).Value  ' Spalte C
myColor = Cells(i, 3).Interior.ColorIndex  ' Spalte C
Set foundRange = toColorRange.Find(what:=toFind, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not (foundRange Is Nothing) Then
firstAddress = foundRange.Address
Do
foundRange.Interior.ColorIndex = myColor
Set foundRange = toColorRange.FindNext(foundRange)
Loop Until foundRange.Address = firstAddress
End If
Next i
End Sub

Anzeige
AW: Zellen einfärben wenn, 2 Tabellenblätter
15.11.2018 14:37:30
PeterK
Hallo
Wenn Du RGB Farben verwendest : Bitte Interior.Color statt Interior.ColorIndex
AW: Zellen einfärben wenn, 2 Tabellenblätter
16.11.2018 11:26:38
Stephanie
Vielen Dank!
Das hat mit kleinen Anpassungen funktioniert! Mit Interior.Color statt Interior.ColorIndex dann auch für alle Farben ^^
Eine Frage trotzdem noch, nur zum Verständnis, was bewirkt dieser Teil des Codes?
If Not (foundRange Is Nothing) Then
firstAddress = foundRange.Address
Do
foundRange.Interior.ColorIndex = myColor
Set foundRange = toColorRange.FindNext(foundRange)
Loop Until foundRange.Address = firstAddress
Grüße,
Stephanie
AW: Zellen einfärben wenn, 2 Tabellenblätter
16.11.2018 11:41:21
PeterK
Hallo

' liefert ein Range-Objekt mit der ersten Fundstelle im "ToColorRange"
Set foundRange = toColorRange.Find(what:=toFind, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext)
' Wenn nichts gefunden wurde ist das Range-Objekt "leer" d.h. "Nothing"
If Not (foundRange Is Nothing) Then
' Da wir weitersuchen wollen müssen wir uns die erste Fundaddresse merken, da
' FindNext "im Kreis läuft", d.h. nach der letzten Fundstelle kommt wieder die Erste
firstAddress = foundRange.Address
' Wir beginnen die Schleife (suche ALLE Vorkommen)
Do
' Die gefunde Zelle wird neu gefärbt
foundRange.Interior.Color = myColor
' Wir suchen das nächste Vorkommen
Set foundRange = toColorRange.FindNext(foundRange)
' Wenn wir wieder die Erste Addresse bekommen sind wir fertig
Loop Until foundRange.Address = firstAddress
End If

Anzeige
AW: Zellen einfärben wenn, 2 Tabellenblätter
16.11.2018 15:24:56
Stephanie
Super, noch mal danke.

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige