Здравствуйте, эксперты! В таблице есть макрос по автозаполнению даты, но когда я вставляю строчку новую, дата то же проставляется автоматически. Помогите пожалуйста, где и что надо прописать чтобы дата проставлялась когда вносятся изменения только в столбцы D и G. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("D3:D1000000,G3:G1000000")) Is Nothing Then 'если изменененная ячейка попадает в диапазон D3:D1000000 With cell.Offset(0, 2) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке End With End If Next cell End Sub
[/vba] [moder]Пользуйтесь тегами оформления. Для кода макроса это кнопочка #
Здравствуйте, эксперты! В таблице есть макрос по автозаполнению даты, но когда я вставляю строчку новую, дата то же проставляется автоматически. Помогите пожалуйста, где и что надо прописать чтобы дата проставлялась когда вносятся изменения только в столбцы D и G. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("D3:D1000000,G3:G1000000")) Is Nothing Then 'если изменененная ячейка попадает в диапазон D3:D1000000 With cell.Offset(0, 2) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке End With End If Next cell End Sub
[/vba] [moder]Пользуйтесь тегами оформления. Для кода макроса это кнопочка #kasi
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell_ In Target 'проходим по всем измененным ячейкам If Not Intersect(cell_, Range("D3:D1000000,G3:G1000000")) Is Nothing And cell_ <> "" Then 'если изменененная ячейка попадает в диапазон D3:D1000000 With cell_.Offset(0, 2) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке End With End If Next cell_ End Sub
[/vba] И еще - не обзывайте переменные зарезервированными словами (типа cell). Это не есть хорошо. У Вас я поправил на cell_
Можно добавить проверку на пустую ячейку [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell_ In Target 'проходим по всем измененным ячейкам If Not Intersect(cell_, Range("D3:D1000000,G3:G1000000")) Is Nothing And cell_ <> "" Then 'если изменененная ячейка попадает в диапазон D3:D1000000 With cell_.Offset(0, 2) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке End With End If Next cell_ End Sub
[/vba] И еще - не обзывайте переменные зарезервированными словами (типа cell). Это не есть хорошо. У Вас я поправил на cell__Boroda_