Anzeige
Archiv - Navigation
1656to1660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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
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
Anzeige
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
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

41 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige