Automatisch Zelle ergänzen bei Eingabe
#1
Hallo zusammen,

ich möchte mein Excelblatt so gestalten, dass bei neuen Kommentaren immer das Datum vor meinen Kommentar geschrieben wird. Um es auf den Screenshot bedeutet dies:
- immer wenn ich in Spalte C und D etwas eintrage, dann wird vor diesen Eintrag das heutige Datum geschrieben. Ich schreibe also "Test 2" in die Zelle und das wird automatisch in 'heutigesDatum' + "Test 2" umgewandelt.

Was muss ich in die Blatteinstellungen/ Blattprogrammierungen schreiben, damit ich zu diesem Ergebnis komme?

Vielen Dank für Eure Hilfe :)


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hallo

den VBA Editor öffnen, in deine gewünschte Tabelle diesen Code eingeben, und dich überraschen lassen.  Das ist alles.  Viel Spass beim testen ...

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If InStr(Target.Address, ":") Then Exit Sub
If Target.Value = Empty Then Exit Sub

If Target.Column = 3 Or Target.Column = 4 Then
   Target.Value = Date & " " & Target.Value
End If
End Sub


mfg Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Lucker11
Antworten Top
#3
Hallo,

mein Verständnis war, dass Kommentare geändert werden sollen. Das wäre dann in etwas so:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Me
    If .Comments.Count > .Range("A1") Then
        Tx = Me.Comments(Me.Comments.Count).Text
        Tx = Now & " " & Tx
        Me.Comments(Me.Comments.Count).Text Tx, , 1
        Debug.Print .Comments(.Comments.Count).Text
       
        Me.Range("A1") = .Comments.Count
    End If
End With
End Sub

Der Index darf aber nicht in A1 stehen, sondern in einem Property des Sheets.

mfg
Antworten Top
#4
Wahnsinn, vielen Dank für die schnelle Antwort :)

(03.11.2021, 11:44)Gast 123 schrieb: Hallo

den VBA Editor öffnen, in deine gewünschte Tabelle diesen Code eingeben, und dich überraschen lassen.  Das ist alles.  Viel Spass beim testen ...

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If InStr(Target.Address, ":") Then Exit Sub
If Target.Value = Empty Then Exit Sub

If Target.Column = 3 Or Target.Column = 4 Then
   Target.Value = Date & " " & Target.Value
End If
End Sub


mfg Gast 123

Wahnsinn, vielen Dank für die schnelle Antwort :)

Wenn ich dann ein neues Tabellenblatt mit VBA erstelle, kann ich diesen Code dann von Anfang an in dem Tabellenblatt hinterlegen? :)
Antworten Top
#5
Hallo

Ja, am besten wenn du das Blatt zur Vorlage machst, wie RPP63 es rät.  Als .xltm speicherst.  Dann ist das Makro direkt drin wenn du die Vorlage lädst.

mfg Gast 123
Antworten Top
#6
Es gibt jetzt noch ein Problem. Ich schreibe etwas in die Zelle und das Datum wird nicht direkt ergänzt. Erst, wenn ich die Zelle auswähle, wird das Datum ergänzt.

Wie bekomme ich eine sofortige Ergänzung hin?

Vielen Dank :)
Antworten Top
#7
Hallöchen,

im Beispiel hast Du ...Worksheet_SelectionChange..., zu deutsch ...
Weiterhin gibt es ...Worksheet_Change...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste