Supportnet / Forum / Tabellenkalkulation
Fortlaufendes Datum in Excel
Frage
Ich habe leider so gut wie keine Ahnung von Excel und hoffe ganz dreist, dass mir hier einer helfen kann :-)
Ich möchte, dass in einer Zeile (Zeile 3 um genau zu sein) von A bis ZZZZZ (oder unendlich ;-) ) fortlaufend das Datum eingetragen wird, also:
A3: 2005-08-22
B3: 2005-08-23
C3: 2005-08-24
usw. usf.
Am besten wäre noch, wenn Samstage und Sonntage (und Feiertage?) außer Acht gelassen werden könnten, also nur die Arbeitstage eingetragen würden, aber dies wäre nur eine Bonusfrage.
Die Hilfefunktion hat mir dabei nicht wirklich weitergeholfen ...
Kann das jemand von euch???
Vielen Dank im Voraus,
mkreysern
Antwort 1 von K-D
Hi,
diese Funktion ist in der Hilfe gut dokumentiert. Unter dem Artikel: "Erstellen einer aufeinander folgenden Liste von Datumsangaben"
Ich bin mit den Suchbegriffen "datum addieren" drauf gestoßen.
Damit kannst Du auch Deinen Wunsch mit den Wochenenden realisieren. Feiertage leider nich.
Gruß
K-D
diese Funktion ist in der Hilfe gut dokumentiert. Unter dem Artikel: "Erstellen einer aufeinander folgenden Liste von Datumsangaben"
Ich bin mit den Suchbegriffen "datum addieren" drauf gestoßen.
Damit kannst Du auch Deinen Wunsch mit den Wochenenden realisieren. Feiertage leider nich.
Gruß
K-D
Antwort 2 von mkreysern
Vielen, vielen Dank für die Hilfe! Manchmal ist die Lösung leichter als man denkt.
Ich habe jedoch Excel 2000, da gab es dieses Hilfskapitel nicht (hab dann im Internet gesucht).
http://office.microsoft.com/de-de/assistance/HP051993171031.aspxhtt...
In dieser Hilfestellung wird das Auto-Ausfülloptions-Kästchen erwähnt. Dieses kann ich bei Excel 2000 jedoch nicht finden. Dadurch habe ich es immer noch nicht geschafft, Samstage und Sonntage automatisch auszulassen. Weiß jemand wie man diese Funktion bei Excel 2000 aktiviert?
Gute Nacht,
mkreysern
Ich habe jedoch Excel 2000, da gab es dieses Hilfskapitel nicht (hab dann im Internet gesucht).
http://office.microsoft.com/de-de/assistance/HP051993171031.aspxhtt...
In dieser Hilfestellung wird das Auto-Ausfülloptions-Kästchen erwähnt. Dieses kann ich bei Excel 2000 jedoch nicht finden. Dadurch habe ich es immer noch nicht geschafft, Samstage und Sonntage automatisch auszulassen. Weiß jemand wie man diese Funktion bei Excel 2000 aktiviert?
Gute Nacht,
mkreysern
Antwort 3 von mkreysern
Antwort 4 von K-D
Ich nutze zwar nich Excel 2000, aber das Kästchen kam bei mir erst, nachdem ich schon die Datumsfunktion eingerichtet hatte.
Antwort 5 von mkreysern
dieses Kästchen scheint bei Excel 2000 noch nciht zu existieren :-(
Antwort 6 von K-D
Kennst Du Dich in der Verwendung von VBA aus? Dann schreibe ich Dir die Funktion.
Antwort 7 von K-D
Dieser Code ist macht das, was Du wolltest.
Wenn Du mit nem Tag beginnst, der am Wochenende liegt, haut es am Anfang nicht ganz hin. Da hatte ich jetzt keinen Bock drauf. :)
Private Sub AddDate()
Dim d As Date
Dim i As Integer
d = Cells(3, 1).Value
For i = 2 To 256
If Weekday(d) = vbFriday Then
d = DateAdd("d", 3, d)
Else
d = DateAdd("d", 1, d)
End If
Cells(3, i).Value = d
Next i
End Sub
Ich hoffe, Du kommst damit klar.
Wenn Du mit nem Tag beginnst, der am Wochenende liegt, haut es am Anfang nicht ganz hin. Da hatte ich jetzt keinen Bock drauf. :)
Private Sub AddDate()
Dim d As Date
Dim i As Integer
d = Cells(3, 1).Value
For i = 2 To 256
If Weekday(d) = vbFriday Then
d = DateAdd("d", 3, d)
Else
d = DateAdd("d", 1, d)
End If
Cells(3, i).Value = d
Next i
End Sub
Ich hoffe, Du kommst damit klar.
Antwort 8 von nighty
hi all :)
ein aelteres modul schnell umgeschrieben
zur zeit ist a1 die startposition wo das gewuenschte jahr 2000 bis 2040 auswaehlbar waere
gruss nighty
Sub jahresdaten()
Columns("A:AF").ColumnWidth = 18
Dim da(3, 12)
Dim tag$(39), tag1$(7)
da(0, 1) = 31
da(0, 2) = 29
da(0, 3) = 31
da(0, 4) = 30
da(0, 5) = 31
da(0, 6) = 30
da(0, 7) = 31
da(0, 8) = 31
da(0, 9) = 30
da(0, 10) = 31
da(0, 11) = 30
da(0, 12) = 31
da(1, 1) = 31
da(1, 2) = 28
da(1, 3) = 31
da(1, 4) = 30
da(1, 5) = 31
da(1, 6) = 30
da(1, 7) = 31
da(1, 8) = 31
da(1, 9) = 30
da(1, 10) = 31
da(1, 11) = 30
da(1, 12) = 31
da(2, 1) = 31
da(2, 2) = 28
da(2, 3) = 31
da(2, 4) = 30
da(2, 5) = 31
da(2, 6) = 30
da(2, 7) = 31
da(2, 8) = 31
da(2, 9) = 30
da(2, 10) = 31
da(2, 11) = 30
da(2, 12) = 31
da(3, 1) = 31
da(3, 2) = 28
da(3, 3) = 31
da(3, 4) = 30
da(3, 5) = 31
da(3, 6) = 30
da(3, 7) = 31
da(3, 8) = 31
da(3, 9) = 30
da(3, 10) = 31
da(3, 11) = 30
da(3, 12) = 31
tag1$(1) = "Montag"
tag1$(2) = "Dienstag"
tag1$(3) = "Mittwoch"
tag1$(4) = "Donnerstag"
tag1$(5) = "Freitag"
tag1$(6) = "Samstag"
tag1$(7) = "Sonntag"
tag$(0) = "Samstag"
tag$(1) = "Montag"
tag$(2) = "Dienstag"
tag$(3) = "Mittwoch"
tag$(4) = "Donnerstag"
tag$(5) = "Samstag"
tag$(6) = "Sonntag"
tag$(7) = "Montag"
tag$(8) = "Dienstag"
tag$(9) = "Donnerstag"
tag$(10) = "Freitag"
tag$(11) = "Samstag"
tag$(12) = "Sonntag"
tag$(13) = "Dienstag"
tag$(14) = "Mittwoch"
tag$(15) = "Donnerstag"
tag$(16) = "Freitag"
tag$(17) = "Sonntag"
tag$(18) = "Montag"
tag$(19) = "Dienstag"
tag$(20) = "Mittwoch"
tag$(21) = "Freitag"
tag$(22) = "Samstag"
tag$(23) = "Sonntag"
tag$(24) = "Montag"
tag$(25) = "Mittwoch"
tag$(26) = "Donnerstag"
tag$(27) = "Freitag"
tag$(28) = "Samstag"
tag$(29) = "Montag"
tag$(30) = "Dienstag"
tag$(31) = "Mittwoch"
tag$(32) = "Donnerstag"
tag$(33) = "Samstag"
tag$(34) = "Sonntag"
tag$(35) = "Montag"
tag$(36) = "Dienstag"
tag$(37) = "Donnerstag"
tag$(38) = "Freitag"
tag$(39) = "Samstag"
j1$ = Date
lzeile = 1
adress$ = ActiveWindow.RangeSelection.Address
adress1 = Len(adress$)
For mo = 1 To adress1
If Mid$(adress, mo, 1) = "$" Then
llp = llp + 1
Else
If llp = 1 Then
spalte$ = spalte$ + Mid$(adress, mo, 1)
End If
If llp = 2 Then
zeile$ = zeile$ + Mid$(adress, mo, 1)
zeile1 = Val(zeile$)
End If
End If
Next mo
If zeile1 = 1 And Range(spalte$ & zeile1) = "" Then zeile1 = zeile1 + 1
zeile1 = zeile1 - 1
Rem a1 anfangsposition
jj$ = Range("A1")
j1 = Range("A1")
If j1 < 2040 And j1 > 1999 Then
j2 = j1 - 2000
j3 = 1
Do
If j2 < 4 Then
Exit Do
Else
j2 = j2 - 4
j3 = j3 + 1
j4 = j4 + 4
End If
Loop
If Range(spalte$ & 1) = "" Then zeile1 = zeile1 + 1
jk3$ = "0"
tz = 1
j4 = j4 + j2
For u = 1 To 7
If tag$(j4) = tag1$(u) Then tz1 = u - 1
Next u
For t = 1 To 12
For t1 = 1 To da(j2, t)
If tz1 = 8 Then tz1 = 1
tt1$ = Str$(t1)
jk1 = Len(tt1$)
If Mid$(tt1$, 1, 1) = " " And jk1 = 2 Then tt1$ = jk3 + Mid$(tt1$, 2, 1)
If Mid$(tt1$, 1, 1) = " " And jk1 = 3 Then tt1$ = Mid$(tt1$, 2, 2)
tt2$ = Str$(t)
jk2 = Len(tt2$)
If Mid$(tt2$, 1, 1) = " " And jk2 = 2 Then tt2$ = jk3 + Mid$(tt2$, 2, 1)
If Mid$(tt2$, 1, 1) = " " And jk2 = 3 Then tt2$ = Mid$(tt2$, 2, 2)
With Worksheets("Tabelle1")
spalte1 = spalte1 + 1
If spalte1 < 257 And dr = 0 Then
Sheets(1).Cells(lzeile, spalte1) = tt1$ + "." + tt2$ + "." + jj$ + " " + tag1$(tz1)
Else
If spalte1 = 257 Then
dr = 1
spalte1 = 1
End If
Sheets(2).Cells(lzeile, spalte1) = tt1$ + "." + tt2$ + "." + jj$ + " " + tag1$(tz1)
End If
tz1 = tz1 + 1
tt4$ = tt2$
End With
Next t1
Next t
End If
End Sub
ein aelteres modul schnell umgeschrieben
zur zeit ist a1 die startposition wo das gewuenschte jahr 2000 bis 2040 auswaehlbar waere
gruss nighty
Sub jahresdaten()
Columns("A:AF").ColumnWidth = 18
Dim da(3, 12)
Dim tag$(39), tag1$(7)
da(0, 1) = 31
da(0, 2) = 29
da(0, 3) = 31
da(0, 4) = 30
da(0, 5) = 31
da(0, 6) = 30
da(0, 7) = 31
da(0, 8) = 31
da(0, 9) = 30
da(0, 10) = 31
da(0, 11) = 30
da(0, 12) = 31
da(1, 1) = 31
da(1, 2) = 28
da(1, 3) = 31
da(1, 4) = 30
da(1, 5) = 31
da(1, 6) = 30
da(1, 7) = 31
da(1, 8) = 31
da(1, 9) = 30
da(1, 10) = 31
da(1, 11) = 30
da(1, 12) = 31
da(2, 1) = 31
da(2, 2) = 28
da(2, 3) = 31
da(2, 4) = 30
da(2, 5) = 31
da(2, 6) = 30
da(2, 7) = 31
da(2, 8) = 31
da(2, 9) = 30
da(2, 10) = 31
da(2, 11) = 30
da(2, 12) = 31
da(3, 1) = 31
da(3, 2) = 28
da(3, 3) = 31
da(3, 4) = 30
da(3, 5) = 31
da(3, 6) = 30
da(3, 7) = 31
da(3, 8) = 31
da(3, 9) = 30
da(3, 10) = 31
da(3, 11) = 30
da(3, 12) = 31
tag1$(1) = "Montag"
tag1$(2) = "Dienstag"
tag1$(3) = "Mittwoch"
tag1$(4) = "Donnerstag"
tag1$(5) = "Freitag"
tag1$(6) = "Samstag"
tag1$(7) = "Sonntag"
tag$(0) = "Samstag"
tag$(1) = "Montag"
tag$(2) = "Dienstag"
tag$(3) = "Mittwoch"
tag$(4) = "Donnerstag"
tag$(5) = "Samstag"
tag$(6) = "Sonntag"
tag$(7) = "Montag"
tag$(8) = "Dienstag"
tag$(9) = "Donnerstag"
tag$(10) = "Freitag"
tag$(11) = "Samstag"
tag$(12) = "Sonntag"
tag$(13) = "Dienstag"
tag$(14) = "Mittwoch"
tag$(15) = "Donnerstag"
tag$(16) = "Freitag"
tag$(17) = "Sonntag"
tag$(18) = "Montag"
tag$(19) = "Dienstag"
tag$(20) = "Mittwoch"
tag$(21) = "Freitag"
tag$(22) = "Samstag"
tag$(23) = "Sonntag"
tag$(24) = "Montag"
tag$(25) = "Mittwoch"
tag$(26) = "Donnerstag"
tag$(27) = "Freitag"
tag$(28) = "Samstag"
tag$(29) = "Montag"
tag$(30) = "Dienstag"
tag$(31) = "Mittwoch"
tag$(32) = "Donnerstag"
tag$(33) = "Samstag"
tag$(34) = "Sonntag"
tag$(35) = "Montag"
tag$(36) = "Dienstag"
tag$(37) = "Donnerstag"
tag$(38) = "Freitag"
tag$(39) = "Samstag"
j1$ = Date
lzeile = 1
adress$ = ActiveWindow.RangeSelection.Address
adress1 = Len(adress$)
For mo = 1 To adress1
If Mid$(adress, mo, 1) = "$" Then
llp = llp + 1
Else
If llp = 1 Then
spalte$ = spalte$ + Mid$(adress, mo, 1)
End If
If llp = 2 Then
zeile$ = zeile$ + Mid$(adress, mo, 1)
zeile1 = Val(zeile$)
End If
End If
Next mo
If zeile1 = 1 And Range(spalte$ & zeile1) = "" Then zeile1 = zeile1 + 1
zeile1 = zeile1 - 1
Rem a1 anfangsposition
jj$ = Range("A1")
j1 = Range("A1")
If j1 < 2040 And j1 > 1999 Then
j2 = j1 - 2000
j3 = 1
Do
If j2 < 4 Then
Exit Do
Else
j2 = j2 - 4
j3 = j3 + 1
j4 = j4 + 4
End If
Loop
If Range(spalte$ & 1) = "" Then zeile1 = zeile1 + 1
jk3$ = "0"
tz = 1
j4 = j4 + j2
For u = 1 To 7
If tag$(j4) = tag1$(u) Then tz1 = u - 1
Next u
For t = 1 To 12
For t1 = 1 To da(j2, t)
If tz1 = 8 Then tz1 = 1
tt1$ = Str$(t1)
jk1 = Len(tt1$)
If Mid$(tt1$, 1, 1) = " " And jk1 = 2 Then tt1$ = jk3 + Mid$(tt1$, 2, 1)
If Mid$(tt1$, 1, 1) = " " And jk1 = 3 Then tt1$ = Mid$(tt1$, 2, 2)
tt2$ = Str$(t)
jk2 = Len(tt2$)
If Mid$(tt2$, 1, 1) = " " And jk2 = 2 Then tt2$ = jk3 + Mid$(tt2$, 2, 1)
If Mid$(tt2$, 1, 1) = " " And jk2 = 3 Then tt2$ = Mid$(tt2$, 2, 2)
With Worksheets("Tabelle1")
spalte1 = spalte1 + 1
If spalte1 < 257 And dr = 0 Then
Sheets(1).Cells(lzeile, spalte1) = tt1$ + "." + tt2$ + "." + jj$ + " " + tag1$(tz1)
Else
If spalte1 = 257 Then
dr = 1
spalte1 = 1
End If
Sheets(2).Cells(lzeile, spalte1) = tt1$ + "." + tt2$ + "." + jj$ + " " + tag1$(tz1)
End If
tz1 = tz1 + 1
tt4$ = tt2$
End With
Next t1
Next t
End If
End Sub
Antwort 9 von nighty
hi alle :)
es muessen immer zwei tabellen vorhanden sein da das jahr sich aud der zweiten tabelle ja fortsetzt
gruss nighty
es muessen immer zwei tabellen vorhanden sein da das jahr sich aud der zweiten tabelle ja fortsetzt
gruss nighty
Antwort 10 von nighty
hi all :)
bei bedaqrf optimiere ich es noch und auch mit ausschluss des wochenendes
gruss nighty
bei bedaqrf optimiere ich es noch und auch mit ausschluss des wochenendes
gruss nighty
Antwort 11 von mkreysern
Vielen, vielen Dank für eure Hilfe! Immer wieder klasse, diese Hilfsbereitschaft hier zu erfahren :-).
Mit den Formeln und VBA konnte ich nichts mit anfangen. Hab etwas recherchiert, bin dort aber auch nicht weitergekommen. Aber das ist egal! Die Wochenenden kann man ganz leicht herauslöschen und diese Liste ist auch nicht so wichtig...
Also noch mal ganz großen Dank an euch, nighty und K-D!!!
Mit den Formeln und VBA konnte ich nichts mit anfangen. Hab etwas recherchiert, bin dort aber auch nicht weitergekommen. Aber das ist egal! Die Wochenenden kann man ganz leicht herauslöschen und diese Liste ist auch nicht so wichtig...
Also noch mal ganz großen Dank an euch, nighty und K-D!!!
Antwort 12 von K-D
Is gar nich schwer.
In dem Tabellenblatt trägst Du in A3 Dein Startdatum ein.
In Excel drückst Du: Alt + F11 dann hast Du ein VBA Fenster.
links wählst Du die Tabelle mit Doppelklick aus, in der die Datumsreihe stehen soll. Dann den Code aus Antwort 7 (ab dem Wort private und bis end sub) in das rechte Fenster kopieren.
Dann in der Symbolleiste auf die Play-Taste klicken.
Fertig. Nun sind im Tabellenblatt die Daten (ohne Wochenenden) drin.
In dem Tabellenblatt trägst Du in A3 Dein Startdatum ein.
In Excel drückst Du: Alt + F11 dann hast Du ein VBA Fenster.
links wählst Du die Tabelle mit Doppelklick aus, in der die Datumsreihe stehen soll. Dann den Code aus Antwort 7 (ab dem Wort private und bis end sub) in das rechte Fenster kopieren.
Dann in der Symbolleiste auf die Play-Taste klicken.
Fertig. Nun sind im Tabellenblatt die Daten (ohne Wochenenden) drin.
Antwort 13 von mkreysern
Jetzt stehe ich vor einem neuen Problem: Wie soll ich meine Danksagungen steigern :D ???? Total krass viel Dank!!! Hat alles geklappt und war ja auch gar nicht so schwer (gesetzt man hat die Formel ;-) )
Super!!!
Super!!!

