Clever-Excel-Forum

Normale Version: Datum automatisch nach jeder Zeile ausgeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, 

ich möchte gerne wissen, wie man sowas automatisiert. Bin ein Laie, was VBA angeht und lerne gerade ;)
Es geht um folgendes:

Ich will, dass wenn ich jeden Tag diese Excel-Datei öffne eine Zeile am Ende des Tages dick unterstrichen wird und bei einer bestimme Zelle das neue heutige Datum eingefügt wird.
Und dies ändert sich dann jeden Tag von automatisch, sobald ich die Datei öffne.

Hier mal nachgebildet, um es verständlicher zu machen:
[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]


Vielen Dank für eure Hilfe!
Hi,

(31.05.2017, 23:17)Thanatos schrieb: [ -> ]Ich will, dass wenn ich jeden Tag diese Excel-Datei öffne eine Zeile am Ende des Tages dick unterstrichen wird und bei einer bestimme Zelle das neue heutige Datum eingefügt wird.

Die Infos sind etwas dürftig:
nach welcher Bedingung soll welche Zelle unterstrichen werden und in welche Zelle soll das heutige Datum eingetragen werden?

Also stelle bitte (D)eine (Beispiel-)Tabelle als Excel-Datei zur Verfügung oder stelle die relevanten Ausschnitte und die Makro-Codes hier dar, siehe die als Wichtige Themen: markierten Beiträge im Forum "Nutzungs- und Bedienungshinweise" bei "Forumstechnik".
  • Eine Beispieldatei muss vom Aufbau her zwingend dem Original gleichen, sonst wird's mit gezielter Hilfe i. d. R. nichts oder erst nach zig Nachfragen
  • Meistens reichen 10-15 Datensätze
  • Sensible Daten sollen anonymisiert werden
  • Bei einigen Datensätzen sollte unbedingt händisch das Wunschergebnis eingetragen sein
  • Und last but not least ist es wichtig, im Post zugeschnitten auf die Beispieldatei eine ordentliche Problembeschreibung abzugeben.
Die farbigen Texte sind anklickbare Links:

Hier steht, wie es geht:
Beitrag 1 WICHTIG: Arbeitsmappen zur Verfügung stellen
Beitrag 2 WICHTIG: Tabellenausschnitte und VBA-Codes im Forum einstellen

Eine Bitte:
Anstatt Screenshots ist eine Datei oder ein Ausschnitt besser!
"Du gehst ja auch nicht in die Werkstatt und gibst ein Foto Deines kaputten Autos ab!"
Moin Ralf,
die Forderung an sich scheint mir klar. 
Nur die Rahmenbedingungen nicht.
Und ja, auch ich arbeite lieber mit als *.xlsx vorhandenen Daten, das erspart Missverständnisse und unnötige Arbeit.

Ich denke: Wenn das Workbook geöffnet wird, soll unterhalb der letzten beschriebenen Zeile ein dicker Rahmen eingefügt werden und in der Zeile darunter in Spalte_C das aktuelle datum.
So weit, so klar (erscheinend). Aber was ist, wenn das WB mehrfach am Tag geöffnet wird? "Machen wir nicht" ist eine Ausrede, denn es soll ja vorkommen, dass sich ein Rechner einmal aufhängt ...
Und ach ja, wenn das WB nur mal eben zum Nachsehen geöffnet wird, ohne dass ein weiterer Wert in die neue Zeile eingetragen wird?
Hallöchen,

das wäre mein Ansatz:

Code:
Private Sub Workbook_Open()
'Mit dem Blatt Tabelle1
 'Wenn letzter Eintrag in C <> Heute dann
   'Mit der letzen gefuellten Zelle in Spalte B
     'Rahmen unter Bereich A:C dieser Zeile setzen
     'rechts unterhalb der letzten gefundenen Zelle von B Datum eintragen
   'Ende Mit der letzen gefuellten Zelle in Spalte B
 'Ende Wenn letzter Eintrag in C <> Heute dann
'Ende Mit dem Blatt Tabelle1
End Sub
Vielen Dank für eure Antworten! 

Tut mir leid. Ich füge nun die Datei und den Ausschnitt hinzu.


Code:
   Selection.Borders(xlDiagonalDown).LineStyle = xlNone
   Selection.Borders(xlDiagonalUp).LineStyle = xlNone
   Selection.Borders(xlEdgeLeft).LineStyle = xlNone
   With Selection.Borders(xlEdgeBottom)
       .LineStyle = xlContinuous
       .ColorIndex = 0
       .TintAndShade = 0
       .Weight = xlMedium
   End With
   Selection.Borders(xlEdgeRight).LineStyle = xlNone
   Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
   Range("C5").Select
   ActiveCell.FormulaR1C1 = "=TODAY()"

Wie gesagt, bin leider kein Profi..
Hallöchen,

hier mal auscodiert Smile
Code:
Private Sub Workbook_Open()
'Mit dem Blatt Tabelle1
With Sheets("Tabelle1")
 'Wenn letzter Eintrag in C <> Heute dann
 If Cells(Rows.Count, 3).End(xlUp) <> Date Then
   'Mit der letzen gefuellten Zelle in Spalte B
   With .Cells(Rows.Count, 2).End(xlUp)
     'Rahmen unter Bereich A:C dieser Zeile setzen
     .Offset(, -1).Resize(, 3).Borders(xlEdgeBottom).LineStyle = xlContinuous
     .Offset(, -1).Resize(, 3).Borders(xlEdgeBottom).Weight = xlMedium
     'rechts unterhalb der letzten gefundenen Zelle von B Datum eintragen
     .Offset(1, 1) = Date
   'Ende Mit der letzen gefuellten Zelle in Spalte B
   End With
 'Ende Wenn letzter Eintrag in C <> Heute dann
 End If
'Ende Mit dem Blatt Tabelle1
End With
End Sub

Eine Datei ist aus meiner Sicht nicht nötig.