Nom ambigu détecté

Bonjour,

Je me tourne une nouvelle fois vers le forum car je suis dépourvu ^^

Je m'explique,

Dans mon classeur, un certain nombre de feuilles comportaient une macro :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B35:B81")) Is Nothing Then

Range("C35:C81").FormulaR1C1 = ("=Couleur")

Selection.Calculate

End If

End Sub

A laquelle j'ai rajouteé pour renommer automatiquement les feuilles :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ActiveSheet.Name = Range("B8").Value

End Sub

Excel m'indique alors l'erreur suivante :

Erreur de compilation:

Nom ambigu détecté : Worksheet_SelectionChange

Je ne suis pas expert en VBA (ni meme débutant), et j'avouerai que j'ai simplement copié la macro permettant de renommer la feuille en mettant la bonne case.

Quelqu'un aurait il la gentillesse de m'expliquer ce qui ne va pas, et comment corriger cela, car du coup, ma feuille n'est pas renommée, alors que lorsque je fait un test dans un autre classeur, sans la premiere macro, la macro de nomination marche très bien.

Merci encore à ceux qui se pencheront sur mon problème.

Cordialement

Bonjour

Sur une feuille tu ne peux avoir qu'un seul SelectionChange

Bonjour

Tu peux toujours "fusionner" les 2 codes

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B35:B81")) Is Nothing Then
Range("C35:C81").FormulaR1C1 = ("=Couleur")
Selection.Calculate
End If
ActiveSheet.Name = Range("B8").Value
End Sub

Cordialement

Bonjour, et merci pour la réponse mais dans ce cas la, cela voudra-t-il dire qu'il faudra que je clique dans la zone C35:C81 afin de mettre a jour le nom??

Cordialement

non,

le nom se met à jour à chaque fois. C'est ces deux lignes qui dépendent de la condition du If

Range("C35:C81").FormulaR1C1 = ("=Couleur")
Selection.Calculate

Bonsoir à tous,

Tu peux aussi écrire comme çà

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("B35:B81")) Is Nothing Then
        Range("C35:C81") = "=Couleur"
    End If
End Sub

ce 2ème code renomme la feuille en modifiant "B8"

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

Amicalement

Claude

Merci encore !!

Cordialement

Rechercher des sujets similaires à "nom ambigu detecte"