Код при изменении ячеек листа срабатывает, если столбец изменяемого диапазона второй, т.е. "B". Если Вы выделяете диапазон "A2:B2" и нажимаете клавишу "Delete", то свойство .Column возвращает номер столбца 1 и код не срабатывает.
Поэтому, Вам надо или изменить условие, чтобы срабатывание было при изменении диапазона на обеих столбцах (заменить вторую строчку кода c "If Target.Column = 2 Then" на "If Target.Column < 3 Then") или убрать условие вообще (удалить вторую и предпоследнюю строчку "End If"), чтобы код переноса срабатывал при изменении ЛЮБОЙ ячейки на листе.