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

Benutzername Datum Zeit in Zelle

Benutzername Datum Zeit in Zelle
27.12.2008 19:52:00
Michael
Hallo zusammen,
ich suche nach einem Makro, das einen Benutzernamen aus Tabelle1 Zelle B2, das aktuelle Datum (JJJJ.MM.TT) und die Zeit der Änderung Zeit (hh:mm:ss) bei Änderungen in einer Zeile der Spalten A bis AT in die Zelle AU2 usw. schreibt.
Die Suche hat mich leider nicht weitergebracht.
Ich würde mich freuen, wenn mir da jemand helfen könnte.
Gruß
Micha

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzername Datum Zeit in Zelle
27.12.2008 20:20:32
Peter
Hallo Micha,
das nachfolgende Makro muss in das Klassenmodul des entsprechenden Tabellenblattes.
Rechtsklick auf den Tabellenblattreiter
Linksklick auf Code anzeigen
Makro in das sich öffenende Fenster einfügen
mit Schließen-Kreuz beenden
testen.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column > 47 Then Exit Sub
Range("AU2").Value = Range("B2").Value & " " & Format(Now, "yyyy.mm.dd hh:mm:ss")
End Sub


Gruß Peter

AW: Benutzername Datum Zeit in Zelle
27.12.2008 20:33:57
Michael
Wow - Hallo Peter.
Das suchte ich.
Kannst du mir vielleicht noch aufschreiben, wie das aussieht, das die Daten nicht immer in AU2, sondern immer in der aktuellen Zelle der Spalte AU (z.B. AU8 usw.) ?
Wäre echt Klasse.
Gruß
Micha
Anzeige
AW: Benutzername Datum Zeit in Zelle
27.12.2008 20:36:19
Peter
Hallo Micha,
das ist nur eine kleine Änderung:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column > 47 Then Exit Sub
Range("AU" & Target.Row).Value = Range("B2").Value & " " & Format(Now, "yyyy.mm.dd hh:mm:ss") _
End Sub


Gruß Peter

AW: Benutzername Datum Zeit in Zelle
27.12.2008 20:40:11
Michael
Hallo Peter,
das ist der absolute Hammer - ich danke dir ganz herzlich.
Gruß
Micha
AW: Benutzername Datum Zeit in Zelle
28.12.2008 14:01:11
Michael
Hallo Peter,
funktioniert alles prima.
Beim Ändern einer Zelle in Zeile 1 (enthält Überschriften), wird auch die Zelle "AU1" durch das Makro mit den Daten belegt und die Überschrift überschrieben.
Ist es möglich, die gesamte Zeile 1 - die eventuell noch mit weiteren Spaltenüberschriften belegt wird - von dem Makro auszunehmen?
Sicher hast du auch dafür ein Lösung! (Hoff)
Gruß
Micha
Anzeige
AW: Benutzername Datum Zeit in Zelle
29.12.2008 13:09:00
Peter
Hallo Micha,
das geht dann so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column > 47 Then Exit Sub
If Target.Row = 1 Then Exit Sub
Range("AU" & Target.Row).Value = Range("B2").Value & " " & Format(Now, "yyyy.mm.dd hh:mm:ss") _
_
End Sub


Gruß Peter

AW: Benutzername Datum Zeit in Zelle
29.12.2008 13:22:27
Michael
Hallo Peter,
diese Zeile "If Target.Row = 1 Then Exit Sub" hat Gerd bereits ergänzt. Die Zeile 1 wird damit vom Beschreiben durch das makro ausgenommen. Vielen Dank.
Mein neues Problem war ein anderes:
Zitat Anfang:
Hallo,
nun habe ich doch wieder ein Problem, das mir beim Test aufgefallen ist:
Wenn ich in einer Zeile im Bereich der Spalten A bis AT etwas eingebe, dann wir gemäß Makro der Eintrag vorgenommen - bis hier ist das auch toll.
Nun hatte ich z.B. in A25 etwas getippt und wieder gelöscht. Der Eintrag vom Makro steht bleibt natürlich in AU25 stehen.
Kann das Makro so funktionieren, dass nur bei Einträgen (wirkliche Inhalte) in A bis AT die Makroausführung erfolgt und sonst eben nicht?
(ich hoffe das ist einigermaßen verständlich :-( )
Über Hilfe würde ich mich sehr freuen.
Gruß
Micha
Zitat Ende:
Anzeige
AW: Benutzername Datum Zeit in Zelle
27.12.2008 20:23:32
Bibo
Hallo Micha,
hier vielleicht nicht ganz genau das, was Du suchst. Ich weiß auch nicht, wie man den Code anpassen müsste.
Der Code erzeugt eine externe .txt-Datei im gleichen Verzeichnis als "LogBuch_Dateiname", in der alle Änderungen mit Datum, Uhrzeit, User, Tabellenblatt, Zellbereich und eigentliche Änderung aufgezeichnet werden.
Der Code gehört in "Diese Arbeitsmappe":

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim strDatei As String, strText As String, intFile As Integer, c As Range
intFile = FreeFile
strDatei = ThisWorkbook.Path & "\LogBuch_" & Replace(ThisWorkbook.Name, ".xls", "") & ".txt"
Open strDatei For Append As intFile
For Each c In Target.Cells
strText = Format(Now, "YYMMDD_hhmmss") _
& vbTab & Environ("username") _
& vbTab & Sh.Name _
& vbTab & c.Address _
& vbTab & c.Value
Print #intFile, strText
Next c
Close intFile
End Sub


Gruß
Bibo

Anzeige
AW: Benutzername Datum Zeit in Zelle
27.12.2008 20:36:00
Michael
Hallo Bibo,
vielen Dank für den Code. Ich brauche das aber in dem Tabellenblatt.
Deinen Code für eine externe Datei kann man bestimmt verwenden, wenn "große" Datenmengen protokolliert werden sollen.
Gruß
Micha
AW: If Target.Row= 1 Then Exit Sub o.T.
28.12.2008 14:38:17
Gerd
Gruß Gerd
AW: If Target.Row= 1 Then Exit Sub o.T.
28.12.2008 14:41:00
Michael
Hallo Gerd,
vielen Dank und noch einen wundervollen Sonntag.
Gruß
Micha
AW: If Target.Row= 1 Then Exit Sub o.T.
29.12.2008 11:18:05
Michael
Hallo,
nun habe ich doch wieder ein Problem, das mir beim Test aufgefallen ist:
Wenn ich in einer Zeile im Bereich der Spalten A bis AT etwas eingebe, dann wir gemäß Makro der Eintrag vorgenommen - bis hier ist das auch toll.
Nun hatte ich z.B. in A25 etwas getippt und wieder gelöscht. Der Eintrag vom Makro steht bleibt natürlich in AU25 stehen.
Kann das Makro so funktionieren, dass nur bei Einträgen (wirkliche Inhalte) in A bis AT die Makroausführung erfolgt und sonst eben nicht?
(ich hoffe das ist einigermaßen verständlich :-( )
Über Hilfe würde ich mich sehr freuen.
Gruß
Micha
Anzeige
AW: If Target.Row= 1 Then Exit Sub o.T.
29.12.2008 14:09:36
Peter
Hallo Micha,
dann versuch es so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column > 47 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Application.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row, 46))) = 0 Then
Range("AU" & Target.Row).Value = ""
Else
Range("AU" & Target.Row).Value = Range("B2").Value & " " & _
Format(Now, "yyyy.mm.dd hh:mm:ss")
End If
End Sub


Gruß Peter

AW: If Target.Row= 1 Then Exit Sub o.T.
29.12.2008 14:59:23
Michael
Hallo Peter,
das klappt wunderbar.
Ganz herzlichen Dank für deine Hilfe.
Gruß
Micha
Anzeige

346 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige