Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Nommer une feuille sans caractéres spéciaux

  • Initiateur de la discussion Initiateur de la discussion MJ13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MJ13

XLDnaute Barbatruc
Bonjour à tous

Je voudrai nommer une feuille en VBA sur le nom d'une cellule. mais si il ya des caractères spéciaux dans cette cellule, on ne peux pas le faire.

Auriez vous un moyen en VBA de faire une fonction pour supprimer ces caractères spéciaux du nom?

Ci joint le fichier

Merci d'avance à la communauté.
 

Pièces jointes

Re : Nommer une feuille sans caractéres spéciaux

Bonjour Michel,

Tu peux utiliser la fonction suivante :

Code:
Function Epure$(txt$)
txt = Left(Trim(txt), 31)
txt = Replace(Replace(txt, "/", "#"), "\", "#")
txt = Replace(Replace(txt, "*", "#"), "?", "#")
Epure = Replace(Replace(txt, "[", "#"), "]", "#")
End Function

Les caractères interdits sont ici remplacés par #.

A+

Edit : au lieu de Trim, utiliser plutôt Application.Trim pour supprimer aussi les espaces inutiles à l'intérieur de txt
 
Dernière édition:
Re : Nommer une feuille sans caractéres spéciaux

Bonjour,

Avec ceci, tu ne conserves que les chiffres et les lettres majuscules et minuscules et tu ne gardes ensuite que 31 caractères :

Code:
Option Explicit
Sub Nomme_Feuille()
Dim Cpt As Long
Dim NbCar As Long
Dim Carac As String
Dim TitreFeuille As String


NbCar = Len(Cells(1, 1))
TitreFeuille = ""
For Cpt = 1 To NbCar
    Carac = Mid(Cells(1, 1).Value, Cpt, 1)
    If InStr("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", Carac) <> 0 Then
        TitreFeuille = TitreFeuille & Carac
    End If
Next Cpt
If Len(TitreFeuille) > 31 Then TitreFeuille = Left(TitreFeuille, 31)
ActiveSheet.Name = TitreFeuille
End Sub


Cordialement
 
Re : Nommer une feuille sans caractéres spéciaux

Bonjour Job, Mécano.

Merci pour vos 2 solutions.

J'ai choisi la solution de Job et je garde la deuxième pour d'autres cas.

Ce qui donne:
Code:
Sub Nomme_Feuille()
n = 1
ncar = Len(Cells(1, 1))
NomNew = Epure$(Cells(1, 1))
ActiveSheet.Name = NomNew & " " & n
End Sub
Function Epure$(txt$)
txt = Left(Trim(txt), 28)
txt = Replace(Replace(txt, "/", "#"), "\", "#")
txt = Replace(Replace(txt, "*", "#"), "?", "#")
Epure = Replace(Replace(txt, "[", "#"), "]", "#")
End Function
 
Re : Nommer une feuille sans caractéres spéciaux

Re Michel,

Le caractère $ est pour déclarer la fonction. Ne pas le mettre quand on appelle celle-ci :

Code:
NomNew = Epure(Cells(1, 1))

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
266
  • Question Question
Microsoft 365 Tableau
Réponses
5
Affichages
299
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…