Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum letzte Änderung | Herbers Excel-Forum

Datum letzte Änderung
07.01.2010 13:33:08
Steve

Hallo Leute,
habe ein weiteres Problem mit meinem Excel-Projekt. Ich habe aus dem Forum ein VBA Skript zum einfügen einer letzten Änderung gefunden:
https://www.herber.de/bbs/user/67037.xlsm
Leider weiß ich nicht wie ich den "Schreibebereich" eingrenzen kann. Derzeit werden die Zeilen E:O überwacht und in P das Datum + der Benutzer geschrieben.
Wie kann man VBA sagen, dass es eigentlich nur im "Tabellenbereich" dies durchführen soll (der Bereich den man "als Tabelle formatieren" anlegt). Denn weder brauche ich die Funktion in den Spaltenüberschriften noch unter der Summenfunktion.
Vielen Dank für eure Hilfe.
P.S. Die Tabelle wird noch länger, d.h. ich kann mich nicht fix auf 10 Zeilen beziehen.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum letzte Änderung
07.01.2010 13:45:56
Tino
Hallo,
so z. Bsp. der Bereich E2:O11
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Intersect(Range("E2:O11"), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
Cells(Bereich.Row, 16) = Format(Now, "DD.MM.YYYY hh:mm ") & Application.UserName
Application.EnableEvents = True
End If
End Sub
Gruß Tino
oder mit Schleife für alle Zellen im Bereich
07.01.2010 13:47:50
Tino
Hallo,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Intersect(Range("E2:O11"), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
For Each Bereich In Bereich
Cells(Bereich.Row, 16) = Format(Now, "DD.MM.YYYY hh:mm ") & Application.UserName
Next Bereich
Application.EnableEvents = True
End If
End Sub
Gruß Tino
Anzeige
AW: oder mit Schleife für alle Zellen im Bereich
07.01.2010 14:23:31
Steve
o.k. das funktioniert zwar, aber ich muss in der Range immer den Bereich angeben. Wenn jetzt aber in der Tabelle 10 neue Zeilen hinzukommen, möchte ich nicht jedes mal den Code anpassen müssen.
dann breuchen wir die letzte Zeile
07.01.2010 14:39:56
Tino
Hallo,
wir müssen die letzte Zeile bestimmen, im Beispiel anhand der Spalte 1,
da die letzte eine Zusammenfassung ist müssen wir von der letzten noch eins abziehen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim LRow As Long
LRow = Cells(Rows.Count, 1).End(xlUp).Row
Set Bereich = Intersect(Range("E2:O" & LRow - 1), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
For Each Bereich In Bereich
Cells(Bereich.Row, 16) = Format(Now, "DD.MM.YYYY hh:mm ") & Application.UserName
Next Bereich
Application.EnableEvents = True
End If
End Sub
Gruß Tino
Anzeige
AW: dann breuchen wir die letzte Zeile
07.01.2010 14:55:33
Steve
Genau so habe ich das gebraucht. Du bist der Beste.
P.S. Ich habe es mir jetzt noch ein bisschen angepasst und den Benutzer und die Uhrzeit getrennt:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim LRow As Long
LRow = Cells(Rows.Count, 1).End(xlUp).Row
Set Bereich = Intersect(Range("e9:O" & LRow - 1), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
For Each Bereich In Bereich
Cells(Bereich.Row, 16) = Format(Now, "DD.MM.YYYY")
Cells(Bereich.Row, 17) = Format(Now, "hh:mm")
Cells(Bereich.Row, 18) = Application.UserName
Next Bereich
Application.EnableEvents = True
End If
End Sub

Anzeige
AW: dann breuchen wir die letzte Zeile
07.01.2010 14:58:46
Hajo_Zi
Hallo Steve,
Dir ist aber bekannt das Du Text in die Zellen schreibst und nicht Datum, Uhrzeit?

AW: dann breuchen wir die letzte Zeile
07.01.2010 15:04:12
Steve
Ja, aber ich kann das ja als solches formatieren und ich will es zum Vergleichen und weiterrechnen benutzen und erste Tests haben funktioniert.
schreibe besser...
07.01.2010 15:02:37
Tino
Hallo,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim LRow As Long
LRow = Cells(Rows.Count, 1).End(xlUp).Row
Set Bereich = Intersect(Range("E2:O" & LRow - 1), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
For Each Bereich In Bereich
Cells(Bereich.Row, 16) = Time
Cells(Bereich.Row, 17) = Date
Cells(Bereich.Row, 18) = Application.UserName
Next Bereich
Application.EnableEvents = True
End If
End Sub
Die Zellen vorher Formatieren für Uhrzeit und Datum
Gruß Tino
Anzeige
AW: schreibe besser...
07.01.2010 15:05:45
Steve
o.k. und wie mache ich bei time die 24h Formatierung?
24:00 Uhr gibt es im eigentlichen Sinne nicht.
07.01.2010 15:13:15
Tino
Hallo,
unter Uhrzeit das entsprechende Format auswählen.
Ein Tag geht von 00:00 Uhr und geht bis 23:59 Uhr
Gruß Tino
ich meine die Zellformatierung. ;-) oT.
07.01.2010 15:14:37
Tino
hat geklappt - vielen Dank owT
07.01.2010 15:19:03
Steve
.

26 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige