Excel VBA Tabelleblätter kopieren und Umbenennnen
Hallo,
ich habe ein fertiges Tabellenblatt welches ich jetzt für jeden Tag im Jahr kopieren müsste.
Nun dachte ich das man mit VBA vielleicht die Blätter mit einmal anlegen könnte.
Das heist also das von mir angelegte Tabellenblatt soll immer wieder kopiert werden
und dann zum Beispiel gleich den richtigen Namen erhalten.
Zum Beispiel: Mo für Montag + Datum 02.01.17 ALSO.... Mo 02.01.17
Ist sowas möglich? Normales kopieren bekomm ich mit VBA hin aber das eben nicht.
MfG
Florian86
ich habe ein fertiges Tabellenblatt welches ich jetzt für jeden Tag im Jahr kopieren müsste.
Nun dachte ich das man mit VBA vielleicht die Blätter mit einmal anlegen könnte.
Das heist also das von mir angelegte Tabellenblatt soll immer wieder kopiert werden
und dann zum Beispiel gleich den richtigen Namen erhalten.
Zum Beispiel: Mo für Montag + Datum 02.01.17 ALSO.... Mo 02.01.17
Ist sowas möglich? Normales kopieren bekomm ich mit VBA hin aber das eben nicht.
MfG
Florian86
Please also mark the comments that contributed to the solution of the article
Content-Key: 329289
Url: https://administrator.de/contentid/329289
Printed on: May 4, 2024 at 15:05 o'clock
8 Comments
Latest comment
Moin,
dann brauchst du nur noch eine Schleife und ein paar Datumsbefehle
Gruß Krämer
dann brauchst du nur noch eine Schleife und ein paar Datumsbefehle
for oder aber auch while
date
dateadd
weekday
Gruß Krämer
Hallo,
Hat man dir schon gesagt. Mit einer Schleife (nein, die Rosafarbene).
Und sicher das du als Name wirklich "Mo 02.01.2017" nehmen willst. Das gibt, falls du mal die Blätter sortieren willst ein kleines Chaos - und nix nach Datum...
Gruß,
Peter
Hat man dir schon gesagt. Mit einer Schleife (nein, die Rosafarbene).
DIM Tag as Integer
Tag = 1
For Tag = 1 to 365
REM Hier tut sich nichts
Tag = Tag +1
Next
Und sicher das du als Name wirklich "Mo 02.01.2017" nehmen willst. Das gibt, falls du mal die Blätter sortieren willst ein kleines Chaos - und nix nach Datum...
Gruß,
Peter
Wer auch immer sich solch ein Schema ausgedacht hat X-)
Sub CreateSheets()
Const VORLAGE = "Tabelle1"
Const STARTDATE = "01.01.2017"
ENDDATE = DateAdd("yyyy", 1, STARTDATE)
d = CDate(STARTDATE)
Application.Screenupdating = False
While d < ENDDATE
Sheets(VORLAGE).Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = WeekdayName(Weekday(d, vbMonday), True, vbMonday) & " " & d
d = d + 1
Wend
Application.Screenupdating = True
End Sub
For i = 0 To 365
Nicht jedes Jahr hat 365 bzw bei dir 366 Tage(Schaltjar) :-P