Revenir au nom d origine d une feuille Excel

Bonjour à tous je viens d arrivé sur le forum, je voudrais savoir si il existe une ligne de commande vba pour revenir au nom du code name d origine (feuil1 ou 2 etc)

Exemple:

je renome feuil2 par bob et je souhaite revenir au nom d origine

Existe t il une commande vba qui permette de renomer la feuille bob par son codename le nom en dur de la feuille

Merci

Bonjour,

un peu comme ça ?

Function Sheet_Rename(Old_WorkSheet_Name As String, New_WorkSheet_Name As String)
Dim Work_sheet As Worksheet
For Each Work_sheet In ThisWorkbook.Worksheets
    If Work_sheet.Name = Old_WorkSheet_Name Then
        Work_sheet.Name = New_WorkSheet_Name
    End If
Next
End Function

Salut,

Si tu arrives à faire :

je renome feuil2 par bob et je souhaite revenir au nom d origine

Tu dois arriver à faire bob.CodeName = "Feuil2"

Mais si la question est : Excel garde-t-il le nom d'origine des feuilles quelque part c'est non, à toi de les sauvegarder si besoin ultérieur.

Bonsoir,

Vous parlez bien du CodeName de la feuille, c'est à dire le nom de la feuille sous VBA, celui qui s'incrémente en fonction de l'ordre de création des feuilles ?
A moins que vous parliez du nom de l'onglet, celui qui est affiché sur l'onglet de la feuille dans le classeur ?

Une boucle sur les feuilles avec renommage des CodeName en chrono fonction de cette boucle :

For I = 1 To ThisWorkbook.WorkSheets.Count
    Set Ws = ThisWorkbook.Sheets(I)
    ThisWorkbook.VBProject.VBComponents(Ws.CodeName).Name = "Feuil" & I
Next I

@ bientôt

LouReeD

Merci à tous je vais tester les différentes solutions que vous m avez proposé.

oui looreed c est bien le nom de la feuille sous vba celui qui reste meme si on change le nom de la feuille

Je reviendrai vers vous après test

Merci

Bonsoir à tous,

Ce que j'ai compris :

A chaque création de feuille, Excel leur attribue un codename par défaut (qui est aussi le nom d'onglet à la création).

L'utilisateur peut par la suite modifier le nom d'onglet de chaque feuille.

Ce qu'on désire c'est que chaque feuille reprenne comme nom d'onglet son codename.

Si c'est cela, on peut arriver à une situation de blocage où chaque fois qu'on veut renommer une feuille F avec son codename une autre feuille F' a déjà pour nom d'onglet le codename de F. C'est pourquoi le code est un peu plus complexe. Le code fonctionne bien sûr aussi avec les situations non bloquées.

Le fichier contient une situation de blocage.

Code dans module1 (le code est commenté) :

Sub NomOngletEstCodename()
Dim x, indX, indCodeName
   On Error Resume Next
   For Each x In Worksheets
      indX = x.Index    ' index de la feuille traitée
      'recherche de l'index d'une feuille dont l'onglet serait égal au codename de la feuille x
      indCodeName = -1: indCodeName = Worksheets(x.CodeName).Index
      ' Plusieurs cas
      If indCodeName = -1 Then      ' pas d'onglet déjà nommé comme le codename de x
         x.Name = x.CodeName        ' on peut donc renommer x comme son codename
      ElseIf indX = indCodeName Then
         ' le nom de x est déja le codename mais on renomme qaand même pour avoir la bonne casse du codename
         x.Name = x.CodeName
      Else
         ' une feuille différente de x a pour nom d'onglet le codename de x
         ' on ne peut donc pas renommer directement x comme une feuille déjà existante
         ' on renomme d'abord la feuille qui a comme nom le codename de x avec un autre nom peu probable
         Worksheets(indCodeName).Name = Left(Rnd * (10 ^ 10), 10)
         x.Name = x.CodeName
      End If
   Next x
   On Error GoTo 0
End Sub

Re,

Évidemment, sans les commentaires et en rassemblant logiquement les conditions, on peut diminuer la taille du code (c'est un peu moins lisible) :

Sub NomOngletEstCodename()
Dim x, indCodeName
   On Error Resume Next
   For Each x In Worksheets
      indCodeName = -1: indCodeName = Worksheets(x.CodeName).Index
      If indCodeName <> -1 And indCodeName <> x.Index Then Worksheets(indCodeName).Name = Left(Rnd * (10 ^ 10), 10)
      x.Name = x.CodeName
   Next x
   On Error GoTo 0
End Sub

Bonjour et merci à tous, Mafraise ton code marche parfaitement et merci pour les détail des explications concernant le code, j'avoue que je n'étais pas prêt de trouver lol.

un grand merci à toutes les personnes qui ont pris le temps de m'aider.

@+

Rechercher des sujets similaires à "revenir nom origine feuille"