Registriert seit: 26.02.2016
Version(en): 2007
Hallo Gemeinschaft,
ich hab da mal noch einen.
Ich hab da eine Tabelle die ich auf eine DIN A4 Seite angepasst habe.
Viele Zellen wenig Platz.
Hier möchte ich verrichtete Aufgaben abhaken.
Nun würde ich gerne nachträglich nachvollziehen können wann genau ich diese Änderungen gemacht hab.
In der digitalen Version reicht mir völlig.
Es muss also nicht im Ausdruck zu sehen sein, was aus Platzgründen schwierig sein dürfte.
Ich dachte so an eine Datums Uhrzeit Auflistung der, sagen wir, letzten 5 Änderungen vielleicht im Kommentar?
Neue Projekte.xlsx (Größe: 17,14 KB / Downloads: 5)
Explizit geht es mir hier um die Spalten F-H und J-R
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin Frank!
Dafür gibt es die Funktion Änderungen nachverfolgen im Register Überprüfen.
Zeigt zwar "nur" die letzte Änderung in Form eines Kommentars an, aber vielleicht reicht Dir dies ja bereits.
Ansonsten wird es eine umfangreichere VBA-Geschichte.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 26.02.2016
Version(en): 2007
Moin Ralf,
Das sieht schon mal sehr gut aus.
Kann man das irgendwie dauerhaft aktivieren?
So sind die Grundeinstellungen
So stell ich es mir vor
Aber vor allem müssen die Änderungen angezeigt werden sobald ich die Datei öffne.
Ohne Geklicke
Gruß Frank
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hi!
Man kann ja auch auf einem separaten Blatt protokollieren.
"Ohne Klick" nur mittels VBA.
Google mal nach
excel änderungen protokollieren vba
Da gibt es etliche fertige Lösungen.
Beachte: Dies darf nicht zur Überwachung von Mitarbeitern ohne deren Wissen dienen!
Wenn ein Betriebsrat vorhanden ist, muss der das vorher absegnen!
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 26.02.2016
Version(en): 2007
Ok,
ich denke ich werde es bei der Anwendung über 'Änderung nachverfolgen' belassen.
Ich werd halt meine Arbeitsweise der Aufzeichnung etwas anpassen müssen.
Bereiche Kopieren oder Ausschneiden und Einfügen wie ich es sonst oft gehandhabt habe sollte ich unterlassen.
Das macht das ganze recht unübersichtlich und löscht auch größtenteils die mir wichtigen letzten Änderungen der einzel Zellen.
Bei Zeilen und Spalten einfügen und löschen jedoch scheinen all von mir benötigten Informationen erhalten zu bleiben.
Nur Schade das man das nicht dauerhaft eingeschaltet behalten kann. :s
Das mit dem Betriebsrat behalte ich mal im Hinterkopf.
Momentan bearbeite nur ich diese Datei.
Falls sich das mal ändern sollte, (Der Betriebsratsvorsitzende sitzt direkt hinter mir).
Gruß
Frank
Registriert seit: 26.02.2016
Version(en): 2007
Hallo :20:
Ich habe mit folgendem Code...
Code:
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Dim r As Range
->Für jede geänderte Zelle
For Each r In Target
Call AenderungskennungAlsKommentar(r)
Next
Set r = Nothing
End Sub
'********************************************************
Private Function AenderungskennungAlsKommentar(r As Range)
'*** für die geänderte Zelle wird im Kommentar
'*** Benutzerkennung und Änderungszeitpunkt
'*** eingetragen
'*** Ist kein Kommentar vorhanden, wird ein neuer angelegt
Dim s As String, s_user As String
->ggf. vorhandenen Kommentar lesen
On Error Resume Next
s = r.Comment.Text
If Err.Number <> 0 Then
Err.Clear
->neuen Kommentar anlegen
r.AddComment
r.Comment.Visible = False
s =
End If
On Error GoTo 0
->Wenn Kommentar vorhanden, Zeilenumbruch anfügen
If s <> Then s = s & vbLf
->Letzten Benutzer feststellen
s_user = ActiveWorkbook.BuiltinDocumentProperties(7)
->Datum und Benutzer an Kommentar anfügen
s = s & Format(Now(), yyyymmdd_hhnn: ) & s_user
->Kommentar eintragen
r.Comment.Text s
End Function
...von folgeneder Website...
http://forum.windowsforum.de/thema/excel...gen.47555/...experimentiert.
Das ist der Stand von 2005
Was muss da für Excel 2007 angeglichen werden?
Es läuft nämlich nicht,
so gar nicht
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
15.03.2016, 15:56
(Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2016, 15:56 von RPP63.)
Hi!
Warum dort Html-Zeichen in den Code gerutscht sind, weiß wohl nur der dortige Forenbetreiber. :s
Ersetze
& amp ; durch
&Ersetze
& lt ; durch
<(die Leerzeichen habe ich hier eingefügt, damit man überhaupt sieht, was ich mein)
(kommen jew. ein paar mal im Code vor)
Zu den Html-eigenen Zeichen siehe:
https://wiki.selfhtml.org/wiki/HTML/Rege...ne_ZeichenGruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 26.02.2016
Version(en): 2007
Code:
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Dim r As Range
->Für jede geänderte Zelle
For Each r In Target
Call AenderungskennungAlsKommentar(r)
Next
Set r = Nothing
End Sub
'********************************************************
Private Function AenderungskennungAlsKommentar(r As Range)
'*** für die geänderte Zelle wird im Kommentar
'*** Benutzerkennung und Änderungszeitpunkt
'*** eingetragen
'*** Ist kein Kommentar vorhanden, wird ein neuer angelegt
Dim s As String, s_user As String
->ggf. vorhandenen Kommentar lesen
On Error Resume Next
s = r.Comment.Text
If Err.Number <;> 0 Then
Err.Clear
->neuen Kommentar anlegen
r.AddComment
r.Comment.Visible = False
s =
End If
On Error GoTo 0
->Wenn Kommentar vorhanden, Zeilenumbruch anfügen
If s <;> Then s = s &; vbLf
->Letzten Benutzer feststellen
s_user = ActiveWorkbook.BuiltinDocumentProperties(7)
->Datum und Benutzer an Kommentar anfügen
s = s &; Format(Now(), yyyymmdd_hhnn: ) &; s_user
->Kommentar eintragen
r.Comment.Text s
End Function
:s
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hi!
Du musst schon so ersetzen, wie ich oben schrieb:
Dann noch die Code-Kommentare als solche durch REM oder ' am Anfang der Zeilen als solche kenntlich machen,
und das verirrte s = mit s = "" ergänzen.
Ich hab Dir mal die Arbeit abgenommen.
Da nicht mein Code, habe ich ihn nicht getestet.
Modul Modul1Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Dim r As Range
'->Für jede geänderte Zelle
For Each r In Target
Call AenderungskennungAlsKommentar(r)
Next
Set r = Nothing
End Sub
'********************************************************
Private Function AenderungskennungAlsKommentar(r As Range)
'*** für die geänderte Zelle wird im Kommentar
'*** Benutzerkennung und Änderungszeitpunkt
'*** eingetragen
'*** Ist kein Kommentar vorhanden, wird ein neuer angelegt
Dim s As String, s_user As String
'->ggf. vorhandenen Kommentar lesen
On Error Resume Next
s = r.Comment.Text
If Err.Number <> 0 Then
Err.Clear
'->neuen Kommentar anlegen
r.AddComment
r.Comment.Visible = False
s = ""
End If
On Error GoTo 0
'->Wenn Kommentar vorhanden, Zeilenumbruch anfügen
If s <> "" Then s = s & vbLf
'->Letzten Benutzer feststellen
s_user = ActiveWorkbook.BuiltinDocumentProperties(7)
'->Datum und Benutzer an Kommentar anfügen
s = s & Format(Now(), "yyyymmdd_hhnn: ") & s_user
'->Kommentar eintragen
r.Comment.Text s
End Function
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 26.02.2016
Version(en): 2007
Oh man oh man oh man...
...ich werd wohl den Wald vor lauter Bäumen niemals bestaunen dürfen.
Vielen, vielen Dank Ralf
Einen hab ich noch:
Wenn ich folgende Datei in der das Makro laufen soll als *.xlsm abspeichere...:
Neue Projekte.xlsx (Größe: 45,92 KB / Downloads: 6)
...kann ich im VBA Editor (alt+F11) kein Modul einfügen.
Gott weiß wieso, oder halt Ralf
VG
Frank