ucdsr2019
Goto Top

Excel - die zuletzt bearbeitete-geänderte Zelle farblich markieren

nrrot
Hallo,
ich habe eine Tabelle die Nummern per Schaltfläche generiert und die Uhrzeit/Datum und den Bearbeiter ausgibt. Nun möchte cih noch, dass die zuletzt geänderte Zelle(im Screen die lila markierte Stelle) sich sich die Hintergrundfarbe in gelb ändert - siehe screen - hier habe ich es m,manuell gemacht.

ich habe dies mit "Bedingter Formatierung" versucht und einen code bekommen, leider bis her 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:
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
nrgelb

Content-Key: 547940

Url: https://administrator.de/contentid/547940

Ausgedruckt am: 29.03.2024 um 14:03 Uhr

Mitglied: 142970
142970 16.02.2020 aktualisiert um 11:31:17 Uhr
Goto Top
Interior.Color ist dein Freund...
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim z As Range, rng As Range
    On Error GoTo Fehler
    Set rng = Range("D:D")  
    If Not Intersect(rng, Target) Is Nothing Then
        rng.Interior.ColorIndex = xlNone
        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")  
                z.Interior.Color = vbYellow
            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
Mitglied: mayho33
mayho33 16.02.2020 um 23:39:18 Uhr
Goto Top
Hi!

Nutze doch den Macro-Recorder! Er baut dir das zwar nicht gleich so ein, der Effekt ist aber, dass du im aufgezeichneten Macro siehst wie es geht.

Ist dann auch bei anderen Anforderungen hilfreich.

Grüße!
Mitglied: ucdsr2019
ucdsr2019 17.02.2020 um 09:00:00 Uhr
Goto Top
oh wie schön! vielen, vielen, vielen Dank!!!!!!