Clever-Excel-Forum

Normale Version: Neues Datenblatt aus Vorlage
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Halli hallo,

Expertenrat ist gefragt.
Ich habe eine Beispieldatei, in der ich eine Vorlage erstellt habe. Aus dieser Vorlage soll sich jeden Tag automatisch ein neues Arbeitsblatt mit der Grundstruktur der Vorlage generieren. Dazu habe ich ein Makro geschrieben. Leider funktioniert das ganze jedoch nicht so, wie ich mir das vorstelle.
Kann mir bitte jemand weiterhelfen?


[attachment=27827]
Besten Dank 
Matze
Hallo Matze

ich denke so muss der Code jetzt funktionieren. Bitte testen ....

mfg Gast 123

Code:
Sub Datenblatt_Heute()
Dim DatumHeute As String
Dim Sht As Worksheet
'NeuesDatenblatt Makro

' Neues Datenblatt mit heutigem Datum einfügen
   On Error Resume Next
   DatumHeute = CStr(Sheets("Vorlage").Range("E1"))
   Set Sht = Worksheets(DatumHeute)

   If Not Sht Is Nothing Then
      MsgBox DatumHeute & "  dieses Blatt existiert bereits": Exit Sub
   End If

   Application.ScreenUpdating = False
   Sheets("Vorlage").Copy After:=Sheets("Vorlage")
   ' Name des neuen Datenblattes in in das heutige Datum ändern
   Sheets("Vorlage (2)").Name = DatumHeute
End Sub
Hallo gast 123,

vielen Dank für deine Antwort. Ich habe den Code kopiert und in meine Datei eingefügt. Leider funktioniert das aber nicht so wie gewünscht.
Mein Ziel ist, dass Excel sofort beim Öffnen der Datei ein neues Arbeitsblatt aus der Vorlage generiert. Das passiert aber nicht.
Wenn ich den Code im einzelnen mit F8 durchspiele, macht Excel dass im letzten Arbeitsschritt. Aber nicht von allein, ohne das Makro geöffnet zu haben.

Siehe selbst.
[attachment=27829]
Woran kann das liegen?

MfG
Matze
Hallo Matze

Sorry, mein Fehler, nicht richtig gelesen.  Korrigieren wir es.  Lade den unteren Code in das Blatt "This Workbook" 
Gestarte wird das Makro dann über die Auto-Open Funktion von Excel. Die Msgbox habe ich heir weggelassen.

mfg Gast 123

Code:
Private Sub Workbook_Open()
Dim DatumHeute As String
Dim Sht As Worksheet
  ' Neues Datenblatt mit heutigem Datum einfügen
   On Error Resume Next
   DatumHeute = CStr(Sheets("Vorlage").Range("E1"))
   Set Sht = Worksheets(DatumHeute)

   'stiller Aussprung wenn Sheet bereits existiert!
   If Not Sht Is Nothing Then Exit Sub

   Application.ScreenUpdating = False
   Sheets("Vorlage").Copy After:=Sheets("Vorlage")
   ' Name des neuen Datenblattes in in das heutige Datum ändern
   Sheets("Vorlage (2)").Name = DatumHeute
End Sub
Hallo Gast123,

richtig stark. Du hast mir eine Menge Zeit erspart.

Besten Dank

MfG
Matze
Hallo Gast123,

eine Frage ist im Nachgang nochmal aufgekommen.
Wenn ich die Arbeitsmappe über einen großen Zeitraum hinweg nutze, können da schon sehr viele Arbeitsblätter zusammenkommen.

Weißt du, wie ich den Code umschreiben muss (oder auch gern separat), damit Excel bspw. alle 3 Monate oder alle halbe Jahr die Arbeitsblätter aus der aktuellen Arbeitsmappe entfernt und in einer Art Datenarchiv abspeichert?

MfG
Matze
Hallo Matze

kann man je nach Umfang auch jeden Monat oder alle zwei Monate machen. Da bin ich aber eher Faul!!
Die aktuelle Datei in den Namen umbenennen, unter dem sie im Archiv bleiben soll und ins Archiv schieben. Neu öffnen.
Das Blatt "Vorlage" kopieren und in eine neue Datei verschieben.  Diese dann als neue Vorlage speichern.  Fertig

mfg Gast 123
HalloGast123,

kein Problem.
Leider habe ich erneut ein Problem.
Und zwar habe ich nun 2 Vorlagen, und ich möchte, dass Excel für jede Vorlage ein Datenblatt mit EinkaufDatumHeute und VerkaufDatumHeute erstellt.
Ich habe schon ein wenig versucht, doch leider ohne Erfolg.

Kannst du mir den Code dementsprechend umschreiben, oder muss ich die Arbeitsblätter in separaten Dateien abspeichern?

[attachment=27988]

MfG
Matze
Hallo

kein Problem, das geht auch mit zwei Vorlagen.  Im Modul "ThisWorbook" sind ganz oben zwei Const Anweisungen.
Da kannst du den Text wie das neue Blatt heissen soll selbst festlegen. Zur Zeit: "Einkauf" und "Verkauf" mit Datum.

mfg Gast 123
Hallo Gast123,

das ist ziemlich genial.

Vielen Dank.