Cell=nomfeuille, mais doublons

Bonjour à tous,

Sur mon fichier excel, mes feuilles sont renommées en fonction d'une cellule

     Dim Feuille As Worksheet
         For Each Feuille In Worksheets
Feuille.Protect "admin"

If Feuille.Range("Y2") <> "" Then
             Feuille.Name = Feuille.Range("Y2").Value
      End If
   Next Feuille

Seulement voila, si deux feuilles ont le même nom dans la cellule Y2, excel n'est pas content et me le fait savoir.

J'aimerai corriger ça, sans savoir comment. Soit en modifiant le code pour que si deux feuilles ont le même nom, la seconde se voit rajouter un "(2)" ensuite. Soit interdire tout simplement de donner deux fois le même nom...

Je ne peux pas vous joindre le fichier, qui est trop lourd...

Merci,

Thibaud

PS : ah oui, est si quelqu'un à une idée pour classer mes feuilles... Car elles ne se classent qu'avec le codename (1,10,11,12,13....2,3,4) et pas moyen de trouver comment les classer par leur propriété "Name"

Bonjour

Pour ton premier problème

Sub Test()
Dim Feuille As Worksheet

  For Each Feuille In Worksheets
    Feuille.Protect "admin"
    If Feuille.Range("Y2") <> "" Then
      If FeuilleExiste(Feuille.Range("Y2").Value) = False Then
        Feuille.Name = Feuille.Range("Y2").Value
      End If
    End If
   Next Feuille
End Sub

Function FeuilleExiste(Nom As String) As Boolean
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function

Pour le second je ne comprends pas ce que tu veux dire

ThibaudC a écrit :

Car elles ne se classent qu'avec le codename (1,10,11,12,13....2,3,4)

Elles se classent ou ?

Salut,

Concernant le 1er problème, le code fonctionne, mais ne va pas me renommer ma feuille, n'est-ce pas? Il va simplement "ignorer" l'erreur, et maintenir le nom d'origine?

Concernant le classement des feuilles, c'est la mon classeur. J'ai deux feuilles "sommaire1" et "sommaire2", qui doivent rester fixes, mais ensuite j'ai tout un ensemble de feuille qui se rajoutent au fil du temps. Ces feuilles, j'aimerait qu'elle soient classées par nom, dans l'ordre alphabétique. Cependant, les codes que je trouve sur le net vont classer les feuilles selont leur codename ( feuil1(BBB) ; feuil10(ZZZ) ; feuil11 (TTT); feuil12 (RRR) ;feuil13 (CCC); ) alors que j'ai besoin qu'elles soient classées par le nom qui leur est donné (feuil1(BBB); feuil13 (CCC); feuil12 (RRR); feuil11 (TTT); Feuil10(ZZZ) )

Bonjour

Pour la 1ère réponse c'était un choix que tu avais proposé

ThibaudC a écrit :

Soit interdire tout simplement de donner deux fois le même nom.

Pour classer tes pages

Option Explicit

Sub TriFeuille()
Dim I As Integer, K As Integer
  Application.ScreenUpdating = False
  For I = 3 To Sheets.Count
    For K = 3 To I - 1
      If UCase(Sheets(I).Name) < UCase(Sheets(K).Name) Then
        Sheets(I).Move before:=Sheets(K)
        Exit For
      End If
    Next K
  Next I
End Sub

Pour classer tes pages

Option Explicit

Sub TriFeuille()
Dim I As Integer, K As Integer
  Application.ScreenUpdating = False
  For I = 3 To Sheets.Count
    For K = 3 To I - 1
      If UCase(Sheets(I).Name) < UCase(Sheets(K).Name) Then
        Sheets(I).Move before:=Sheets(K)
        Exit For
      End If
    Next K
  Next I
End Sub

Mais ce code me classe les feuilles selon le paramètre "(name)", et non "name"? En le testant, il me le classe encore par numéo (Feuil1, Feuil2, Feuil3) et pas par le nom attribué (par exemple Feuil2(AAA); Feuil3(BBB); Feuil1(CCC) )

Bonjour

Je t'ai posé comme question

Banzai64 a écrit :

Elles se classent ou ?

Comme tu n'as pas répondu j'en ai déduis que le classement que tu voulais est dans la liste des onglets

Et le code fourni le fait

Et alors où est le problème ?

Tu prépares un fichier vide avec les pages classées comme tu voudrais

Banzai64 a écrit :

Bonjour

Je t'ai posé comme question

Banzai64 a écrit :

Elles se classent ou ?

Comme tu n'as pas répondu j'en ai déduis que le classement que tu voulais est dans la liste des onglets

Et le code fourni le fait

Et alors où est le problème ?

Je ne comprend pas bien la question, les feuilles sont classées dans mon classeur excel

Edit : ok, je m'occupe de préparer le fichier

Rechercher des sujets similaires à "nomfeuille doublons"