Microsoft Excel

Herbers Excel/VBA-Archiv

"Änderungen nachverfolgen" aus Mustervorlage | Herbers Excel-Forum


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

Diees Makro habe ich in einer 2. Mappe als Modul. Dieses bewirkt, dass die Änderung in Mappe (hier "Nachverfolgen") im Kommentar angezeigt werden. Den Dateinamen musst Du anpassen. Experimentiere mal damit.

Sonst habe ich keine weitere Lösung.

Gruß

Dieter(Drummer)


  

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

'----- auslagern des Wertes A1 nach IV1 ----------------
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

gruss hary


  

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)