1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Sub Test()
Select Case RenameSheet(Worksheets("Pierre"), Feuil1.Range("g12"))
Case 0
MsgBox "Feuille renommée"
Case 1
MsgBox "Nom trop long"
Case 2
MsgBox "Caractères interdits"
Case 2
MsgBox "Non déjà attribué"
End Select
End Sub
'''
'Result 0 si ok, 1 si trop long, 2 si caractère interdit, 2 si déjà attribué
'''
Function RenameSheet(sh As Object, NewName As String) As Long
Dim t
Dim i As Long
Dim Found As Boolean
If sh.Name <> NewName Then
If Len(NewName) < 32 Then
t = VBA.Array("/", "\", "*", "?", "[", "]")
Do While i < 6 And Not Found
Found = InStr(1, NewName, t(i)) > 0
i = i + 1
Loop
If Not Found Then
Found = False
i = 1
Do While i <= sh.Parent.Sheets.Count And Not Found
Found = StrComp(sh.Parent.Sheets(i).Name, NewName, vbTextCompare) = 0
i = i + 1
Loop
If Not Found Then
sh.Name = NewName
Else
RenameSheet = 3
End If
Else
RenameSheet = 2
End If
Else
RenameSheet = 1
End If
End If
End Function |
Partager