Datumsstempel in Excel einfügen?

3 Antworten

Nur mit VBA-Programmierung.

z.B. So (nur ein kurzes, kleines Beispiel, man sollte hier noch etwas mehr tun - in das Worksheet Change Ereignis).

Als Text kannst du den Benutzernamen auslesen lassen und eintragen und natürlich noch vieles mehr.

On Error Resume Next
Target.AddComment
Target.Comment.Text ("Hallo")



Hi, genau sowas suche ich.

Der Schichtplan geht von C2 bis G101.

Hättest du ggf den kompletten Code, den ich einfügen kann?

Danke.

0
@Burol

So könnte das Ganze aussehen,Inkl Historie im Kommentar, ich kenne aber natürlich deine weiteren Rahmenbedingungen nicht. :

Als Benutzername wird der Benutzer abgefangen, der im Excel hinterlegt ist (!) Das kann zu Problemen führen, wenn mehrere Leute am Gleichen System arbeiten oder der Benutzer nicht gepflegt ist.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim var As String

On Error Resume Next

If Not Intersect(Target, Range("C2:G101")) Is Nothing Then
var = Target.Comment.Text
Target.AddComment
Target.Comment.Text (var & vbLf & vbLf & "Benutzer: " & Application.UserName & vbLf & "Datum + Uhrzeit: " & Now)
End If

End Sub

wenn eine Historie nicht gewünscht ist, einfach den Part

Dim var as String
var = Target.Comment.Text
var & vbLf & vbLf &

löschen

1
@azmd108

Nachtrag: So kannst du z.b. Alle Kommentare im Bereich wieder löschen (Sheetname anpassen):

Sub delete_comments()

On Error Resume Next

Sheets("Tabelle1").Cells.Range("C2:G101").SpecialCells(xlCellTypeComments).ClearComments

End Sub

0
@azmd108

Hi,

ich habs genau so abgeschrieben, aber leider erstellt Excel keinen Kommentar. :(

Kann es daran liegen, dass die Schichten per Drop Down ausgewählt werden?

0
@Burol

Du musst das Ganze ins Worksheet_Change-Ereignis des entsprechendes Arbeitsblattes packen, dann klappt es.

0
@Burol

VBA-Editor mit ALT+F11 öffnen,

in der Linken Spalte unter "Microsoft Excel Objekte" das gewünschte Tabellenblatt doppelklicken.

Den gesamten von mir geposteten Code (mein erstes Kommentar) kopieren und einfügen. Dann klappts

0
@azmd108

Das habe ich. Immernoch kein Kommentar. Liegt es vielleicht am DropDown Menü?

Ich bekomme weder Kommentar, noch Fehlermeldung.

0
@Burol

Hmm bei mir funktioniert es. Auch mit einem DropDown-Menü sollte es an sich funktionieren. Dann kann ich dir leider nicht weiterhelfen (ohne deine Datei gesehen zu haben).

0
@azmd108

Also ich habs ausprobiert: Ohne Drop Down gehts. Mit leider nicht.

Der Kommentar ist auch frei bearbeitbar. Hätte den gerne gesperrt für manuelle Eintragungen.

0
@Burol

Zwei Möglichkeiten die mir Einfallen:

1. Blatt sperren / schützen

2. den "Rechtsklick" in dem Bereich deaktivieren (dann kann man aber z.b. das Kommentarfenster auch nicht mehr vergrößern oder verkleinern. Um das zu umgehen, bitte in den ersten Code unter

"Target.Comment.Text" bitt das hier einfügen:

Target.Comment.Shape.TextFrame.AutoSize = True

PS: Bei mir geht es auch mit DropDown, komisch


Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("C2:G101")) Is Nothing Then
Application.CommandBars("Cell").Enabled = False
Else
Application.CommandBars("Cell").Enabled = True
End If

End Sub
0
@azmd108

Ich hab die Lösung.

Es lag tatsächlich am Blattschutz. In der Routine einfach den Blattschutz aufheben, den Kommentar machen lassen und wieder schützen. Dann klappts. :)

Vielen vielen Dank für die Hilfe.

1

Das lässt sich in dieser Form nur mit VBA/Makro umsetzen

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:D10")) Is Nothing Then
On Error Resume Next
Range(Target.Address).AddComment
If Range(Target.Address).Comment.Text = "" Then
Range(Target.Address).Comment.Text Text:="Eintrag eingefügt von: " & VBA.Environ("Username") & " am: " & Now()
Else:
Range(Target.Address).Comment.Text Text:=Range(Target.Address).Comment.Text & vbCrLf & "Eintrag eingefügt von: " & VBA.Environ("Username") & " am: " & Now()
End If
End If
End Sub

Überwacht wird auf diese Weise der Bereich A1:D10 und zur jeweils geänderten Zelle der Kommentar eingetragen mit Windows-User und Timestamp. Bei bereits vorhandenen Kommentaren wird der bisherige Text um den neuen Eintrag ergänzt.

Das Makro zum entsprechenden Tabellenblatt hinterlegen, nicht in ein eigenes Modul.

Kommst Du damit soweit klar oder soll ich besser noch was zum Ablauf erläutern?

edit - jetzt sehe ich dass azmd108 ja schon das gleiche genannt hat, naja doppelt hält besser.

Da ich ja lernfähig bin ;-) und trotzdem nicht mehr editieren kann :-( wird aus hiermit rückwirkend  "range(Target.address)" zu "target"

0

Wie stellst Du Dir den Eintrag der jeweiligen Person vor? Manuell, Chipkarte, Kellner-Button,...?

Das aktuelle Datum + Uhrzeit kann man mit Jetzt() eintragen.

Jeder trägt sich manuell ein. Ich möchte aber, dass der Kommentar automatisch kommt, wenn jemand eine Änderung einträgt. Ich möchte vermeiden, dass jemand den Stempel manuell setzt. Ich habe es schon mit verschiedenen VBA Scripts versucht, aber nichts klappt bisher.

0
@Burol

Dafür würdest Du einen zeitlichen Ablauf, eine "History" benötigen. Sowas kannst Du mit einen Datenbank-Programm wie Access (Teil von MS Office Professional) realisieren. Excel ist ein Spreadsheet-Programm und nicht für sowas vorgesehen.

0
@Herb3472

Hat xl nicht sogar einen History-Button? Hab ich zwar nie gebraucht, aber ich erinnere mich, sowas mal gesehen zu haben, Button mit Gridlines und roter/n Zelle/n drin. (noch im alten 2000 oder so)

0
@Iamiam

geh mal mit der rechten Maustaste auf das benutzerdefinierbare Menüband (Symbolleiste für den Schnellzugriff, da wo Widerrufen und Wiederholen sind). Geh auf Punkt anpassen, weitere Befehle hinzufügen, Kategorie alle. in der alphabetischen Knopfliste findest Du "Änderungen nachverfolgen" und ein paar Verwandte. Das öffnet einen Dialog, in dem Du Optionen festlegen kannst (erst mal links oben ankreuzen, sonst sind die anderen Optionen blockiert!) Der letzte Punkt bleibt bei mir ausgegraut, vllt in neueren Versionen?

Probier das mal, ich selbst hab keine Erfahrung damit, ich brauch die Leiste für den Schnellzugriff für ganz andere Sachen!

0
@Iamiam

Hat xl nicht sogar einen History-Button?

Niemand würde auf die Idee kommen, z.B.
ein Arbeitszeiterfassungs- oder Registrierkassenprogramm oder Ähnliches, wo Geschäftsvorfälle kontinuierlich aufgezeichnet werden müssen, mit Excel zu "erschlagen". Dafür gibt es Datenbanken.

0

das Jetzt() bleibt aber nicht, sondern ändert sich laufend mit der Zeit.

Fixiert geht die Kombination folgender Eingaben:

Shortcut Strg+. (Punkt), dann Leerzeichen, dann Strg+: (Doppelpunkt)

Probiers aus! Lässt sich auch innerhalb eines Fließtextes verwenden!

1

Was möchtest Du wissen?