Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
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
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Log-Datei

Log-Datei
21.11.2007 16:32:00
Heiko
Hallo Leute
ich möchte gerne eine Log-Datei ertsellen. Die Log Datei soll als Textdokument erstellt werden und soll: Datum, Uhrzeit, Tabelle, Zelladresse, alter Wert, Neuer Wert, Username in das Dokument eintragen. Ist das möglich. Bitte um hilfe !!!
Gruß Heiko :-))

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Log-Datei
21.11.2007 16:42:00
Rudi
Hallo,
als Anregung, in DieseArbeitsmappe:
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ß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Log-Datei
21.11.2007 17:02:04
Heiko
Hallo Rudi
das passt fast. Mit der Uhrzeit und Datum stimmt was nicht. Da bekomme ich nur Zahlen raus. Das ist die angabe vom Datum und der Uhrzeit.(071121_165537) Sonst passt es.
Gruß Heiko :-))
Ps. Kann man die Textdatei mit einem Passwot schützen?

ändere das Format ...
21.11.2007 17:51:00
Matthias
Hallo
strText = Format(Now, "DD.mm.YYYY hh:mm:ss") _
Userbild

Log in Excel
21.11.2007 18:44:48
Heiko
Hi
das mit der Zeit hat geklappt. Aber kann man das ganze auch in Excel erzeugen. Das heißt in der gleichen Mappe wo gearbeitet wird soll eine Tabelle sein wo alles mitgelogt wird. Ich finde das ist doch Übersichtlicher. So sollte es dann aussehen. Ist das vieleicht machbar.
Gruß Heiko :-))












Tabelle2




















































  A B C D E F G
1 Datum Uhrzeit Tabelle Zelladresse alter Wert neuer Wert UserName
2              
3              
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  

Anzeige
AW: Log in Excel
21.11.2007 20:08:37
Heiko
Ich habe diesen Code gefunden. Der funzt auch ganz gut. Die Daten werden schön in die Tabelle 2 eingetragen. Wenn ich aber nun eine neue Tabelle einfüge werden die Werte in eine andere Tabelle eingetragen. Es verschiebt sich dann um eine Tabelle. Kann man da was ändern.
Bitte um Hilfe
Gruß Heiko :-))
Public pvarWert

Sub Logbuch(ByVal adr As String, ByVal wert)
Application.EnableEvents = False
With ThisWorkbook.Sheet (2)
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).Value = Date
.Range("B" & .Cells(Rows.Count, 1).End(xlUp).Row).Value = Time
.Range("C" & .Cells(Rows.Count, 1).End(xlUp).Row).Value = ActiveSheet.Name
.Range("D" & .Cells(Rows.Count, 1).End(xlUp).Row).Value = adr
.Range("E" & .Cells(Rows.Count, 1).End(xlUp).Row).Value = pvarWert
.Range("F" & .Cells(Rows.Count, 1).End(xlUp).Row).Value = wert
.Range("G" & .Cells(Rows.Count, 1).End(xlUp).Row).Value = Environ("Username")
End With
Application.EnableEvents = True
End Sub


Anzeige
hier mal eine Beispielmappe ;o)
21.11.2007 20:57:00
Matthias
Hallo Heiko
Schön das Du auch im Archiv suchst ...
Beispiel:
https://www.herber.de/bbs/user/47935.xls
Ich hoffe ich habe nichts übersehen
Die Tabelle1 wird permanent überwacht jeder Zelleintrag wird in der Tabelle("Protokoll") aufgezeichnet.
Ich habe mich bewusst nicht immer für .End(xlUp).Row) entschieden !
Nur beim Datum - dannach bleibe ich in der entsprechenden Zeile!
Denn:
Das könnte eine Fehlerquelle darstellen, wenn man z.B. einen Inhalt nur löscht und keinen neuer Wert einträgt.
Excel würde dann die Einträge nach oben verschieben und die Zuordnung wäre dann falsch!
Das Sheet"Protokoll" kann man dann ausblenden , so das es keiner manipulieren kann.
Userbild

Anzeige
AW: hier mal eine Beispielmappe ;o)
22.11.2007 11:13:00
Erich
Hi Matthias,
das wäre m.E. einfacher und klarer:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Reihe As Long
With Worksheets("Protokoll")
Reihe = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(Reihe, 1) = Date
.Cells(Reihe, 2) = Time
.Cells(Reihe, 3) = ActiveCell.Address
.Cells(Reihe, 4) = old
.Cells(Reihe, 5) = ActiveCell.Value
End With
End Sub

Grüße von Erich aus Kamp-Lintfort

womit Du absolut Recht hast ;o)
Matthias
Hallo Erich
Ich habe eben mal so auf die Schnelle ein paar Zeilen geschrieben.
Ich weiß, man sollte sich da mehr Zeit nehmen ;o)
Heiko wird es ja sicher lesen und dann so einbauen.
Danke für Deinen Beitrag
Userbild

Anzeige
AW:Log
22.11.2007 18:16:10
Heiko
Hi Leute
danke für eure hilfe aber es klappt noch nicht so richtig. Ich habe den Code von Erich eingebaut. Aber im Protokoll Neuer Wert wird nichts aufgezeichnet und es müßte noch Username und die Tabelle in der was geändert wurde aufgezeichnet werden. Denn wenn ich jetzt eine andere Tabelle was ändere dann bekomme ich nur die werte. Deshalb fehlt noch die angabe von der Tabelle. Ich hoffe ihr könnt mir noch einmal helfen.
Gruß Heiko :-))

AW:Log
22.11.2007 18:30:00
Heiko
Hi
das mit der Tabelle und dem Nmen hab ich hinbekommen es fehlt jetzt nur noch das der neue Wert aufgezeichnet wird.
Gruß Heiko :-))

Anzeige
dann ins ... Workbook_SheetChange !
23.11.2007 10:21:00
Matthias
Hallo Heiko
hier die Datei: ( mit dem Vorschlag von Erich ;o) )
+++++++++++++++++++++++++++++++++++
https://www.herber.de/bbs/user/47984.xls
++++++++++++++++++++++++++++++
Ich finde, man sollte den Benutzer darauf hinweisen das protokolliert wird!
Aber das mußt Du schon selbst entscheiden.
Ich habe auch noch eine Kontrolle eingebaut, wenn im Protokoll die letzte Zeile erreicht ist
um so einer VBA Fehlermeldung vorzubeugen.
wenn nicht gewünscht, dann diese Zeilen wieder löschen:

If Reihe = 65000 Then MsgBox "Bitte bald Protokoll sichern!"
If Reihe = 65535 Then MsgBox "Ende Protokoll erreicht ... !":Exit Sub


Das Exit Sub habe ich noch nicht in der Datei drin, das solltest Du nachtragen!
Ich hoffe ich konnte ein wenig helfen.
Userbild

Anzeige
AW: dann ins ... Workbook_SheetChange !
23.11.2007 15:48:53
Heiko
Hallo Matthias
du konntest mir super helfen. Das ist genau so wie ich es mir vorgestellt habe. Danke !!!
Gruß Heiko :-))))))))))

:o) ___ oT
23.11.2007 23:39:25
Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige