Nom ambigu détecté: Worksheet_Change

Bonjour à vous tous,

J'ai une fonction VBA que j'essaie de doubler mais je reçois le message: Nom ambigu détecté: Worksheet_Change à tout moment.

Je veux utiliser la page feuil 2 comme feuille de recherche pour du data dans la page "BD".

Je suis capable de rapporter la colonne B mais quand je dédouble pour avoir la colonne C et D ça ne fonctionne pas.

Voir mon fichier ci-joint.

VBA original:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 And Target.Count = 1 Then

p = Application.Match(Target, Application.Index([données], , 1), 0)

If Not IsError(p) Then

Sheets("BD").Range("données").Cells(p, 2).Copy Target.Offset(, 1)

End If

End If

End Sub

Private Sub Worksheet_Activate()

Application.ScreenUpdating = False

For Each c In [A3:A10]

p = Application.Match(c, Application.Index([données], , 1), 0)

If Not IsError(p) Then

Sheets("BD").Range("données").Cells(p, 2).Copy c.Offset(, 1)

End If

Next c

Application.ScreenUpdating = True

End Sub

VBA en erreur :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 And Target.Count = 1 Then

p = Application.Match(Target, Application.Index([données], , 1), 0)

If Not IsError(p) Then

Sheets("BD").Range("données").Cells(p, 2).Copy Target.Offset(, 1)

End If

End If

End Sub

Private Sub Worksheet_Activate()

Application.ScreenUpdating = False

For Each c In [A3:A10]

p = Application.Match(c, Application.Index([données], , 1), 0)

If Not IsError(p) Then

Sheets("BD").Range("données").Cells(p, 2).Copy c.Offset(, 1)

End If

Next c

Application.ScreenUpdating = True

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 And Target.Count = 1 Then

p = Application.Match(Target, Application.Index([données], , 2), 0)

If Not IsError(p) Then

Sheets("BD").Range("données").Cells(p, 3).Copy Target.Offset(, 2)

End If

End If

End Sub

Private Sub Worksheet_Activate()

Application.ScreenUpdating = False

For Each c In [A3:A10]

p = Application.Match(c, Application.Index([données], , 1), 0)

If Not IsError(p) Then

Sheets("BD").Range("données").Cells(p, 3).Copy c.Offset(, 2)

End If

Next c

Application.ScreenUpdating = True

End Sub

Merci à l'avance!!!

15test1vba.zip (15.49 Ko)

Bonjour,

tu ne peux avoir qu'un seul Worksheet_Change

Il faut enchainer tes traitements l'un après l'autre dans le même.

eric

Est-ce qu'il a une commande spécial pour les enchaîner? Je suis encore très débutant et j'avais tenter ceci avant de vous écrire ici.

Désolé pour le trouble que ceci peut vous générer

j'ai trouvé MERCI!!!!

Rechercher des sujets similaires à "nom ambigu detecte worksheet change"