Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: LowP am Juli 20, 2014, 23:06:23 Nachmittag

Titel: Office 2007: VBA Programmcode für Veränderung innerhalb eines Zellbereichs
Beitrag von: LowP am Juli 20, 2014, 23:06:23 Nachmittag
Hallo liebe Forenmitglieder,

ich hoffe ihr könnt mir helfen mein folgendes Problem zu lösen:

Ich habe eine ExcelTabelle mit einer Personen- und zwei Bemerkungsspalten. Die Zellinhalte (Text) der Bemerkungsspalten werden in unterschiedlichem Umfang und Abständen verändert, bzw. aktualisiert.

Ich möchte nun gerne, dass sobald eine solche Änderung innerhalb einer Zelle dieses Zellbereichs auftritt, der neue Textinhalt automatisch in roter Schrift angezeigt wird. Die Inhalte die bis dahin rot waren ( ob in der selben Zelle oder in einer anderen Zelle deren Inhalt zuletzt geändert wurde) sollen gleichzeitig in schwarzer Schrift umgewandelt werden.

Ich habe schon im Internet recherchiert und glaube dass die Lösung in der Programmierung eines Ereignismakros liegen könnte.

Da ich aber selbst keinerlei Erfahrungen in VBA  oder dergleichen habe und nicht weiß wie ein solcher Programmcode bezogen auf mein Problem aussehen könnte, hoffe ich hier HIlfe zu finden.



Ich bin euch dankbar für jeden Lösungsvorschlag  :)

Viele liebe Grüße



Titel: Antw:Office 2007: VBA Programmcode für Veränderung innerhalb eines Zellbereichs
Beitrag von: Officer am Juli 21, 2014, 07:22:09 Vormittag
Hallo LowP,

mit dem folgenden VBA-Code lässt sich dein Problem lösen.

Code: Visual Basic
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. '** Wird bei jeder Änderung ausgeführt
  3.  
  4. Set rngZellen = ActiveSheet.Range("A2:C21")
  5.  
  6. '** Definition des Zellbereichs für die Änderungen
  7. 'If Not Application.Intersect(Target, Range("A2:C21")) Is Nothing Then
  8. If Not Application.Intersect(Target, rngZellen) Is Nothing Then
  9.  
  10.   '** Zuerst rote Schriftfarbe im definierten Zellbereich entfernen
  11.  rngZellen.Font.ColorIndex = xlAutomatic
  12.  
  13.   '** Geänderte Zelle mit roter Schriftfarbe belegen
  14.  Target.Font.ColorIndex = 3
  15.  
  16. End If
  17. End Sub
  18.  

Da es sich um eine Ereignisprozedur handelt, muss der Code in dem Codeblatt des Tabellenblattes eingefügt werden, in dem er ausgeführt werden soll.
Ich habe die Beispieldatei als Anlage beigefügt.

Gruß Alois
Titel: Antw:Office 2007: VBA Programmcode für Veränderung innerhalb eines Zellbereichs
Beitrag von: LowP am Juli 22, 2014, 22:11:52 Nachmittag
Hallo Alois,

erstmal vielen vielen Dank für deine Antwort, die eine einwandfreie Lösung zu meinem geschilderten Problem darstellt.


Allerdings ist mir selbst aufgefallen, dass sich mein Problem doch noch ein wenig komplexer darstellt.
 Denn es ist teilweise so dass ich bei der Bearbeitung der Tabelle manchmal an mehreren Zellen Änderungen vornehmen. Ist es auch möglich die Zellen so zu programmieren, dass alle neuen Änderungen die ich bei verschiedenen Zellen bei innerhalb Arbeitsvorgang vornehme rot gemacht werden? Die Umwandlung der "alten" Änderungen soll trotzdem beibehalten werden.

Der Hintergrund des ganzen Prozedere ist der, dass derjenige der Tabelle öffnet anhand der Farbe sofort die neuen Zelleinträge erkennt, die zuletzt vorgenommen werden.

Wenn du hierfür vllt auch eine Lösung weißt wäre das wirklich super  :)

Viele liebe Grüße
LowP