Renommer les feuilles par saisie et éviter les erreurs
Bonjour à toutes et à tous, j'espère que vous allez bien et que vous vous protégez en ces temps de pandémie.
J'ai besoin de votre aide concernant le problème suivant : Je voudrais renommer de manière semi-automatique les noms des feuilles générées par click sur un bouton.
Le problème c'est que j'aimerais éviter que la personne qui tape sur son clavier ne rentre des caractères spéciaux...
J'ai trouvé pour la longueur de texte admise (qui ne doit pas dépasser 31 caractères), aussi pour le cas où il laisserai l'inputbox vide, mais pour les caractères spéciaux j'ai usé de plusieurs codes sans que ça marche comme je le souhaite.
Je me tourne donc vers vous afin de solliciter votre aide.
Merci bien.
Le code que j'ai pu faire pour résoudre ce problème :
Sub Rename_Sheets()
Dim ma_feuille As Worksheet
Dim NomProjet As String
Dim ExistenceFeuille As Boolean
Nommer:
NomProjet = InputBox("Veuillez renseigner le nom du projet")
' Si le nom du projet n'est pas saisi, renvoyer un message d'erreur et demande de saisi du nom du projet
Do Until NomProjet <> ""
MsgBox ("Veuillez rentrer un nom pour ce projet")
NomProjet = InputBox("Veuillez renseigner le nom du projet")
Loop
' Contrôle la longueur du nom (qui ne doit pas dépasser 31 caractères)
If Len(NomProjet) > 31 Then
MsgBox ("Le nom ne doit pas dépasser 31 caractères")
GoTo Nommer
End If
' Contrôle si le nom est déjà présent sur une des feuilles Excel
ExistenceFeuille = False
For Each ma_feuille In ActiveWorkbook.Sheets
If NomProjet = ma_feuille.Name Then
ExistenceFeuille = True
Exit For
End If
Next ma_feuille
If ExistenceFeuille = True Then
MsgBox "Ce nom existe déjà"
GoTo Nommer
Else
ActiveSheet.Name = NomProjet
End If
End Sub
Sub CaractSpeciaux(ByVal KeyAscii As MSForms.ReturnInteger)
'supprime dans la textbox la saisie de caractères spéciaux
Case Is = 42 Or 47 Or 58 Or 63 Or 91 Or 92 Or 93
KeyAscii = ""
End Select
End Sub