Так вроде работает:[vba]Код
Option Explicit
Public oldVal As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
oldVal = Target.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim newVal As String
Application.EnableEvents = False
If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
newVal = Target.Value
If newVal <> "" Then
If InStr(1, oldVal, newVal) = 0 Then
If oldVal = "" Then
Target = newVal
Else
Target = oldVal & "," & newVal
End If
oldVal = Target.Value
Else
Target = oldVal
End If
End If
End If
Application.EnableEvents = True
End Sub
[/vba]