Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

In Spalte A das Datum von gestern

In Spalte A das Datum von gestern
03.06.2013 16:29:06
gestern
Hallo,
ich habe ein Problem.
Ich ziehe mir täglich Daten vom Vortag in eine Extra Tabelle. Der Datensatz geht von Spalte B bis Spalte G.
Das Problem dabei ist, dass ich automatisch vor jeden Eintrag in Spalte A das Datum von gestern eintragen lassen möchte.
Gibt es da eine Möglichkeit mit VBA?
Danke und Grüße
Ben

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Spalte A das Datum von gestern
03.06.2013 16:55:50
gestern
Hallo Ben,
nach folgendes Makro eingefügt in ein allgemeinen Modul tut es.
Entweder du fügst es in deiner persönlichen Makro-Arbeitsmappe ein, dann bleibt die Datentabelle makrofrei.
Oder du baust es in ein allgemeines VBA-Modul in der Datei ein, in du die Daten ziehst.
Gruß
Franz Sub Datum_gestern_Spalte_A() Dim Zeile_L As Long, Zeile_1 As Long Dim wks As Worksheet Set wks = ActiveSheet With wks 'nächste leere Zeile in Spalte A Zeile_1 = .Cells(.Rows.Count, 1).End(xlUp).Row If Zeile_1 > 1 Then Zeile_1 = Zeile_1 + 1 Else If .Cells(1, 1) "" Then Zeile_1 = 2 End If 'letzte Zeile mit Daten in Spalte B Zeile_L = .Cells(.Rows.Count, 2).End(xlUp).Row If .Cells(Zeile_L, 2).Value "" Then If Zeile_L >= Zeile_1 Then .Range(.Cells(Zeile_1, 1), .Cells(Zeile_L, 1)).Value = Date - 1 End If End If End With End Sub

Anzeige
AW: In Spalte A das Datum von gestern
03.06.2013 17:44:32
gestern
Hallo Franz,
ich habe mal eine beispieldatei hochgeladen, dort habe ich dein Makro eingefügt.
Wenn ich es ausführen möchte passiert nichts.
Kannst du es dir mal anschauen?
https://www.herber.de/bbs/user/85633.xlsm
Danke und Gruß
Ben

AW: In Spalte A das Datum von gestern
03.06.2013 19:04:09
gestern
Hallo
Probier mal ...
Dim Zeile_L As Long
With ActiveSheet
Zeile_L = .Cells(.Rows.Count, 2).End(xlUp).Row
.Range(.Cells(2, 1), .Cells(Zeile_L, 1)) = Date - 1
End With
Gruß Matthias

AW: In Spalte A das Datum von gestern
03.06.2013 19:40:55
gestern
Super! Danke es funktioniert.
:)

Anzeige
AW: In Spalte A das Datum von gestern
03.06.2013 20:13:03
gestern
Hallo
Ich glaube aber Franz hatte einen anderen Gedanken verfolgt.
Nämlich zu prüfen ob in "A" schon Einträge vorhanden sind.
Wenn "ja" dann erst ab der ersten leeren Zelle in "A" also unter der letzten gefüllten Zelle in "A" (hier A8)
bis zum Ende der Einträge in "B" das Datum vom Vortag zu schreiben.
Die gepostete Code bezieht sich also auch nur auf die von Dir so bereitgestellte Datei!
Wenn allerdings in der gleichen Datei am Folgetag Datensätze unten angefügt werden
hier in blauer Schrift dargestellt:
Juni

 ABCDEFGH
1DatumNameNew HireUPHDUPHStundenUnitsin % zur Vorgabe
202.06.2013     00%
302.06.2013xxx.1241157,64947118%
402.06.2013xxx.1091157,58829104%
502.06.2013xxx.1111157,63848106%
602.06.2013xxx.1281157,6970122%
702.06.2013xxx.1391157,13990132%
802.06.2013xxx.1061157,68817101%
9 xxx.861157,5765382%
10 xxx.1251157,6952119%
11 xxx.701151,198366%
12 xxx.1101157,7848105%
13 xxx.1151151,18136110%
14 xxx.1091151,96213103%
15 xxx.1501200,023143%
16 xxx.1221157,6926116%
17 xxx.1641151,22200156%
18 xxx.1231157,63938117%


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
denke ich das Franz sicher meinte ab Zeile(9) bis Ende das neue Datum zu setzen (also den 03.06.2013)
Was Du nun genau möchtest kann ich an Deiner Ausgangsfrage leider nicht ganau erkennen.
Gruß Matthias

Anzeige
AW: In Spalte A das Datum von gestern
04.06.2013 15:50:13
gestern
Hallo,
genau so war es gedacht.
Die nächste freie Zeile suchen und dann daran anknüpfen.
Heute hat er mir die ganze spalte A mit dem Datum von gestern überschrieben.
Sollte aber so gedacht sein, wie auf deinem Bild.
Was müsste ich dafür ändern?
LG
Ben

In Spalte A das Datum von gestern ...
04.06.2013 19:01:13
gestern
Hallo Ben
Du musst da genauer definieren von welcher Spalte der erste neue/letzte alte Eintrag abhängig sein soll!
Gruß Matthias

AW: In Spalte A das Datum von gestern ...
04.06.2013 19:31:35
gestern
Hallo Matthias,
Also anfangen soll es immer dort, wo bei Spalte A der letzte Eintrag mit Datum ist.
Ich hänge immer am Folgetag den nächsten Datensatz bei B dran.
Prinzipiell genau so wie auf deinem Bild.
Da hört das Datum ja in Zeile 9 auf. Dort soll es dann einfach weitergehen mit dem Datum vom Folgetag
Verstehst du was ich meine? :)
LG
Ben

Anzeige
AW: In Spalte A das Datum von gestern ...
04.06.2013 19:59:56
gestern
Hallo
Sub Datum_gestern_Spalte_A()
Dim Zeile_L1 As Long
Dim Zeile_L2 As Long
With ActiveSheet
Zeile_L1 = .Cells(.Rows.Count, 1).End(xlUp).Row
Zeile_L2 = .Cells(.Rows.Count, 2).End(xlUp).Row
.Range(.Cells(Zeile_L1 + 1, 1), Cells(Zeile_L2, 1)) = Date - 1
End With
End Sub
Abhängig ist der letzte Eintrag in Spalte("B")
Gruß Matthias

vor das 2. Cells muss natürl. auch ein Punkt ...
04.06.2013 20:31:39
Matthias
Hallo
.Range(.Cells(Zeile_L1 + 1, 1), .Cells(Zeile_L2, 1)) = Date - 1
Gruß Matthias

AW: vor das 2. Cells muss natürl. auch ein Punkt ...
04.06.2013 20:44:18
Ben
Hallo Matthias,
danke für deine Hilfe.
Folgendes passiert wenn ich den Code so einfüge.
Userbild
Er trägt jetzt das Datum in der letzten Zeile ein und darunter.
LG
Ben

Anzeige
schau mal in dieser Datei ...
04.06.2013 20:58:41
Matthias
Hallo
Was weiß ich, vielleicht sind die Zellen bis A45 ja nich leer. Das kann ich nicht beurteilen
https://www.herber.de/bbs/user/85653.xlsm
Gruß Matthias

AW: schau mal in dieser Datei ...
05.06.2013 00:32:32
Matze
Hallo Ben, Hallo @All schon daran Beschäftigte,
liegt es daran das der Bereich als Tabelle formatiert ist?
Sub datumgestern()
Dim Basis As Range
Dim Zelle As Range
Dim LoletzteA&
Dim LoletzteB&
Dim i As Long
LoletzteA = Cells(Rows.Count, 1).End(xlUp).Row  'geht hier immer auf Zeile48
LoletzteB = Cells(Rows.Count, 2).End(xlUp).Row
Set Basis = Range(Cells(LoletzteA, 1), Cells(LoletzteB, 2))
Application.EnableEvents = False
For Each Zelle In Basis
i = Zelle.Row
Cells(i, 1) = Date - 1
Zelle.Calculate
Next Zelle
Application.EnableEvents = True
End Sub

Wenn ich die Formatierung als Tabelle rausnehme funktioniert es!
Matze

Anzeige
Richtig, Tabelle erst in Bereich konvertieren
05.06.2013 04:47:01
Matthias
Hallo
Hatte ich nur vergessen zu erwähnen, Sorry dafür.
Hätte man aber auch bemerken können ;-)
In der Datei ist das ja schon realisiert.
Gruß Matthias

AW: schau mal in dieser Datei ...
05.06.2013 08:38:44
fcs
Hallo Ben,
bei eingebetten Tabellen-Objekten funktioniert die Ermittlung der letzten freien Zeile in einer Spalte etwas anders, da die Tabellenobjekte ein gewisses Eigenleben unabhängig von dem Tabellenblatt haben.
Nachfolgend ein angepasstes Makro für Daten in einem Tabellenobjekt (ListObject).
Gruß
Franz
Sub Datum_gestern_Spalte_A()
Dim Zeile_L As Long, Zeile_1 As Long
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
With .ListObjects(1)
Zeile_L = .Range.Row + .Range.Rows.Count - 1
End With
If IsEmpty(.Cells(Zeile_L, 1)) Then
Zeile_1 = .Cells(Zeile_L, 1).End(xlUp).Row + 1
If Zeile_1 

Anzeige
Danke Franz, wieder was gelernt. owT
05.06.2013 11:58:34
Matze

AW: schau mal in dieser Datei ...
05.06.2013 16:53:49
Ben
Super! Vielen dank an Euch.
Funktioniert jetzt wie geplant.
LG
Ben

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige