ActiveSheet.Name renommé si nom existe déjà

Bonjour à tous,

J'ai ce petit bout de code que je mets dans certaines pages et qui me servent à renommer la page directement depuis une cellule.
Malheureusement, s'il m'arrive de mettre le même nom qu'une autre page dans la cellule, cela m'ouvre un message d'erreur qui me fait ouvrir un message d'erreur à chaque fois que je démarre mon fichier.

Est-il possible de faire en sorte qu'il ne change pas le nom de la page si le nom existe déjà ou alors qu'il renomme la cellule en Already exists, par exemple ?

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D2")) Is Nothing Then
ActiveSheet.Name = Range("A1")
End If
End Sub

Bonsoir,

si le code renvoie une erreur alors le nom en A1 est modifié :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D2")) Is Nothing Then
On Error Goto YaErreur
ActiveSheet.Name = Range("A1")
Exit sub
YaErreur :
Application.EnableEvents = False
Range("A1") = "Alredy exists"
Application.EnableEvents = True
End If
End Sub

@ bientôt

LouReeD

Parfait !
Merci bien !!

Bonjour,

Trop tard !...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
    If Target.Address = "$D$2" Then
        On Error Resume Next
        Set ws = Worksheets(Me.Cells(1).Value)
        On Error GoTo 0
        If Not ws Is Nothing Then
            MsgBox "La feuille " & Target.Value & "existe déjà !...", 64, "Information"
        Else
            Me.Name = Range("A1")
        End If
    End If
End Sub

Pour une rare fois que c'est dans ce sens Jean-Eric !

Merci pour vos remerciements cedric-pillonel !

@ bientôt

LouReeD

Merci à vous deux

Rechercher des sujets similaires à "activesheet name renomme nom existe deja"