Ryan tiene una hoja de cálculo de Excel que necesita usar para cada uno de los 3 turnos todos los días. Hace una copia de esta hoja de trabajo para cada turno, cada día, una y otra vez. Ryan piensa que sería útil si tuviera una macro que pudiera copiar la hoja de trabajo maestra 3 veces para cada día del mes, nombrando las hojas de trabajo «1 de febrero, turno 1», «1 de febrero, turno 2»,

etc. No puede encontrar una macro para hacer algo como esto y se preguntaba si alguien podría ayudarlo.

En realidad, esto no toma tanto tiempo para armarlo como una macro. El truco consiste en recordar que la macro debe copiar su hoja de trabajo maestra 3 veces por cada día del mes deseado. Esto también implica que la macro necesita determinar cuántos días hay en el mes. Una vez que se sabe esto, puede configurar dos bucles For …​ Next anidados para manejar el proceso de creación real.

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

Tenga en cuenta que el mes deseado (en este caso febrero) se asigna a la variable iMonth y que iCurYear se establece en el año actual. El número de días de ese mes y año se calcula y almacena en iNumDays.

Los dos ciclos For …​ Next pasan cada día y cada turno, copiando la hoja de trabajo maestra y renombrándola. Cuando haya terminado, su libro de trabajo tendrá todas las hojas de trabajo deseadas, nombradas correctamente. Sin embargo, querrá tener cuidado de no ejecutar la macro dos veces durante el mismo mes.

Si lo hace, se genera un error porque tendrá hojas de trabajo con nombres duplicados en el libro de trabajo.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (13730) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.