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

Zeitstempel in Nachbarzelle

Zeitstempel in Nachbarzelle
12.10.2021 11:17:10
Alex
Hallo wie bekomme ich einen Zeitstempel in der Nachbarzelle?
Es sollte so sein, dass wenn sich der Wert verändert, immer ein neuer Zeitstempel gesetzt wird, bei Zelle leer auch kein Zeitstempel.
Danke

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeitstempel in Nachbarzelle
12.10.2021 11:39:50
{Boris}
Hi,
der Code reagiert auf Änderungen in A2:A100 - das musst Du im Code auf Deinen Bedarf anpassen.
Code kommt in das (Klassen-)modul der entsprechenden Tabelle:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
Set C = Range("A2:A100") 'Bereich anpassen!
With Target
If Not Intersect(Target, C) Is Nothing Then
If .Count = 1 Then
.Offset(0, 1) = Now
End If
End If
End With
End Sub
VG, Boris
AW: Zeitstempel in Nachbarzelle
12.10.2021 11:42:27
Alex
Danke für die Antwort, wie ist es wenn es jede 2 Spalte betrifft? einfach den code duplizieren und die Spalten anpassen ?
AW: Zeitstempel in Nachbarzelle
12.10.2021 11:57:39
Werner
Hallo,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
If Target.Column Mod 2 > 0 Then
Target.Offset(, 1) = IIf(Target  "", Now, "")
End If
End Sub
Gruß Werner
Anzeige
AW: Zeitstempel in Nachbarzelle
12.10.2021 11:58:30
UweD
Hi

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"
Dim Rng As Range, Zelle
Set Rng = Range("A1:H100") 'Hier löst das Makro aus
If Not Intersect(Rng, Target) Is Nothing Then
Application.EnableEvents = False
If Target.Count = 1 Then
If Target.Column Mod 2 = 1 Then 'ungerade
If Target  "" Then
Target.Offset(0, 1) = Format(Now, "YYYY.MM.DD hhmmss")
Else
Target.Offset(0, 1).ClearContents
End If
Else
MsgBox "Keine Eingabe möglich"
Application.Undo
End If
Else
MsgBox "Zellen einzeln bearbeiten"
End If
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
Wirkungsbereich explizit anpassen
12.10.2021 14:21:12
{Boris}
Hi,
man kann den Wirkungsbereich auch explizit anpassen. Das wird dann interessant, wenn es sich um nicht logisch zusammenhängende Bereiche handelt, die man mit Mod und Konsorten behandeln kann - oder eben nur um einige wenige Bereiche:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
Set C = Range("A2:A100, C2:C100, E2:E100, G2:G100, I2:I100") 'Bereich anpassen!
With Target
If Not Intersect(Target, C) Is Nothing Then
If .Count = 1 Then
.Offset(0, 1) = Now
End If
End If
End With
End Sub
VG, Boris
AW: Zeitstempel in Nachbarzelle
12.10.2021 11:40:14
UweD
Hallo
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Code rechts reinkopieren
- Bereich Rng anpassen

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"
Dim Rng As Range, Zelle
Set Rng = Range("A1:A100") 'Hier löst das Makro aus
If Not Intersect(Rng, Target) Is Nothing Then
Application.EnableEvents = False
For Each Zelle In Intersect(Rng, Target)
If Zelle  "" Then
Zelle.Offset(0, 1) = Format(Now, "YYYY.MM.DD hhmmss")
Else
Zelle.Offset(0, 1).ClearContents
End If
Next
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Zeitstempel in Nachbarzelle
12.10.2021 14:21:10
Alex
vielen Dank für die vielen Antworten Probiere es gleich aus :) Danke
AW: Zeitstempel in Nachbarzelle
12.10.2021 12:04:44
GerdL
Moin Alex!
Bitte ins Modul der Tabelle einfügen.

Private Sub Worksheet_Change(ByVal Target As Range)
Const Eingabezellen = "A2:A99"
Dim Zelle As Range
If Not Intersect(Target, Range(Eingabezellen)) Is Nothing Then
Application.EnableEvents = False
For Each Zelle In Intersect(Target, Range(Eingabezellen))
If IsEmpty(Zelle) Then
Zelle.Offset(0, 1).ClearContents
Else
Zelle.Offset(0, 1) = Now
End If
Next
Application.EnableEvents = True
End If
End Sub
Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige