Betrifft: Datum letzte Änderung
von: 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.
Betrifft: AW: Datum letzte Änderung
von: Tino
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
Betrifft: oder mit Schleife für alle Zellen im Bereich
von: Tino
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
Betrifft: AW: oder mit Schleife für alle Zellen im Bereich
von: Steve
Geschrieben am: 07.01.2010 14:23:31
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.
Betrifft: dann breuchen wir die letzte Zeile
von: Tino
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
Betrifft: AW: dann breuchen wir die letzte Zeile
von: Steve
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
Betrifft: AW: dann breuchen wir die letzte Zeile
von: Hajo_Zi
Geschrieben am: 07.01.2010 14:58:46
Hallo Steve,
Dir ist aber bekannt das Du Text in die Zellen schreibst und nicht Datum, Uhrzeit?
Betrifft: AW: dann breuchen wir die letzte Zeile
von: Steve
Geschrieben am: 07.01.2010 15:04:12
Ja, aber ich kann das ja als solches formatieren und ich will es zum Vergleichen und weiterrechnen benutzen und erste Tests haben funktioniert.
Betrifft: schreibe besser...
von: Tino
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
Betrifft: AW: schreibe besser...
von: Steve
Geschrieben am: 07.01.2010 15:05:45
o.k. und wie mache ich bei time die 24h Formatierung?
Betrifft: 24:00 Uhr gibt es im eigentlichen Sinne nicht.
von: Tino
Geschrieben am: 07.01.2010 15:13:15
Hallo,
unter Uhrzeit das entsprechende Format auswählen.
Ein Tag geht von 00:00 Uhr und geht bis 23:59 Uhr
Gruß Tino
Betrifft: ich meine die Zellformatierung. ;-) oT.
von: Tino
Geschrieben am: 07.01.2010 15:14:37
Betrifft: hat geklappt - vielen Dank owT
von: Steve
Geschrieben am: 07.01.2010 15:19:03
.