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

XL 2016 Remplacer des caractère

AdrienSLAP

XLDnaute Nouveau
Bonjour, je rencontre un soucis dans mon fichier excel j'ai créer (non sans l'aide de ce forum) un code permettant de remplacer les apostrophe " ' " par "(bis)" automatique lorsque que l'on nomme un onglet, mais maintenant que j'ai ajouter une seconde ligne pour remplacer également les slashs "/ " par des "%"; la première ligne elle ne remplace plus les apostrophes.
Voici le code en question :

Private Sub Worksheet_Activate()
If Sheets("Données CSV").Range("E8") = "" Then
ActiveSheet.Name = "Collone 1"
Else
NomFeuille = Replace(Sheets("Données CSV").Range("E8"), "'", "(bis)")
NomFeuille = Replace(Sheets("Données CSV").Range("E8"), "/", "%") (Voici la ligne rajouter, sans celle ci le code marche parfaitement bien)
ActiveSheet.Name = NomFeuille
End If
End Sub

Quelqu'un aurait une idée de la raison de mon problème ? Merci d'avance.
 

job75

XLDnaute Barbatruc
Bonjour AdrienSLAP, M12,

Il suffit de faire en sorte qu'il y ait 2 modifications successives, il n'y a aucun problème en utilisant :
Code:
Private Sub Worksheet_Activate()
If Sheets("Données CSV").Range("E8") = "" Then
    ActiveSheet.Name = "Collone 1"
Else
    nomfeuille = Replace(Sheets("Données CSV").Range("E8"), "'", "(bis)")
    nomfeuille = Replace(nomfeuille, "/", "%")
    ActiveSheet.Name = nomfeuille
End If
End Sub
Testez avec 15/06/2020' en Données CSV!E8.

A+
 

patricktoulon

XLDnaute Barbatruc
bonjour à tous
VB:
ActiveSheet.Name = Replace(Replace(Sheets("Données CSV").Range("E8"), "'", "(bis)"), "/", "%")

et si je pousse un peu plus loin
VB:
With Sheets("Données CSV")
    ActiveSheet.Name = Array(Replace(Replace(.Range("E8"), "'", "(bis)"), "/", "%"), "Collone 1")(Abs(.Range("E8") = ""))
End With
 

job75

XLDnaute Barbatruc
Perso je me contenterai de ceci :
VB:
Private Sub Worksheet_Activate()
nomFeuille = Replace(Replace(Sheets("Données CSV").Range("E8"), "'", "(bis)"), "/", "%")
Name = IIf(nomFeuille = "", "Collone 1", nomFeuille)
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…