Lorsque vous démarrez un nouveau classeur, il est très courant de nommer chaque feuille de calcul après un jour différent du mois. Si vous faites cela un peu, vous savez qu’il peut être fastidieux de renommer chaque feuille de calcul, individuellement, exactement ce dont vous avez besoin.

La macro suivante a été développée pour vous aider dans ces situations. Il vérifie les noms des feuilles de calcul dans votre classeur, en les renommant en jours du mois s’ils commencent par les lettres «Feuille». S’il n’y a pas assez de feuilles dans le classeur, il ajoute des feuilles, si nécessaire, pour chaque jour du mois.

Sub DoDays()

Dim J As Integer     Dim K As Integer     Dim sDay As String     Dim sTemp As String     Dim iTarget As Integer     Dim dBasis As Date

iTarget = 13     While (iTarget < 1) Or (iTarget > 12)

iTarget = Val(InputBox("Numeric month?"))

If iTarget = 0 Then Exit Sub     Wend

Application.ScreenUpdating = False     sTemp = Str(iTarget) & "/1/" & Year(Now())

dBasis = CDate(sTemp)

For J = 1 To 31         sDay = Format((dBasis + J - 1), "dddd mm-dd-yyyy")

If Month(dBasis + J - 1) = iTarget Then

If J <= Sheets.Count Then                 If Left(Sheets(J).Name, 5) = "Sheet" Then                     Sheets(J).Name = sDay                 Else                     Sheets.Add.Move after:=Sheets(Sheets.Count)

ActiveSheet.Name = sDay                 End If             Else                 Sheets.Add.Move after:=Sheets(Sheets.Count)

ActiveSheet.Name = sDay             End If         End If     Next J

For J = 1 To (Sheets.Count - 1)

For K = J + 1 To Sheets.Count             If Right(Sheets(J).Name, 10) > _               Right(Sheets(K).Name, 10) Then                 Sheets(K).Move Before:=Sheets(J)

End If         Next K     Next J

Sheets(1).Activate     Application.ScreenUpdating = True End Sub

Notez que la macro suppose que le mois pour lequel vous voulez des feuilles de calcul est dans l’année en cours. Si ce n’est pas le cas, vous devrez apporter un petit changement. Notez la ligne suivante près du début de la macro:

sTemp = Str(iTarget) & "/1/" & Year(Now())

Disons que vous voulez réellement que le mois soit en 2015 pour une raison quelconque. Changez simplement la ligne comme suit:

sTemp = Str(iTarget) & "/1/2015"

La macro définit chaque nom d’onglet égal au jour de la semaine suivi de la date réelle, comme dans «Mercredi 28/03/2020». Si vous voulez changer la façon dont les onglets sont nommés pour chaque jour, changez simplement la façon dont la variable sDay est construite dans la macro.

La dernière étape de la macro consiste à placer les feuilles de calcul dans le bon ordre, en fonction des jours du mois. Le résultat est que si vous avez d’autres feuilles de calcul dans le classeur (en d’autres termes, vous en aviez certaines qui ne commençaient pas par les lettres «Feuille», ces feuilles de calcul se terminent à la fin du classeur, après les feuilles de chaque jour.

_Remarque: _

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 contenant des informations utiles.

link: / 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 (11523) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour les plus anciens interface de menu d’Excel ici:

link: / excel-Sheets_for_Days [Sheets for Days].