Excel: Bedingte Formatierung für geänderten und neu eingegeben Zelleninhalt
Hallo liebe Leute..
Es ist mal wieder soweit, dass ich in einem Fall nicht weiterkomme und da setze ich meine Hoffnung wieder ganz auf Euch:
Ich habe eine Excel-Tabelle, auf die 5 Personen Zugriff haben. Jede dieser Personen soll Änderungen an der Tabelle vornehmen können - sowohl neue Inhalte in festgelegte Zellen eingeben, als auch vorhanden Inhalte in diesen festgelegten Zellen ändern oder entfernen.
Nun möchte ich erreichen, dass sich nach erfolgter Änderung an einer oder mehreren der Zellen, die Hintergrund-/Füllfarbe der geänderten Zelle ändert, damit alle anderen diese Änderungen erkennen können.
Einmal wöchtenlich würde ich die Farben wieder komplett auf weiß stellen, so dass man jeweils die Änderungen verfolgen kann, welche innerhalb einer Woche vorgenommen werden.
Kann mir jemand sagen, wie ich solch eine Formatierung einrichte? Ich finde leider nur, wie man entweder bei bestimmten Inhalten die Füllfarbe ändert oder wenn in leeren Zellen etwas eingegeben wird, nicht aber wenn irgendwelche inhaltlichen Änderungen vorgenommen werden.
Es handelt sich hierbei sowohl um Zahlen als auch um textlichen Inhalt in den Zellen.
Vielen Dank für Eure Unterstützung..
5 Antworten
Also das kannst du ganz einfach machen. Gehe mal in dein Tabellenblatt in welchem die Änderungen vorgenommen werden und dann mit ALT+F11 in den VBA Code für diese Tabelle. Da gibst du dann folgenden Code ein:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, Range("a:xfd")) Is Nothing) Then
Target.Interior.ColorIndex = 3
End If
End Sub
Hier werden jetzt sämtliche Änderungen in dieser Tabelle farbig hinterlegt.
Du kannst die Farbe (hier 3 = Rot) auch ändern wie du willst, dafür musst du dich an den Colorindex halten.
Wenn deine Tabelle jetzt sehr weit nach rechts geht, würde ich dir raten die Spalte A falls sie nicht benutzt wird auf eine breite 1,00 zu machen. Oder natürlich eine weitere einfügen und dann folgenden Code zu nehmen:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, Range("a:xfd")) Is Nothing) Then
Target.Interior.ColorIndex = 3
Cells(Target.Row, 1).Interior.ColorIndex = 3
End If
End Sub
Hier wird dann nicht nur die eigentliche Zelle sondern auch die erste Zelle in Spalte A eingefärbt, so sieht man, falls die eigentliche Zelle außerhalb des Sichtfeldes ist, dass in dieser Zeile etwas geändert wurde. Hier kannst ebenfalls die Farbe angleichen.
Das ganze sieht dann aus wie das Bild unten.
Ich hoffe das hilft dir weiter.
Falls du einen Blattschutz benutzt musst du die Formatierung der Zellen zulassen, weil sonst ein Fehler kommt.

Warum Doppelklick, wenn du unten auf den Reiter deines Tabellenblattes gehst und dann ALT+F11 machst bist du automatisch schon an der richtigen Stelle. Da brauchst du nichts Doppelklicken.
In der Firma waren links im "Baum" (Projekt VBA-Projekt) mehrere Positionen, bei drücken auf ALT-F11 aber nicht das (einizige) Tabellenblatt der Exceldatei markiert.
Wenn ich die Datei nun zu Hause öffne und ALT+F11 drücke, ist links (Projekt VBA-Projekt) tatsächlich nur eine Position - das Tabellenblatt. Und es ist jetzt auch markiert.
Allerdings ist im Hauptbereich jetzt nichts zu sehen, wo ich einen Code einfügen kann. Unter "Datei" und "Bearbeiten" sind auch alle Funktionen grau, also nicht anwählbar.
Was mache ich falsch? Muss ich in Excel eine bestimmte Programmeinstellung vornehmen, um hier arbeiten zu können?
Sorry, aber das ist mein erstes Mal mit VB. Wenn es jetzt zu umständlich wird, als dass Du mich weiter unterstützen möchtest/kannst, dann bedanke ich mich nochmals für die Hilfestellung und verzichte (leider) auf die gewünschte Funktion. Möchte Deine Zeit nicht überbeanspruchen.
Gerne stelle ich auch einen Screenshot zur Verfügung. Wenn Du mir sagst, wie das hier erlaubt ist?! (Dropbox, imageshack etc.)
Wie gesagt wenn du mitten in der Tabelle bist wo die Zellen sich verändern sollen und du ALT+F11 drückst bist du automatisch in der Tabelle schon drin. Dann hast du auf der rechten Seite eine leere weiße Seite und da kannst du einfach den Code den ich dir gegeben habe einsetzen.
Wenn du dann oben auf die Diskette zu speichern gehst bekommst du eine Meldung, diese mit NEIN bestätigen und die Mappe als xlsm Datei (Excel Arbeitsmappe mit Makros) abspeichern.
Jetzt wirst du nach dem neu öffnen der Datei gefargt ob die Makros aktiviert werden sollen (Inhalt aktivieren), dieses bitte zulassen. Nun kannst du die Datei ganz normal benutzen und jetzt werden auch nach dem ändern der Felder diese Rot makiert.
Hilft dir das weiter? Wenn nicht kannst du mich über die Emailadresse in meinem Profil gerne kontaktieren.
Die bedingte Formatierung ragiert auf Inhalte der Zellen (entspricht..., größer als..., usw.),
sie kann nicht auf Ereignisse reagieren (Änderung von Zellinhalten)
Dein Vorhaben, Änderungen zu erkennen und darzustellen, ist m.E. nur mit Makros (VBA) durchführbar, und auch das ist sehr komplex (alte Werte - neue Werte, welche Zellen wurden verändert, wer nahm die Änderung vor, ...)
Hier sind dann also fundierte Kenntnisse der Programmierung in VBA von Nöten.
Gruß aus Berlin
Das geht auch sehr viel einfacher: Überprüfen - Änderungen nachverfolgen - Änderungen während der Eingabe protokollieren.
Dann siehst du nicht nur, welche Zelle geändert wurde, sondern auch wann und von wem. Und wenn du willst, kriegst du auch noch einen Änderungverlauf protokolliert.
Kann mir alternativ vielleicht jemand Hilfestellung zur Funktion "Änderung nachverfolgen" geben? Wenn ich dies in EXCEL aktiviere, wird leider nichts markiert bzw. gekennzeichnet.
Auch dies wäre vielleicht eine einfache Lösung, sollten die letzten beiden Vorschläge nicht funktionieren.
Du könntest das Tabellenblatt duplizieren, z.B. als "Tabelle2". Dann kannst du die Original-Tabelle komplett markieren und per bedingte Formatierung alle Zellen einfärben lassen, bei denen die Formel
=A1<>Tabelle2!A1
wahr ist (die Bezüge passen sich an).
Am Ende der Woche überschreibst du dann Tabelle2 mit den Daten der Original-Tabelle.
Wenn die Variante mit VB niht funktioniert, dann werde ich diesen Vorschlag ausprobieren..
Auch hierfür schon mal an dieser Stelle ein "Danke"..
Lieben Dank für die ausführliche Antwort.
Jetzt habe ich aber leider erstmal das Problem, dass ich in VB das entsprechende Tabellenblatt mit Doppelklick nicht öffnen kann ("kein Zugriff"). Werde das aber heute Abend mal auf meinem privaten PC probieren - vielleicht hängt das mit Sicherheitsvorgaben/Konzernrichtlinien meines Arbeitsgebers zusammen. Grundsätzlich gibt es aber keine Einschränkungen bzgl. Makros in unserem Hause. Wenn ich die EXCEL-Datei aber zu Hause entsprechend überarbeiten kann und es dann funktioniert, ist ja alles so wie ich es will.
Feedback folgt..