Ryan hat ein Excel-Arbeitsblatt, das er jeden Tag für jede der drei Schichten verwenden muss. Er macht eine Kopie dieses Arbeitsblatts für jede Schicht, jeden Tag, immer und immer wieder. Ryan scheint es hilfreich zu sein, wenn er ein Makro hätte, das das Master-Arbeitsblatt dreimal pro Tag im Monat kopieren könnte und die Arbeitsblätter „1. Februar Schicht 1“, „1. Februar Schicht 2“, |||| nennt | usw. Er kann kein Makro finden, um so etwas zu tun, und fragte sich, ob jemand helfen könnte.

Das Zusammenstellen als Makro dauert eigentlich nicht so lange. Der Trick besteht darin, sich daran zu erinnern, dass das Makro Ihr Master-Arbeitsblatt für jeden Tag im gewünschten Monat dreimal kopieren muss. Dies bedeutet auch, dass das Makro bestimmen muss, wie viele Tage der Monat hat. Sobald dies bekannt ist, können Sie zwei verschachtelte For …​ Next-Schleifen einrichten, um den eigentlichen Erstellungsprozess abzuwickeln.

Sub CopyShiftSheets()

Dim iDay As Integer     Dim iShift As Integer     Dim iNumDays As Integer     Dim wMaster As Worksheet     Dim sTemp As String

iMonth = 2     ' Set to month desired, 1-12     iCurYear = Year(Now())

iNumDays = Day(DateSerial(iCurYear, iMonth + 1, 0))



Set wMaster = Worksheets("Master") 'change to name of master

For iDay = 1 To iNumDays         For iShift = 1 To 3             sTemp = MonthName(iMonth) & " " & iDay & " Shift " & iShift             wMaster.Copy After:=Sheets(Sheets.Count)

ActiveSheet.Name = sTemp         Next iShift     Next iDay End Sub

Beachten Sie, dass der gewünschten Monat (in diesem Fall Februar) der Variablen iMonth zugewiesen ist und dass iCurYear auf das aktuelle Jahr festgelegt ist. Die Anzahl der Tage in diesem Monat und Jahr wird dann berechnet und in iNumDays gespeichert.

Die beiden For …​ Next-Schleifen durchlaufen jeden Tag und jede Schicht, kopieren das Master-Arbeitsblatt und benennen es um. Wenn Sie fertig sind, enthält Ihre Arbeitsmappe alle gewünschten Arbeitsblätter mit dem richtigen Namen. Sie sollten jedoch darauf achten, dass Sie das Makro nicht zweimal im selben Monat ausführen.

In diesem Fall wird ein Fehler generiert, da die Arbeitsmappe Arbeitsblätter mit doppeltem Namen enthält.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

link: / excelribbon-ExcelTipsMacros [Klicken Sie hier, um diese spezielle Seite in einem neuen Browser-Tab zu öffnen].

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (13730) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.