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

automatischer Kommentar

automatischer Kommentar
30.06.2006 07:50:03
Enrico
Hallo
vor ein paar Tagen hatte ich schon eine Antwort auf meine Frage nach Mitschreibung des Änderungsdatums im Kommentar einer Zelle erhalten.
Nach Erweiterung meiner Tabelle klappt das aber nicht mehr so ganz.
Das war die Lösung

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Comment Is Nothing Then
Target.AddComment Format(Now(), "dd.MM.yyyy hh:mm:ss")
Else
Target.Comment.Text Text:=Format(Now(), "dd.MM.yyyy hh:mm:ss")
End If
End Sub

Nun mein neues Problem
Ich möchte einen Bereich markieren und darin allen Zellen einen Wert (bzw. Zeichen) zuweisen umd möchte dann in jeder einzelnen Zelle das Änderungsdatum im Kommentar stehen haben.
Meine Lösung für das Ausfüllen der Zellen ist sicher nicht die eleganteste aber sie funktioniert. Ich würde mich naturlich auch über eine bessere Lösung hierzu freuen.
Damit ändere ich alle Zellen im markierten Bereich.
Sub ändern()
Selection.ClearContents
Selection.Replace What:="", Replacement:="U", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
PS.: bei geschützter Arbeitsmappe funktioniert auch das mit dem Kommentar nicht mehr - vielleicht weiß da auch noch jemand abhilfe - mein Sheet ist nämlich geschützt.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatischer Kommentar
30.06.2006 08:55:44
ANdreas
Hallo Enrico,
vielleicht hilft Dir das weiter:

Private Sub Worksheet_Change(ByVal Target As Range)
Const PW As String = "Passwort"
Dim c As Range
ActiveSheet.Unprotect PW
For Each c In Target
If c.Comment Is Nothing Then
c.AddComment Format(Now(), "dd.MM.yyyy hh:mm:ss")
Else
c.Comment.Text Text:=Format(Now(), "dd.MM.yyyy hh:mm:ss")
End If
Next c
ActiveSheet.Protect PW
End Sub

Gruß
Andreas
Erweiterung ?
30.06.2006 10:33:36
Enrico
Danke Andreas das war die Lösung
Kann man das jetzt noch soweit ändern das ich , sagen wir mal , die letzetn 5 Änderungen im Kommentar sehe ? - Vielleicht inden man den Inhalt in einer Variablen speichert dann das neue Datum und die Daten aus der Variablen wieder an den Kommentar übergibt ?
..................................................................................................
und vielleicht auch noch den Zusatz user ( aus "user = Application.UserName" )
..................................................................................................
Anzeige
AW: Erweiterung ?
30.06.2006 13:26:27
Bertram
Hallo Enrico,
man könnte es z.B. sehr umständlich machen:
Schreibe in Zelle C1 die Formel {=LÄNGE(B1)-LÄNGE(WECHSELN(B1;ZEICHEN(59);""))} als Matrixformel
Achte darauf, dass du in Zelle B1 nichts stehen hast was du brauchst, da der Kommentar vorübergehen in die Zelle gechrieben wird.
Füge den Code in dein Tabellenblatt ein

Private Sub Worksheet_Change(ByVal Target As Range)
Const PW As String = "Passwort"
Dim Zähler As Integer
Dim c As Range
'ActiveSheet.Unprotect PW
Application.EnableEvents = False
For Each c In Target
If c.Comment Is Nothing Then
c.AddComment Text:="1. Änderung: " & "'" & c.Value & "'" & " von " & _
Application.UserName & " " & Format(Now(), "dd.MM.yyyy hh:mm:ss") & ";"
Else
Range("B1").Value = c.Comment.Text
Zähler = Range("C1").Value
Select Case Zähler
Case Is = 1, 2, 3, 4
c.Comment.Text Text:=c.Comment.Text & vbCrLf & Zähler + 1 & "." & "Änderung: " _
& "'" & c.Value & "'" & " von " & _
Application.UserName & " " & Format(Now(), "dd.MM.yyyy hh:mm:ss") & ";"
Case Else
c.Comment.Text Text:=""
c.Comment.Text Text:="1. Änderung: " & "'" & c.Value & "'" & " von " & _
Application.UserName & " " & Format(Now(), "dd.MM.yyyy hh:mm:ss") & ";"
End Select
End If
Next c
Range("B1").ClearContents
'ActiveSheet.Protect PW
Application.EnableEvents = True
End Sub

Gruß
Bertram
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige