Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aktualisierung bei Farbwechsel

Forumthread: Aktualisierung bei Farbwechsel

Aktualisierung bei Farbwechsel
07.09.2014 12:05:27
stormlamp

Hallo Zusammen,
in einer Arbeitsmappe übertrage ich Zellfarben von einem Tabellenblatt in ein anderes Tabellenblatt über ZELLE.ZUORDNEN und indirekter Adressierung.
Nun benötige ich nur noch ein Makro mit folgender Funktion:
Wenn in Tabelle1 irgendo die Zellfarbe geändert wird, soll automatisch Tabelle3 aktualisiert werden.
Kann mir dabei jemand helfen?
Freundliche Grüße
Hans

Anzeige

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktualisierung bei Farbwechsel
07.09.2014 12:12:08
Hajo_Zi
Hallo Hans,
lade doch mal eine Datei hoch. Das hätte ich gern gesehen wie man mit ZELLE.ZUORDNEN Farben überträgt.

AW: Aktualisierung bei Farbwechsel
07.09.2014 12:48:56
stormlamp
Hallo Hajo,
hier ist die Datei
https://www.herber.de/bbs/user/92507.xlsm
Die Farben aus Tabelle 1 werden über Hilfstabelle2 in Tabelle 3 übertragen.
Nur muss ständig bei einem Farbwechsel in Tabelle1 mittels F9 die Tabelle3 aktualisiert werden und das möchte ich gerne noch automatisieren.
Gruß
Hans

Anzeige
AW: Aktualisierung bei Farbwechsel
07.09.2014 12:57:16
Hajo_Zi
Hallo Hans,
ich habe gerade A10;E10 und I10 geändert und F9 gedrückt, einzeln und zusammen aber in Tabelle3 gibt es keine Farbveränderung.
Was mache ich falsch?

AW: Aktualisierung bei Farbwechsel
07.09.2014 13:00:23
stormlamp
Hallo Hajo,
Du hast die Farben für die Produktnummern "10", "j" und "jj" geändert.
Da diese Produktnummern in Tabelle3 nicht vorkommen, kann sich auch nichts ändern.
Gruß Hans

Anzeige
AW: Aktualisierung bei Farbwechsel
07.09.2014 13:03:14
Hajo_Zi
Hallo Hans,
es Stand nicht das ich eine bestimmte Zelle ändern muss.
Jetzt A9, gleicher Effekt.
Jetzt A5, gleicher Effekt.
Vielleicht solltest Du mittteilen welche Zelle geändert werden muss?
Gruß Hajo

Anzeige
offen
07.09.2014 13:08:06
Hajo_Zi
Hallo Hans,
die Aussage das die Farbe über Zelle.zuordnen geändert wird ist falsch. Es passiert über bedingte Formatierung und da auch nur für bestimmte Farben.
Gruß Hajo

AW: Aktualisierung bei Farbwechsel
07.09.2014 13:08:46
stormlamp
Hallo Hajo,
ändere bitte mal die Farbe in Tabelle1 Zelle E7 (=Produktnummer "g") in gelb.
Nach F9 ändert sich das Produkt "g" in Tabelle3. Dieses Produkt gibt es dort in Zelle F10.
Diese Zelle wird dann ebenfalls gelb.
Gruß
Hans

Anzeige
AW: Aktualisierung bei Farbwechsel
07.09.2014 13:20:01
Daniel
Hi
Ich blick zwar auch nicht, wie deine Tabelle funktioniert, aber das Grundproblem ist, dass eine Änderung eines Formats Excel nicht dazu veranlasst, die Formeln oder Namen neu zu berechnen!
Dh. deine Änderungen werden immer erst dann berücksichtigt, wenn du F9 drückst oder in einer Zelle einen Wert ändert. da kannst du auch nichts dran ändern und damit muss man leben, wenn man Formeln oder Namen verwendet, die mit Formaten rechnen.
Auch mit Makros lässt sich da nicht viel automatisieren, weil es noch kein Event für eine Formatänderung gibt.
Am dichtesten dran wäre noch, im selectionchange-Event die neuberechnung auszuführen, dass wäre dann beim Klick in die nächste Zelle.
Gruß Daniel

Anzeige
AW: Aktualisierung bei Farbwechsel
07.09.2014 13:36:02
stormlamp
Hallo Daniel,
danke für die Information. Beim selectionchange-Event würde das bei einer Mappe mit sehr vielen Formeln die Rechenleistung ziemlich beanspruchen und die gesamte Bearbeitung eventuell verlangsamen.
Dann wäre die Alternative, dass beim Öffnen der Datei ein Makro startet, das alle 5 Minuten "F9" drückt, aber möglichst ohne zu viel Rechenleistung zu benötigen, da dieses Makro ja dann ununterbrochen läuft.
Hast Du dafür vielleicht einen Code?
Freundliche Grüße
Hans

Anzeige
AW: Aktualisierung bei Farbwechsel
07.09.2014 13:51:25
stormlamp
Danke,
hat sich erledigt. Woanders hat man nicht über meine vielleicht nicht richtige Ausdrucksweise diskutiert, sondern mir geholfen
Hans

AW: Aktualisierung bei Farbwechsel
07.09.2014 14:43:06
Daniel
Schön.
Und wie sieht die Lösung aus?
Es wäre gut, wenn du sie hier zeigen würdest, falls mal jemand mit einer ähnlichen Frage erst im Archiv sucht.
Wenn die automatische Umfärbung auf einem anderen Blatt erfolgen soll, dann kannst du ja auch einfach dass Activate oder Deactivate-Event der entsprechenden Sheets verwenden.
SelectionChange wäre nur erforderlich, wenn auf dem selben Blatt.
Gruß Daniel

Anzeige
AW: Aktualisierung bei Farbwechsel
07.09.2014 16:38:36
stormlamp
Hallo Daniel,
Du warst nicht gemeint mit meinem Kommentar. Nun zu Deiner Frage:
Das Auslösen dieses Makros bei Änderung funktioniert nicht:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("A:A"))
If Target Is Nothing Then
Exit Sub
Else
Call Calculate
End If
End Sub
Die Aktualisierung wird nur dann ausgelöst, wenn ich einen Wert in der Spalte A ändere und die Zelle mit Return verlasse. Wenn ich die Zelle nur mit der Maus markiere und die Farbe ändere, funktioniert es nicht.
Daher sehe ich nur die Möglichkeit, zeitgesteuert eine Aktualisierung laufen zu lassen:
Private Sub Workbook_Open()
Call intervall
End Sub
Sub intervall()
Dim NextTime As Date
NextTime = Now + TimeValue("00:05:00")
Application.OnTime NextTime, "intervall"
Call Calculate
End Sub

Damit kann ich insgesamt arbeiten, obwohl das noch nicht ideal ist.
Mit der Übertragung der Farben bin ich auch noch nicht ganz zufrieden, obwohl es einigermaßen läuft. Ich muss anhand des über ZELLE.ZUORDNEN(63,...) ausgelesenen Farbcodes für jeden einzelnen Code eine bedingte Formatierung schreiben, um eine andere Zelle mit einer bestimmten Hintergrundfarbe auszustatten.
Bisher habe ich noch keine Möglichkeit gefunden, aus dem ausgelesenen Farbcode mit einer einzigen bedingten Formatierung die gleiche Farbe wieder zu erzeugen.
Mit freundlichen Grüßen
Hans

Anzeige
AW: Aktualisierung bei Farbwechsel
07.09.2014 18:15:19
stormlamp
Nachtrag:
Es gibt eine Möglichkeit, auf Farbwechsel zu reagieren, aber das funktioniert bisher nur, wenn ich nach dem Farbwechsel auf eine andere Zelle klicke, die ebenfalls eine Farbe hat:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:Z1000")) Is Nothing Then
If Target.Interior.ColorIndex <> xlNone Then
Call Calculate
End If
End If
End Sub
Gruß
stormlamp

Anzeige
AW: Aktualisierung bei Farbwechsel
07.09.2014 19:52:02
Daniel
Wenn du im Blatt 1 die Farben änderst und sich das im Blatt 3 per Formel gesteuert auswirken soll, dann kannst du dich einfach die Neuberechnung beim Blattwechsel ausführen lassen, dh im Deactivate-Event von Blatt 1 oder im Activate- Event von Blatt 3.
Wenn mehrere Blätter betroffen sind, dann gibt's diese Events auch im Modul "DieseArbeitsmappe", welche dann bei jedem Wechsel das aktiven Blatts ausgeführt werden, egal um welches Blatt es sich handelt.
Gruß Daniel

Anzeige
Diese Art von Farbwechsel-Übertragung ...
08.09.2014 02:01:16
Luc:-?
…halte ich für unnötig aufwendig und damit mehrfach problembelastet, Hans,
denn du hast so gleich 2 Probleme. Das 1. wurde bereits benannt und erklärt, aber das kann man auch durch Erzeugung einer künstlichen Volatilität teilweise lösen. Das 2. besteht in der Verwendung der Farbindizes anstelle der tatsächlichen RGB-Farbcodes, was ggf nur in den alten XlVersionen zufriedenstellend fktioniert. Aber das ließe sich ja auch ändern.
Für 1. müsste man die benannte Fml zwar nur mit 1^JETZT() multiplizieren, dann würde auch ein Klick auf eine beliebige Zelle ausreichen, aber da nur 3 Farben benutzt wdn sollen, müssen dann auch alle gleichfarbigen Zellen geändert wdn, was doch wohl recht unpraktisch ist. Hier sollte sich eine BedingtFormatierung in allen Blättern auf eine Legende beziehen, in der die Farben leicht auszutauschen wären, was dann pro Farbe nur eines Klicks bedürfte, um alle gleichgefärbten Zellen farblich zu ändern, wenn dem ein entsprechendes EreignisPgm unterlegt wird.
Mir kommt das jedenfalls ziemlich unhandlich vor, auch, wenn keine Farben geändert, sondern nur ungefärbte Zellen nachträglich in einer der 3 Farben gefärbt wdn sollen. Der Sinn des Ganzen erschließt sich mir aus dem Bsp nicht, was einen ggf optimaleren Lösungsvorschlag ausschließt. Deshalb kann mein Einwurf auch nicht als ein solcher betrachtet wdn.
Gruß, Luc :-?

Anzeige
keep it simple :-)
08.09.2014 12:41:54
stormlamp
Hallo Luc,
danke für Deinen Lösungsvorschlag. Ich muss nur darauf hinweisen, dass meine VBA-Kenntnisse sehr bescheiden sind.
Hintergrund der Anwendung:
In der Tabelle1 arbeitet die Abteilung Disposition. Für jede andere Abteilung gibt es ein weiteres Tabellenblatt in dem die jeweils nur für diese Abteilung erforderlichen Tätigkeiten aufgelistet sind. Die gesamten Tätigkeiten der verschiedenen Abteilungen werden über SVERWWEIS mit der Dispositiontabelle gekoppelt.
Nun macht es sich die Disposition recht einfach und färbt manuell einfach die einzelnen Auftragszeilen ein
rot = Liefertermin überschritten, gelb=Liefertermin kritisch, grün=Liefertermin ungefährdet.
Diese Farb-Information soll in die anderen Tabellen übertragen werden, aber in der ersten ziemlich großen Tabelle darf nichts geändert werden.
Also fand ich nur den Weg, die Farbinformationen der ersten Tabelle in eine Hilfstabelle zu übertragen, die gegen Löschungen und verschieben in der Haupttabelle immun ist.
Die Produktnummer holen ich mir über die Formel:
A1=INDIREKT("Tabelle1!A"&ZEILE())

Die zugehörige Farbe hole ich mir über eine eigene Funktion
Zeilenfarbe=ZELLE.ZUORDNEN(63;INDIREKT("Tabelle1!A"&ZEILE()))
Je nachdem was dort steht, färbe ich dann mittels bedingter Formatierung die Zielzellen in den anderen Tabellenblättern mit den 3 benötigten Farben ein. Diese Art der Farbübertragung ist vielleicht umständlich und holprig, aber das entspricht noch so eben meinen Excel-Kentnissen und funktioniert in excel 2010 und 2013.
Natürlich hätte ich lieber in der Hilfstabelle die RGB-Farben ausgelesen und diese Farben dann direkt in die Zielzellen geschrieben.
Aber da komme ich zu sehr in den VBA-Bereich, von dem ich nichts mehr verstehe und auch die Erklärungen nicht, die ich so beim googeln gefunden habe.
Und dann müsste ich in diese VBA-Codes mit "Interior.ColorIndex" auch noch meine indirekten Adressierungen einbauen und dann kommt der Block des Zurückschreibens der Farben..... Das ist zuviel des Guten :-)
Trotzdem danke für Deine Anmerkungen
Hans

Anzeige
Aha, na dann... ;-) Viel Erfolg! Gruß owT
08.09.2014 19:00:27
Luc:-?
:-?

AW: Aha, na dann... ;-) Viel Erfolg! Gruß owT
10.09.2014 01:33:40
Ewald
Hallo,
auch wenn ein Farbwechsel kein Ereignis hat,was man benutzen kann, so ist es trotzdem kein Problem diese Änderung nachzuvollziehen.
zum Testen
in ein Modul
Public addr As String
Public alterWert As Long
in das Tabellenmodul
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim olda
If addr <> "" Then
olda = addr
If Range(olda).Interior.Color <> alterWert Then
MsgBox " Im Bereich " & olda & " wurde die Farbe geändert von " & alterWert & " auf " &  _
Range(olda).Interior.Color
End If
End If
addr = Target.Address(0, 0)
alterWert = Range(addr).Interior.Color
End Sub
jetzt die Farbe in Tabelle3 zu ändern, sollte kein Problem sein
Gruß Ewald

Anzeige
;
Anzeige

Infobox / Tutorial

Automatische Aktualisierung von Zellfarben in Excel


Schritt-für-Schritt-Anleitung

  1. Vorbereitung: Stelle sicher, dass Du ein Excel-Dokument hast, in dem Du Zellfarben über die Funktion ZELLE.ZUORDNEN überträgst. Die Anleitung funktioniert in Excel 2010 und 2013.

  2. Zellen verbinden: Verwende die Funktion ZELLE.ZUORDNEN, um die Farbe der Zellen von Tabelle1 in eine Hilfstabelle zu übertragen. Beispiel:

    =ZELLE.ZUORDNEN(63;INDIREKT("Tabelle1!A"&ZEILE()))
  3. Bedingte Formatierung einrichten: Füge in Tabelle3 eine bedingte Formatierung hinzu, die basierend auf den Farbcodes aus der Hilfstabelle die Hintergrundfarbe der Zellen ändert.

  4. Makro zur Aktualisierung: Erstelle ein Makro, das die Tabelle automatisch aktualisiert, wenn sich die Zellfarben ändern. Beispiel:

    Private Sub Workbook_Open()
       Call intervall
    End Sub
    
    Sub intervall()
       Dim NextTime As Date
       NextTime = Now + TimeValue("00:05:00")
       Application.OnTime NextTime, "intervall"
       Call Calculate
    End Sub
  5. Farbwechsel überwachen: Implementiere ein VBA-Skript, um auf Farbänderungen zu reagieren:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       If Not Intersect(Target, Range("A1:Z1000")) Is Nothing Then
           If Target.Interior.ColorIndex <> xlNone Then
               Call Calculate
           End If
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Keine Aktualisierung nach Farbänderung
    Lösung: Stelle sicher, dass die Farben in den Zellen, die Du änderst, auch in Tabelle3 vorhanden sind. Andernfalls wird die bedingte Formatierung nicht angewendet.

  • Fehler: Makro löst nicht aus
    Lösung: Überprüfe, ob das Makro im richtigen Modul gespeichert ist und ob Du die richtigen Bereiche für die Überwachung festgelegt hast.


Alternative Methoden

  • Verwendung von Events: Nutze das Deactivate- oder Activate-Event von Arbeitsblättern, um die Neuberechnung auszulösen, wenn Du zwischen Blättern wechselst.

  • Künstliche Volatilität: Du kannst eine Formel wie =JETZT() verwenden, um die Berechnung zu erzwingen, wenn sich die Zeit ändert.


Praktische Beispiele

  1. Farbübertragung mit SVERWEIS: Setze SVERWEIS in Kombination mit bedingter Formatierung ein, um Farben aus Tabelle1 in Tabelle2 zu übertragen, basierend auf Produktnummern.

  2. Zellen in verschiedenen Blättern: Verwende das SelectionChange-Event, um die Farben in verschiedenen Blättern zu aktualisieren, wenn Du Zellen in Tabelle1 änderst.


Tipps für Profis

  • Leistungsoptimierung: Achte darauf, dass Du die Neuberechnung nicht zu oft auslöst, um die Rechenleistung nicht unnötig zu belasten. Ein Intervall von 5 Minuten ist oft ausreichend.

  • Verwendung von Farbcodes: Statt Farbindizes solltest Du nach Möglichkeit RGB-Farbcodes verwenden, da diese in verschiedenen Excel-Versionen konsistenter arbeiten.


FAQ: Häufige Fragen

1. Wie kann ich die bedingte Formatierung in Excel aktivieren?
Um die bedingte Formatierung zu aktivieren, gehe auf das Menü „Start“ und wähle „Bedingte Formatierung“ aus. Dort kannst Du Regeln festlegen, die auf Farbcodes basieren.

2. Warum funktioniert die Aktualisierung nicht sofort?
Excel reagiert nicht automatisch auf Formatänderungen. Du musst entweder F9 drücken oder ein Makro verwenden, um die Neuberechnung auszulösen.

3. Kann ich das Makro anpassen?
Ja, Du kannst das Makro anpassen, um es an Deine spezifischen Anforderungen und Zellenbereiche anzupassen. Achte darauf, die richtigen Zellreferenzen zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige