Renommer l'onglet selon la valeur d'une cellule

chaelie2015

XLDnaute Accro
Bonsoir Forum
Je souhaite renomer la feuille active selon la donnée dans la cellule A3
Exemple : Si je saisie dans la cellule A3 charlie/2019/bel/002 , l'onglet active sera nomé" charlie/2019/bel/002" automatiquement.
Salutation
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @chaelie2015,

Essayez le code suivant à placer dans le module de ThisWorkbook:
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   On Error GoTo err001
   If Not Intersect(Sh.Range("a3"), Target) Is Nothing Then Sh.Name = Replace(Target.Text, "/", "#")
   Exit Sub
err001:
   MsgBox "impossible de renommer la feuille '" & Sh.Name & "' en " & Target.Text
End Sub

NOTA : le caractère / est un caractère interdit dans les noms d'onglets. On a remplacé ce caractère par un dièse #
 
Dernière édition:

pilou010

XLDnaute Occasionnel
Bonjour à tous,
Je me suis servi du code proposé par mapomme qui fonctionne très bien.
Par contre est-il possible que le nom de la feuille soit composé du contenu de 2 cellules séparer par un texte ?

Par exemple : "contenu de la cellule A1" - "de" - "contenu de la cellule A2"
J'ai fait un essai avec & comme si c'était concaténer mais cela ne fonctionne pas

Merci de votre aide
 
Dernière édition:

pilou010

XLDnaute Occasionnel
Bonjour,
Suite à mon précédent post

Le code de départ :
If Not Intersect(Sh.Range("a3"), Target) Is Nothing Then Sh.Name = Replace(Target.Text, "/", "#")

Mes essais :
If Not Intersect(Sh.Range("a2"&"de"&"a3"), Target) Is Nothing Then Sh.Name = Replace(Target.Text, "/", "#")
If Not Intersect(Sh.Range("a2;a3"), Target) Is Nothing Then Sh.Name = Replace(Target.Text, "/", "#")
If Not Intersect(Sh.Range("a2";"a3"), Target) Is Nothing Then Sh.Name = Replace(Target.Text, "/", "#")
mais il manque un truc visiblement ?
 

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 384
Membres
102 878
dernier inscrit
asmaa