Ryan a une feuille de calcul Excel qu’il doit utiliser pour chacun des 3 quarts de travail chaque jour. Il fait une copie de cette feuille de travail pour chaque quart de travail, chaque jour, encore et encore. Il semble à Ryan qu’il serait utile d’avoir une macro qui pourrait copier la feuille de calcul principale 3 fois pour chaque jour dans un mois, en nommant les feuilles de calcul «1er février Shift 1», «1er février Shift 2»

etc. Il ne trouve pas de macro pour faire quelque chose comme ça et se demande si quelqu’un pourrait l’aider.

En fait, cela ne prend pas si longtemps à assembler en tant que macro. L’astuce consiste à se rappeler que la macro doit copier votre feuille de calcul principale 3 fois pour chaque jour du mois souhaité. Cela implique également que la macro doit déterminer le nombre de jours dans le mois. Une fois que cela est connu, vous pouvez configurer deux boucles For …​ Next imbriquées pour gérer le processus de création réel.

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

Notez que le mois souhaité (dans ce cas février) est attribué à la variable iMonth et que iCurYear est défini sur l’année en cours. Le nombre de jours de ce mois et de cette année est ensuite calculé et stocké dans iNumDays.

Les deux boucles For …​ Next traversent chaque jour et chaque quart de travail, copiant la feuille de calcul principale et la renommant. Lorsque vous avez terminé, votre classeur aura toutes les feuilles de calcul souhaitées, nommées correctement. Vous devrez cependant faire attention à ne pas exécuter la macro deux fois pour le même mois.

Si vous le faites, une erreur est générée car vous aurez des feuilles de calcul nommées en double dans le classeur.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (13730) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.