ruslaw, попробуйте код ниже.
В тексте коде нужно поменять две вещи:
Заменить "Лист1" на реальное название вашего листа, и заменить " | " на реальный разделитель (т.е. если в одну ячейку скопировано несколько значений, они будут разделены знаком | и пробелами, если это не требуется, замените на пустую строку "".
Код нужно скопировать в модуль каждого листа, с которым работаете (в редакторе щелкнуть на иконке листа, с которым работаете). На других листах второй столбец также игнорируется, если это не нужно, удалите в экземпляре кода с этого листа
Or Target.Column = 2
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const strName As String = "Лист1" 'Имя листа, на который будет выполняться копирование
Const strDelim As String = " | " 'разделитель названий внутри ячейки, можно убрать содержимое между кавычками
If IsEmpty(Target.Cells(1, 1)) Or Target.Column = 2 Then Exit Sub
If IsEmpty(ThisWorkbook.Worksheets.Item(strName).Cells(Target.Row, 2)) Then
ThisWorkbook.Worksheets.Item(strName).Cells(Target.Row, 2).Value = Target.Cells(1, 1).Value
Else
ThisWorkbook.Worksheets.Item(strName).Cells(Target.Row, 2).Value = ThisWorkbook.Worksheets.Item(strName).Cells(Target.Row, 2).Value & strDelim & Target.Cells(1, 1).Value
End If
End Sub