Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/доработка макроса по автозаполнению даты - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
доработка макроса по автозаполнению даты
kasi Дата: Четверг, 27.11.2014, 10:22 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте, эксперты! В таблице есть макрос по автозаполнению даты, но когда я вставляю строчку новую, дата то же проставляется автоматически. Помогите пожалуйста, где и что надо прописать чтобы дата проставлялась когда вносятся изменения только в столбцы 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]Пользуйтесь тегами оформления. Для кода макроса это кнопочка #
К сообщению приложен файл: 1626878.xlsm (23.7 Kb)


Сообщение отредактировал kasi - Четверг, 27.11.2014, 10:25
 
Ответить
СообщениеЗдравствуйте, эксперты! В таблице есть макрос по автозаполнению даты, но когда я вставляю строчку новую, дата то же проставляется автоматически. Помогите пожалуйста, где и что надо прописать чтобы дата проставлялась когда вносятся изменения только в столбцы 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
Дата добавления - 27.11.2014 в 10:22
_Boroda_ Дата: Четверг, 27.11.2014, 10:26 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16957
Репутация: 6631 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Можно добавить проверку на пустую ячейку
[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_
К сообщению приложен файл: 1626878_1.xlsm (24.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМожно добавить проверку на пустую ячейку
[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_
Дата добавления - 27.11.2014 в 10:26
kasi Дата: Четверг, 27.11.2014, 10:46 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Спасибо, ОГРОМНОЕ hands все работает. Про переменные учту.
 
Ответить
Сообщение_Boroda_, Спасибо, ОГРОМНОЕ hands все работает. Про переменные учту.

Автор - kasi
Дата добавления - 27.11.2014 в 10:46
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!