Ryan ha un foglio di lavoro Excel che deve utilizzare per ciascuno dei 3 turni giornalieri. Fa una copia di questo foglio di lavoro per ogni turno, ogni giorno, più e più volte. Ryan sembra che sarebbe utile se avesse una macro in grado di copiare il foglio di lavoro principale 3 volte per ogni giorno in un mese, denominando i fogli di lavoro “1 febbraio 1 turno”, “1 febbraio 1 turno 2”,

ecc. Non riesce a trovare una macro per fare qualcosa di simile e si chiedeva se qualcuno potesse aiutarlo.

Questo in realtà non richiede molto tempo per essere assemblato come macro. Il trucco è ricordare che la macro deve copiare il foglio di lavoro principale 3 volte per ogni giorno nel mese desiderato. Ciò implica anche che la macro deve determinare quanti giorni ci sono nel mese. Una volta noto, è possibile impostare due cicli For …​ Next annidati per gestire il processo di creazione effettivo.

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

Notare che il mese desiderato (in questo caso febbraio) viene assegnato alla variabile iMonth e che iCurYear è impostato sull’anno corrente. Il numero di giorni in quel mese e anno viene quindi calcolato e memorizzato in iNumDays.

I due cicli For …​ Next vengono eseguiti ogni giorno e ogni turno, copiando il foglio di lavoro Master e rinominandolo. Quando hai finito, la tua cartella di lavoro avrà tutti i fogli di lavoro desiderati, denominati correttamente. Tuttavia, ti consigliamo di fare attenzione a non eseguire la macro due volte nello stesso mese.

Se lo fai, viene generato un errore perché avrai fogli di lavoro con nomi duplicati nella cartella di lavoro.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13730) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.