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 (64 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 (64 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 (64 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 (64 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