'Ajouter une feuille à un classeur et la nommer, après vérification
'de la validité du nom et correction si besoin.
'cette fonction est un peu une synthèse d'une fonction de Chip Pearson
'(du même nom : CreateSheet) et de procédures de ChrisV pour vérifier
'la validité d'un nom affecté à une nouvelle feuille
Sub TestFeuilles()
Dim sht As Worksheet
CreateSheet "Rapport du 12/12/2001"
CreateSheet "azeazeaze*azezaezae/azeazazezerzererertdfgdfgfghfgh?ppoio"
CreateSheet ""
CreateSheet "Sommaire"
Set sht = CreateSheet("La dernière" )
MsgBox sht.Name
End Sub
Function CreateSheet(SheetName As String) As Excel.Worksheet
'avec l'aide de Chip Pearson, mpep et de ChrisV, mpfe
Dim i As Byte
'si le nom de la nouvelle feuille est une chaîne vide -> nom par défaut
If SheetName = "" Then GoTo ErrH
'si le nom comprend des caractères interdits -> trait d'union
For i = 1 To Len(SheetName)
Select Case Mid(SheetName, i, 1)
Case ":", "/", "\", "?", "*", "[", "]": Mid(SheetName, i, 1) = "-"
End Select
Next
'si le nom est trop long -> tronqué à 31 caractères
If Len(SheetName) > 31 Then
SheetName = Left(SheetName, 31)
End If
'si la feuille existe déjà -> renvoi de la feuille existante
On Error GoTo ErrH:
Set CreateSheet = ThisWorkbook.Worksheets(SheetName)
Exit Function
ErrH:
'tout est OK -> création de la feuille
Set CreateSheet = ThisWorkbook.Worksheets.Add
'affectation du nom (ou maintien du nom par défaut)
If SheetName <> "" Then CreateSheet.Name = SheetName
End Function 'fs
voila ce que j'ai en exemple pour une feuille
a toi de faire varier sheetname pour avoir tout tes noms