Re,
Merci pour ce retour.
Ci-dessous le détail des procédures pour ceux que cela intéresse.
Cdlt.
Option Explicit
Dim n As Double
Public Sub CreateWorksheet()
Dim ws As Worksheet, wsTemplate As Worksheet
Dim sheetName As String, Message As String
Dim r As Variant
n = WorksheetFunction.IsoWeekNum(DateSerial(Year(Date), 12, 28))
Message = "Saisissez un nombre compris entre 1 et " & n
Do
r = InputBox(Message, Title:="Numéro de semaine ?")
Loop While r < 1 Or r > n And r <> ""
If r <> "" Then
Application.ScreenUpdating = False
sheetName = "S" & Format(r, "00")
On Error Resume Next
Set ws = Worksheets(sheetName)
On Error GoTo 0
If ws Is Nothing Then
Set wsTemplate = Worksheets("Modèle")
wsTemplate.Copy after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = sheetName
SortWorksheets
Else
MsgBox "La feuille " & sheetName & " existe déjà !", 64, "Information"
End If
Else
MsgBox "Procédure annulée par l'utilisateur", 64, "Information"
End If
End Sub
Private Sub SortWorksheets()
Dim i As Long, j As Long
If n > 3 Then
For i = 3 To Worksheets.Count
For j = i To Worksheets.Count
If UCase(Worksheets(j).Name) < UCase(Worksheets(i).Name) Then
Worksheets(i).Move before:=Worksheets(j)
Worksheets(j).Move before:=Worksheets(i)
End If
Next j
Next i
End If
End Sub