Betrifft: "Änderungen nachverfolgen" aus Mustervorlage
von: Jan
Geschrieben am: 25.01.2010 12:25:22
Liebe Excelianer,
ich möchte in einer Tabelle die Option "Änderungen nachvervolgen" aktivieren und diese Tabelle dann als Mustervorlage für die Benutzung durch andere ablegen.
Die Option zu aktivieren ist ja kein Problem, aber sobald ich daraus eine Mustervorlage mache ist der Änderungsmodus nicht mehr aufzufinden.
Lässt sich der Änderungsmodus vielleicht auch per Makro aktivieren und bestimmten Zellen zuweisen, nachdem aus der Mustervorlage wieder eine normale .xls wurde? Oder vielleicht lässt sich der Änderungsmodus auch per VBA quasi simulieren?
Ratlos,
Jan
Betrifft: AW: Meinst Du "Spur zum Vorgänger ..."
von: dieter(drummer)
Geschrieben am: 25.01.2010 12:37:12
Hi Jan,
wenn Du z. B. Spur zum Vorgänger etc. mit den PFEILEN meinst, dann mach nach aktivieren einen Printscreen mit den Tasten ALT+Druck. Dann einfügen und Du hast die z. B. Vorgänger Pfeile sichtbar.
Gruß
Dieter(Drummer)
Betrifft: meine andre Funktion (ähnlich Word Änderungsmodus)
von: Jan
Geschrieben am: 25.01.2010 13:00:07
Hej Dieter,
danke, aber das meine ich nicht. Es gibt auch in Excel die Funktion (wie in Word), dass Änderungen nachverfolgt werden könnnen. (Extras - Änderungen nachverfolgen). In Aktion erscheint dann so ein Kommentar "Zelle xy wurde von WErt A auf Wert B geändert."
Das möchte ich gerne über eine Mustervorlage transportieren können. Geht aber scheinbar nicht so einfach.
Viele Grüße,
Jan
Betrifft: AW: Kann da leider nicht helfen. owT
von: dieter(drummer)
Geschrieben am: 25.01.2010 13:06:24
.
Betrifft: AW: Jan, hab was versucht ...
von: dieter(drummer)
Geschrieben am: 25.01.2010 13:20:46
Hi Jan,
habe mal mit Makrorekorder was versucht, evtl. hilft es weiter:
Sub Folgen() Windows("Nachverfolgen.xls").Activate Range("C3").Select ActiveWorkbook.KeepChangeHistory = True ActiveWorkbook.SaveAs Filename:="C:\Downloads-mx\Nachverfolgen.xls", _ AccessMode:=xlShared With ActiveWorkbook .HighlightChangesOptions When:=xlAllChanges .ListChangesOnNewSheet = False .HighlightChangesOnScreen = True End With End Sub
Betrifft: AW: "Änderungen nachverfolgen" aus Mustervorlage
von: welga
Geschrieben am: 25.01.2010 14:22:50
Hallo,
suche mal nach : "Gleiche Zelle addieren". Da gab es das Thema Kommentarfeld als Historie verwenden schon mal.
Vllt. hilft es dir ja.
Gruß
welga
Betrifft: AW: "Änderungen nachverfolgen" aus Mustervorlage
von: Jan
Geschrieben am: 25.01.2010 16:29:39
Hello Dieter,
das würde gehen. Ich find die Idee von Welga auch gut. (Danke schön für den Tipp.) Wie findest du den Ansatz? Könnte man das nicht auch abwandeln, sodass Änderungen in Zelle A1 gleich in den Kommentar geschrieben werden? Damit hätte man doch genau was ich wollte. So wie ich den Code verstehe müsste man die Target.address nur erweitern und dort alle zu überwachenden Zellen angeben. Dann noch den Rest am Ende des Codes weg, der für die andere Aufgabe war. (Mal sehen ob es so einfach ist.)
Viele Grüße,
Jan
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" Then 'hier nur bei Zelle A1 If Target.Comment Is Nothing Then 'wenn kein Kommentar vorhanden Target.AddComment 'erstelle einen Kommentar Target.Comment.Text Target.Comment.Text & Format(Target.Value, "hh:mm") & " geä _ ndert am " & Date 'schreibe Inhalt aus Zelle A1 in Kommentar Target.Comment.Visible = False Cells(1, 3) = Target.Value + Range("IV1").Value Else 'wenn Kommentar vorhanden Target.Comment.Text Target.Comment.Text & Chr(10) & Format(Target.Value, "hh:mm") & _ _ " geändert am " & Date 'alter Inhalt und neuer Inhalt Zelle A1 Target.Comment.Shape.Height = Target.Comment.Shape.Height + 10 ' Höhe des Feldes!! _ _ etwas rumprobieren Target.Comment.Visible = False Cells(1, 3) = Target.Value + Range("IV1").Value ' zählt in C3 zusammen End If Range("IV1") = "" End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Address = "$A$1" Then Range("IV1").Value = Target.Value End If End Sub
Betrifft: Fast gelöst!! Noch eine Kleinigkeit...
von: Jan
Geschrieben am: 25.01.2010 17:01:35
Hello zusammen,
damit komme ich genau ans Ziel. Könnt ihr mir noch auf die Sprünge helfen, wie ich Target.Address auf den Bereich A1:A50 ausdehnen kann? Hab bissel probiert, naja...
Vielen Dank nochmal an euch Zwei,
Jan
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" Then 'hier nur bei Zelle A1 If Target.Comment Is Nothing Then 'wenn kein Kommentar vorhanden Target.AddComment 'erstelle einen Kommentar Target.Comment.Text Target.Comment.Text & Format(Target.Value, "#.##") & " geändert _ am " & Date 'schreibe Inhalt aus Zelle A1 in Kommentar Target.Comment.Visible = False Else 'wenn Kommentar vorhanden Target.Comment.Text Target.Comment.Text & Chr(10) & Format(Target.Value, "#.##") & " _ geändert am " & Date 'alter Inhalt und neuer Inhalt Zelle A1 Target.Comment.Shape.Height = Target.Comment.Shape.Height + 30 ' Höhe des Feldes!! _ etwas rumprobieren Target.Comment.Visible = False End If End If End Sub
Betrifft: Gelöst!!
von: Jan
Geschrieben am: 25.01.2010 17:11:47
So gehts:
Nochmals Dank und Grüße,
Jan
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Row >= 0 And Target.Row <= 35 Then If Target.Comment Is Nothing Then 'wenn kein Kommentar vorhanden Target.AddComment 'erstelle einen Kommentar Target.Comment.Text Target.Comment.Text & Format(Target.Value, "#.##") & " geändert _ am " & Date 'schreibe Inhalt aus Zelle A1 in Kommentar Target.Comment.Visible = False Else 'wenn Kommentar vorhanden Target.Comment.Text Target.Comment.Text & Chr(10) & Format(Target.Value, "#.##") & " _ geändert am " & Date 'alter Inhalt und neuer Inhalt Zelle A1 Target.Comment.Shape.Height = Target.Comment.Shape.Height + 30 ' Höhe des Feldes!! _ etwas rumprobieren Target.Comment.Visible = False End If End If End Sub
Betrifft: AW:die Kleinigkeit...
von: hary
Geschrieben am: 25.01.2010 17:12:24
hallo jan
Hab schon von anfang an mitgelesen ;-)) Dachte Dieter schlaegt zu.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:A50")) Is Nothing Then 'Ueberwachter Bereich If Target.Comment Is Nothing Then 'wenn kein Kommentar vorhanden Target.AddComment 'erstelle einen Kommentar Target.Comment.Text Target.Comment.Text & Format(Target.Value, "hh:mm") & " geä _ ndert am " & Date 'schreibe Inhalt aus Zelle A1 in Kommentar Target.Comment.Visible = False Else 'wenn Kommentar vorhanden Target.Comment.Text Target.Comment.Text & Chr(10) & Format(Target.Value, "hh:mm") & _ " geändert am " & Date 'alter Inhalt und neuer Inhalt Zelle A1 Target.Comment.Shape.Height = Target.Comment.Shape.Height + 10 ' Höhe des Feldes!! _ etwas rumprobieren Target.Comment.Visible = False End If Target.Comment.Shape.Width = 120 'Breite des feldes End If End Sub
Betrifft: AW: AW: Jan und Hary
von: dieter(drummer)
Geschrieben am: 25.01.2010 18:54:14
Hi Jan und Hary,
musste leider kurzzeitig weg, deshalb jetzt erst Rückmeldung.
Jan, prima, dass Du den Code selbst dann anpassen konntest. Der Urcode ist von Hary, dem ich wiedermal für seinen Einsatz DANKE sage.
Gruß
Dieter(Drummer)