Si tu ne laisses pas de lignes vierges cela fonctionne.
OK pour le renvoi automatique, j'ai ajouté
Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cherche As Range, plage As Range
If Target.CountLarge > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Not Intersect(Target, Columns("B")) Is Nothing Then
Target.Offset(, 5).Value = Target.Offset(, 5).Value + Target.Value
Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
ElseIf Not Intersect(Target, Columns("A")) Is Nothing Then
Set plage = Range("A2:A" & Target.Row - 1)
plage.Select
Set cherche = plage.Find(Target.Value)
If Not cherche Is Nothing Then
Application.EnableEvents = False
Application.Undo
cherche.Offset(0, 1) = ""
Application.EnableEvents = True
cherche.Offset(0, 1).Select
End If
End If
End Sub