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!!!