Nommer des feuilles sans doublon

Par VBA, comment demander à un utilisateur de donner un nom à une feuille qui est créée et comment contrôler que ce nom n'est pas déjà attribué à une autre feuille ?

sub NouvelleFeuille()
 ActiveWorkbook.Sheets.Add
 Do
  Nom = InputBox("Entrez un nom pour la nouvelle feuille :")
  If Nom = "" Then exit sub
  On Error Resume Next
  Set sht = Sheets(Nom)
  If Err <> 0 Then
 
  ActiveSheet.Name = Nom
  Err.Clear: Exit Do
  Else
  MsgBox "Une feuille de ce nom existe déjà !"
  End If
 Loop
 end sub

Ou encore pour éviter les goto et vérifier que les noms de feuille choisis sont valides :

sub NomOnglet()
 Dim Rep As String
 
 msg = "Comment voulez-vous nommer la nouvelle feuille ?"
 Rep = InputBox(msg, "Saisie du nom")
 If Rep = "" Then exit sub
 On Error Resume Next
 Application.ScreenUpdating = False
 ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
 ActiveSheet.Name = Rep
 If Err <> 0 Then
 Err.Clear
 With Application
  .ScreenUpdating = True
  .DisplayAlerts = False
 End With
 ActiveSheet.Delete
 msg = "Le nom de feuille que vous avez tapé n'est pas valide !" _
  & vbCrLf
 msg = msg & vbCrLf
 msg = msg & "- Vérifiez que le nom de la feuille ne dépasse " _
  & "pas 31 caractères" & vbCrLf
 msg = msg & "- Vérifiez que le nom de la feuille ne contient " _
  & "aucun des caractères suivants :" & vbCrLf
 msg = msg & " \ / : ? * [ ou ]" & vbCrLf
 msg = msg & "- Vérifiez qu'une feuille du classeur ne possède " _
  & "pas déjà un nom identique" & vbCrLf
 Reponse = MsgBox(msg, , "Saisie invalide")
 NomOnglet
 End If
 end sub

Auteurs : ,

Mots clefs associés à cette page : , , , , , , , , ,

new sheet

does not work: error

préciser

Merci de préciser où vous rencontrez une erreur, voter message n'est pas assez détaillé.
Please explain in more details the problem you have, your description is not sufficient to understand it.

Misange