Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell in Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("A2:A100" ) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
End With
End If
Next cell
End Sub
подскажите, пожалуйста, как сделать так, чтобы одновременно с вводом даты я в ячейку cell.Offset(0, 1) в ячейку cell.Offset(0, 2) вводился определенный текст? Я совсем VBA не знаю)
да, я так пробовал. В примере, скачанном в http://www.planetaexcel.ru/techniques/6/44/, все работает. А в моем файле - нет. К тому же мой файл и сюда не грузится ("При сохранении файла произошла ошибка.") Просто беда какая-то.
Я пытался загрузить два файла, а загрузился только один. Удалось разобраться все-таки: я текст макроса вставлял в окно, озаглавленное "General". Оказалось, что в окне "Worksheet" изменений не произошло. Теперь, когда в обоих окнах тексты макросов совпадают, все заработало. Спасибо за помощь.
Игорь, подскажите а как должен выглядеть макрос чтоб при удалении данных он не вставлял опять дату в столбец. вроде написан макрос правильно но всё равно не работает
Код
For Each cell In Target
If Not Intersect(cell, Range("c2:c100")) Is Nothing Then
With cell.Offset(0, -1)
If IsEmpty(Target) Then
Target(1, 2) = Empty
Else
With Target(1, 2)
.Value = Now
End With
End If
Next cell
End Sub