XL 2016 Remplacement de caractère

AdrienSLAP

XLDnaute Nouveau
Bonjour le forum, je recontre un soucis avec un VBA.

Private Sub Worksheet_Activate()
If Sheets("Données CSV").Range("E8") = "" Then
ActiveSheet.Name = "Collone 1"
Else
ActiveSheet.Name = Sheets("Données CSV").Range("E8")
End If
End Sub

J'utilise ceci pour nommer mes onglets automatiquement, mais lorsque la case "E8" de la page "Données CVS" finis par un " ' " ou un autre caractère spécial, excel refuse de nommer l'onglet ainsi. Quelqu'un aurait il une solution sachant que je ne peux pas enlever ces caractères spéciaux.
J'aurais dans l'idée de si possible rajouter un espace après le caractère spéciale si celui ci est là.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Adrien,
Votre souci n'a rien à voir avec le VBA.
Essayez de modifier à la main le nom d'une feuille avec toto ' et XL va vous jeter :
2.jpg

Donc deux solutions :
1- Vous supprimer les caractères spéciaux à l'origine. ( ce qui a priori n'est pas possible )
2- Vous "nettoyez" le nom présent en E8 avant de vous en servir pour appeler la feuille.
A noter que si par la suite vous utilisez le nom avec guillemet pour accéder à votre feuille alors ça ne marchera pas.
Si vous voulez supprimer le dernier caractère vous pouvez utiliser :
VB:
Nom = Mid(Range("E8"), 1, Len(Range("E8")) - 1)
 

AdrienSLAP

XLDnaute Nouveau
Je ne peux pas supprimer ou modifier le nom de la case E8, mais je voudrais faire en sorte que l'onglet l'accepte, en ajoutant un espace après ou quelque chose que excel accepterai.
Mais seulement dans le cas où un caractère spéciale serais présent. Je ne sais pas si j'arrive a bien exprimer mon besoin..
 

Discussions similaires