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

Forumthread: Tabellenblätter mit Datum als Name erzeugen

Tabellenblätter mit Datum als Name erzeugen
26.11.2018 15:15:13
stormlamp
Hallo,
jeden Monat benötige ich eine Datei, in der soviele Tabellenblätter vorhanden sind, wie es Tage in diesem Monat gibt.
Die Basisdatei hat nur ein Tabellenblatt mit dem Namen "Vorlage". Wenn ich ein Makro starte, soll der 1. Tag des Monats abgefragt werden, wo ich bspw. "1.12.2018" eingebe. Dann soll das Makro hintereinander 31 Tabellenblätter als Kopie des Tabellenblatts Vorlage richtig sortiert hintereinander erzeugen mit den Namen "1.12.2018", "2.12.2018",...
Hat jemand dazu eine Idee?
Viele Grüße
Hans
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter mit Datum als Name erzeugen
26.11.2018 15:55:48
stormlamp
Hallo,
ich habe mir ein paar Codes zusammengestrickt, die natürlich nicht funktionieren, weil ich VBA nicht kann. Es soll nur den gewünschten Ablauf skizzieren.
Es wär prima, wenn jemand dann eine Lauffähiger Version daraus erstellen könnte
Sub NeuesTabBlatt()
Sheets("Vorlage").Select
Dim NewName As String
Dim MaxName As String ' Variable für die maximale Tageszahl des angegebenen Monats definieren
NewName = InputBox("Geben Sie den ersten Monatstag ein bspw. 1.11.2018")
' letzten Tag des Monats ermitteln:MaxName = 32 - Tag(NewName - Tag(NewName) + 32)
'Start Schleife von 1 bis MaxName
ActiveSheet.Copy After:=ActiveSheet
ActiveSheet.Name = MaxName
' MaxName = MaxName + 1
' Ende der Schleife
End Sub
Viele Grüße
Hans
Anzeige
AW: Tabellenblätter mit Datum als Name erzeugen
26.11.2018 16:06:44
Michael
Hallo stormlamp, So?


Sub Erzeuge_Sheets()
Application.Cursor = xlWait
On Error GoTo Fehler
Dim strDatum As String
Dim dStart, dEnde As Date
Dim iD As Date
strDatum = InputBox("Bitte das Beginndatum eingeben!", "Datum eingeben ...")
dStart = CDate(strDatum)
dEnde = DateAdd("m", 1, dStart) - 1
For iD = dStart To dEnde
ActiveWorkbook.Sheets.Add After:=Sheets(Sheets.Count)
ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count).Name = Format(iD, "DD.MM.YYYY")
Next iD
GoTo isEnde
Fehler:
MsgBox "Fehler: " & Err.Description, vbCritical + vbOKOnly, "Fehler ..."
Err.Clear
isEnde:
Application.Cursor = xlDefault
End Sub


Anzeige
AW: Tabellenblätter mit Datum als Name erzeugen
26.11.2018 16:14:36
Werner
Hallo,
hier meine Version auch noch:
Option Explicit
Public Sub Neue_Blätter()
Dim daDatum As Date, i As Long, Z As Long, loBlätter As Long
Application.ScreenUpdating = False
daDatum = InputBox("Bitte Datum eingeben!", "Datum", Format(Date, "dd.mm.yyyy"))
If IsDate(daDatum) Then
i = Left(daDatum, 2)
loBlätter = DateSerial(Year(daDatum), Month(daDatum) + 1, 0) - daDatum + 1
For Z = 1 To loBlätter
Worksheets("Vorlage").Copy After:=Worksheets(Sheets.Count)
ActiveSheet.Name = DateSerial(Year(daDatum), Month(daDatum), Day(i + 1))
i = i + 1
Next Z
End If
End Sub
Gruß Werner
Anzeige
AW: Tabellenblätter mit Datum als Name erzeugen
26.11.2018 16:19:35
Michael
Sorry, wer lesen kann ..., gefragt war die Kopie von Tabelle Vorlage, also Werner seine Version nehmen
AW: Tabellenblätter mit Datum als Name erzeugen
26.11.2018 16:43:26
Piet
Hallo
schöne Version von Werner. Man kann sie zum Schluss noch ergaenzen durch:
Worksheets(1).Delete 'Vorlage löschen
'Dialog: unter neuem Namen speichern
Application.Dialogs(xlDialogSaveAs).Show
mfg Piet
Anzeige
Danke für die Blumen.... o.w.T.
26.11.2018 16:56:59
Werner
AW: Tabellenblätter mit Datum als Name erzeugen
26.11.2018 17:37:57
stormlamp
Hallo,
doch noch eine Rückfrage:
Wie vermeide ich bei der Zeile
Worksheets("Vorlage").Delete
die Nachfrage "Das Tabellenblatt könnte Daten enthalten, bitte Löschen bestätigen"?
Das Blatt soll ohne Rückfrage gelöscht werden.
Gruß
Hans
AW: Tabellenblätter mit Datum als Name erzeugen
26.11.2018 17:57:31
Werner
Hallo,
Application.DisplayAlerts = False
Worksheets("Vorlage").Delete
Application.DisplayAlerts = True
Gruß Werner
Anzeige
AW: Tabellenblätter mit Datum als Name erzeugen
26.11.2018 17:58:29
stormlamp
Danke sehr
Bitte sehr. o.w.T.
26.11.2018 17:59:45
Werner
und um einer Rückfrage vorzubeugen...
26.11.2018 16:41:22
Werner
Hallo,
...da du ja vermutlich eine Schaltfläche auf deinem Vorlagenblatt hast, die dann aber in den einzelnen "Tagesblättern" vermutlich nicht vorhanden sein soll:
Option Explicit
Public Sub Neue_Blätter()
Dim daDatum As Date, i As Long, Z As Long, loBlätter As Long
Dim sh As Shape
Application.ScreenUpdating = False
daDatum = InputBox("Bitte Datum eingeben!", "Datum", Format(Date, "dd.mm.yyyy"))
If IsDate(daDatum) Then
i = Left(daDatum, 2)
loBlätter = DateSerial(Year(daDatum), Month(daDatum) + 1, 0) - daDatum + 1
For Z = 1 To loBlätter
Worksheets("Vorlage").Copy After:=Worksheets(Sheets.Count)
ActiveSheet.Name = DateSerial(Year(daDatum), Month(daDatum), Day(i + 1))
For Each sh In ActiveSheet.Shapes
sh.Delete
Next sh
i = i + 1
Next Z
End If
End Sub
Gruß Werner
Anzeige
Vielen Dank!!!
26.11.2018 17:16:16
stormlamp
Hallo Zusammen,
ganz herzlichen Dank für die Super-Vorschläge.
Die Scripte laufen perfekt und schnell.
Damit erspart Ihr mir richtig viel Arbeit
Viele Grüße
Hans
Gerne u. Danke für die Rückmeldung. o.w.T.
26.11.2018 17:34:48
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige