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

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

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

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?

Anzeige
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

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

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

Anzeige
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

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

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

Anzeige
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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige