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

Forumthread: Die zuletzt geänderte Zelle farblich markieren

Die zuletzt geänderte Zelle farblich markieren
15.02.2020 19:22:03
Jeanson
Hallo, ich habe eine Tabelle die Nummern per Schaltfläche generiert (thx an fcs!!!!) und die Uhrzeit, Datum, Bearbeiter ausgibt. Nun möchte ich noch, dass die zuletzt geänderte Zelle (im Screen die gelb markierte Stelle) per Hintergrundfarbe in gelb ändert - siehe screen - hier habe ich es manuell gemacht.
Ich habe es mit "Bedingter Formatierung" versucht und einen code bekommen (thx an Daniel), leider aber bisher ohne Erfolg.
Dieser Code funktioniert leider nicht - bzw. weiß ich nicht so recht, wo und wie ich diesen einbinden soll?!
Kann mir jemand dabei helfen?
Vielen Dank vorab
Application.EnableEvents = false
Range("A1").value = Target.row
Range("A2").value = Target.column
Application.EnableEvents = true
plus "Bedingter Formatierung"
=Und(Zeile()=$A$1;Spalte()=$A$2)
hier der Code für die Eintragung Uhrzeit, Datum und Bearbeiter:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim z
On Error GoTo Fehler
If Not Intersect(Range("D:D"), Target) Is Nothing Then
If Target.Row = 1 Then Exit Sub
For Each z In Target
If z.Offset(0, -1)  "" Then
Application.EnableEvents = False
z.Offset(0, 2) = Format(Date + Time, "HH:MM:SS" + ", " + "DD.MM.YYYY")
z.Offset(0, 3) = Environ("Username")
End If
Next
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

hier für die Schaltflächen (big thx an fcs):
Option Explicit
Sub prcButton_Plus()
'Hochzählen
Dim Zeile As Long
Zeile = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
Call ZaehlenHochRunter(Zeile, bolPlus:=True)
End Sub
Sub prcButton_Minus()
'Runterzählen
Dim Zeile As Long
Zeile = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
Call ZaehlenHochRunter(Zeile, bolPlus:=False)
End Sub
Sub ZaehlenHochRunter(ByVal Zeile, bolPlus As Boolean, _
Optional Spalte As Long = 4)
Dim nummer As Long
With ActiveSheet
With .Cells(Zeile, Spalte)
'.Select 'diese Zeile muss nicht sein, es sei den der Cursor soll dort stehen.
nummer = .Value
nummer = nummer + IIf(bolPlus, 1, -1)
If nummer Mod 100 = 0 Then nummer = nummer + IIf(bolPlus, 1, -1)
.Value = nummer
End With
End With
End Sub
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Die zuletzt geänderte Zelle farblich markieren
15.02.2020 19:29:33
Hajo_Zi

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Cells.Interior.ColorIndex = xlNone
Target.Interior.Color = 10092543
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Die zuletzt geänderte Zelle farblich markieren


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und navigiere zu dem Arbeitsblatt, in dem du die zuletzt geänderte Zelle farblich markieren möchtest.
  2. Öffne den VBA-Editor mit ALT + F11.
  3. Füge den folgenden Code in das entsprechende Arbeitsblattmodul ein:
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
        Cells.Interior.ColorIndex = xlNone
        Target.Interior.Color = 6 ' Gelb
    End Sub
    • Dieser Code setzt die Hintergrundfarbe aller Zellen zurück und markiert die zuletzt geänderte Zelle in Gelb.
  4. Schließe den VBA-Editor und teste die Funktion, indem du eine Zelle bearbeitest.

Häufige Fehler und Lösungen

  • Problem: Der Code funktioniert nicht.

    • Lösung: Stelle sicher, dass du den Code im richtigen Arbeitsblattmodul eingefügt hast. Gehe zum VBA-Editor und wähle das richtige Arbeitsblatt.
  • Problem: Excel zeigt einen Fehler an.

    • Lösung: Überprüfe die Syntax des Codes. Achte darauf, dass keine Tippfehler vorhanden sind.

Alternative Methoden

Wenn du die Hintergrundfarbe nicht über VBA ändern möchtest, kannst du die Bedingte Formatierung verwenden:

  1. Wähle die Zellen aus, die du überwachen möchtest.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden und gib folgende Formel ein:
    =UND(ZEILE()=A1;SPALTE()=A2)
  4. Wähle die Formatierung (z.B. gelbe Hintergrundfarbe) und klicke auf OK.

Praktische Beispiele

Hier ist ein Beispiel, wie du den VBA-Code anpassen kannst, um die zuletzt geänderte Zelle in einer bestimmten Spalte gelb zu markieren:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Columns("D")) Is Nothing Then
        Cells.Interior.ColorIndex = xlNone
        Target.Interior.Color = 6 ' Gelb
    End If
End Sub

Dieser Code markiert nur die Zellen in Spalte D.


Tipps für Profis

  • Verwende Application.EnableEvents = False innerhalb deines Codes, um zu verhindern, dass das Ereignis erneut ausgelöst wird, wenn du die Hintergrundfarbe änderst.
  • Implementiere eine Fehlerbehandlung, um sicherzustellen, dass dein Code auch bei unerwarteten Eingaben stabil bleibt.

FAQ: Häufige Fragen

1. Kann ich die Farbe der Zelle ändern? Ja, ersetze einfach den Farbwert im Code. Zum Beispiel kannst du Target.Interior.Color = RGB(255, 255, 0) verwenden, um Gelb zu erhalten.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen.

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