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

Datum/Autor für Eingabe mit "Historie" (vba)

Datum/Autor für Eingabe mit "Historie" (vba)
18.11.2008 17:52:05
Lukas
Hallo liebe Forumnutzer,
in meiner Unwissenheit wurde ich gebeten, folgendes umzusetzen:
In A5 wird ein Wert eingegeben, in A7 und A8 sollen einmal Autor und einmal Datum der Änderung notiert werden. Jetzt wird in A5 ein neuer Wert eingetragen, der alte Wert aus A5 soll inklusive Autor und Datum 2 Zeilen nach unten rutschen, u.s.w., sodass am Ende alle Werte mit ihrem Autor und Datum noch vorhanden sind. (Analog soll das für noch 4 weitere Spalten so funktionieren.)
Durch probieren und suchen habe ich folgendes hinbekommen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim vntTempArray As Variant
Dim strTargetAddress As String
Dim objCell As Range
If Not Intersect(Target, Range("A5:T5")) Is Nothing Then
vntTempArray = Target.Value2
strTargetAddress = Target.Address
Application.EnableEvents = False
Application.Undo
For Each objCell In Target
If Not Intersect(objCell, Range("A5:T5")) Is Nothing Then
objCell.Insert Shift:=xlShiftDown
objCell.Cut Destination:=objCell.Offset(1)
End If
Next
Range(strTargetAddress).Value2 = vntTempArray
Application.EnableEvents = True
End If
If Target.Column = 1 And Target.Cells.Count = 1 Then
Cells(Target.Row, 3) = Environ("USERNAME")
Cells(Target.Row, 4) = Now()
End If
If Target.Column = 5 And Target.Cells.Count = 1 Then
Cells(Target.Row, 7) = Environ("USERNAME")
Cells(Target.Row, 8) = Now()
End If
If Target.Column = 9 And Target.Cells.Count = 1 Then
Cells(Target.Row, 11) = Environ("USERNAME")
Cells(Target.Row, 12) = Now()
End If
If Target.Column = 13 And Target.Cells.Count = 1 Then
Cells(Target.Row, 15) = Environ("USERNAME")
Cells(Target.Row, 16) = Now()
End If
If Target.Column = 17 And Target.Cells.Count = 1 Then
Cells(Target.Row, 19) = Environ("USERNAME")
Cells(Target.Row, 20) = Now()
End If
End Sub


Das Problem ist jetzt, dass er mir den Autor und das Datum in die 7. Zeile schreibt anstatt der 5., wodurch es immer wieder überschrieben wird und nicht mit nach unten rutscht.
Also im Endeffekt sollen Datum und Autor in der 5. Zeile erscheinen, probieren hat auch nichts gebracht :-/
Beste Grüße und Dank im Voraus
Lukas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum/Autor für Eingabe mit "Historie" (vba)
18.11.2008 20:23:00
Roland
Hi Lukas,
warum nicht einfach so (in die entsprechende Tabelle):
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A5")) Is Nothing Then
If Cells(8, 1)  Cells(5, 1) Then
Application.EnableEvents = False
Range(Cells(6, 1), Cells(8, 1)).Insert Shift:=xlDown
Cells(8, 1) = Cells(5, 1).Value
Cells(9, 1) = Environ("username")
Cells(10, 1) = Now()
Application.EnableEvents = True
End If
End If
End Sub


Für die weiteren Änderungen kannst Du weitere Blöcke á la . . .
If Not Intersect(Target, Range("A5")) Is Nothing Then . . .
End if
hinzufügen, du müsstest nur die Bereiche anpassen.
Gruß
Roland Hochhäuser

Anzeige
AW: Datum/Autor für Eingabe mit "Historie" (vba)
18.11.2008 23:26:00
Lukas
Hallo Roland, das funktioniert Super!! Vielen Dank für die schnelle Hilfe.
AW: Datum/Autor für Eingabe mit "Historie" (vba)
18.11.2008 23:30:00
Roland
Na dann: Gute Nacht ;-))
Roland Hochhäuser

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige