Hallo zusammen
Ich brauche mal wieder euere wert volle Hilfe
Folgendes ich habe mir ein Code gebastelt so gut wie es ging.
Ziel ist das man die Tabelle "Stundenabrechnung" als Vorlage kopiert und in ein neue Arbeitsmappe einfügt und die Tabellenblätter beschriftet nach Datum
Nun zum Problem dies Code würde eigentlich funktionieren, jedoch werden die Togglebutton, und Formeln nicht mit Kopiert.
Wie müsste ich diesen Code ändern?
Könntet Ihr mal Bitte diesen Code überprüfen.
Besten Dank im Voraus
Dani
Private Sub CommandButton1_Click()
Dim srcWorkbook As Workbook
Dim newWorkbook As Workbook
Dim srcSheet As Worksheet
Dim newSheet As Worksheet
Dim startDate As Date
Dim endDate As Date
Dim currentDate As Date
Dim dateSuffix As String
Dim startDateInput As String
On Error Resume Next
' Eingabedaten für das Startdatum abfragen
startDateInput = InputBox("Geben Sie das Startdatum (z.B. 01.01.2023) ein:", "Datumseingabe")
endDate = InputBox("Geben Sie das Enddatum (z.B. 31.01.2023) ein:", "Datumseingabe")
' Prüfen, ob das Eingabefenster abgebrochen wurde
If startDateInput = "" Then
Exit Sub
End If
' Datumswert aus der Eingabe konvertieren
startDate = DateValue(startDateInput)
' Prüfen, ob die Konvertierung erfolgreich war
If Err.Number > 0 Then
MsgBox "Ungültiges Startdatum eingegeben.", vbExclamation
Exit Sub
End If
' Ursprüngliche Arbeitsmappe und Tabellenblatt
Set srcWorkbook = ThisWorkbook
Set srcSheet = srcWorkbook.Worksheets("Stundenabrechnung")
' Neue Arbeitsmappe erstellen
Set newWorkbook = Workbooks.Add
Application.DisplayAlerts = True
' Datumssuffix festlegen
dateSuffix = Format(Date, "yyyy-mm-dd")
' Schleife durch alle Tage im angegebenen Zeitraum
currentDate = startDate
Do While currentDate = endDate
' Neues Tabellenblatt erstellen und umbenennen
Set newSheet = newWorkbook.Sheets.Add(After:=newWorkbook.Sheets(newWorkbook.Sheets.Count))
newSheet.Name = Format(currentDate, "dd-mm-yyyy")
' Daten von der Vorlage kopieren
srcSheet.Cells.Copy newSheet.Cells
' Datum in der Tabelle aktualisieren
With newSheet.Range("g4:i5")
.Value = Format(currentDate, "ddd.dd.mm.yyyy")
End With
' Zum nächsten Tag wechseln
currentDate = currentDate + 1
Loop
' Meldung anzeigen
MsgBox "Die Tabellenblätter wurden erfolgreich erstellt und in einer neuen Arbeitsmappe gespeichert."
Application.DisplayAlerts = False
On Error GoTo 0
End Sub