Страницы: 1
RSS
Дата изменения ячейки
 
Здравствуйте!
Помогите, пожалуйста,  поправить макрос. Необходимо, чтобы при выборе ответственного в столбце «А», например, «Иванов»  в столбце «В» проставлялась  дата выбора его ответственным.  Если вместо Иванова выбирать другого человека, дата должна меняться.
Самое веселое:
Если повторно выбрать в той же ячейке Иванова менять дату в столбце «В» не нужно.
И просто по двойному клику, без выбора менять дату в столбце «В» не нужно.
Сейчас же у меня макрос реагирует на любое «движение» в столбце «А»
 
См. вариант.
 
Ловко у Вас получилось!
Спасибо!
 
Юрий, столкнулся со следующей проблемой.
Если данные в столбце "А" вводить руками или выбирать из списка макрос работает без проблем. Но если в те же ячейки данные пишутся из формы , то время меняется на текущее даже при отсутствии изменений. Т.е. форму открыл, ничего не меняя закрыл с сохранением и время меняется.
 
User386, Отключите автоматическое обновление формул в настройках
Изменено: Ivan.kh - 24.05.2013 11:57:54
 
Ivan.kh, во-первых, ручной режим обсчета формул это не выход. А во вторых у меня в книге вообще нет ни одной формулы, только макросы и пользователькие формы.
З.Ы. отключить автомат на всякий случай попробовал. Проблема остается.
 
Цитата
User386 пишет:
если в те же ячейки данные пишутся из формы , то время меняется на текущее даже при отсутствии изменений.
Правильно - нужен другой подход. Но покажите - где Вы предупреждали о том, что будет использоваться форма?
 
Цитата
Ivan.kh пишет:
Отключите автоматическое обновление формул в настройках
А причём тут формулы?
 
Юрий М, Что-то затупил, читать разучился :) Прочитал не с формы, а формулой
 
Вариант с малой кровью: переда записью из формы программно активировать ячейку, в которую будет производиться запись. Неэстетично, но сработает. Или запоминать в переменную ПЕРЕД записью нового значения, но уже не по SelectionChange, и сравнивать.
 
Цитата
Юрий М пишет: ...где Вы предупреждали о том, что будет использоваться форма?
действительно о формах речи не было. Но мысль прикрутить работу с формой показалась интересной, а код работать отказался
 
Цитата
Юрий М пишет:
Или запоминать в переменную ПЕРЕД записью нового значения, но уже не по SelectionChange, и сравнивать.
За идею с переменной спасибо!
перед записью формы добавил конструкцию вида

tmp = .Cells(n + 1, 3)
       If tmp <> FIO Then
         .Cells(n + 1, 3).Value = FIO.Text
      End If

и все стало ОК. И даже ваш макрос не пришлось переделывать.
 
получается, я просто запретил форме писать в ячейку если там такое же значение.
Но думаю, Юрий, у Вас решение было бы более элегантное.
 
Ну почему? Ведь и раньше мы использовали переменную ))
 
я не об использовании переменной, а о том куда я ее прикрутил. При дальнейших доработках эта конструкция может мне боком выйти.
Вероятно, разумнее было бы править макрос , проставляющий дату в ячейки.
 
Да всё верно: проверяем равенство значения в ячейке и в ТектБоксе - если не равны - пишем, а дата сама встанет (из "старого" макроса).
 
Даже без переменной можно обойтись в этом случае.
 
Без нее и сделал сравнение.
Спасибо Вам большое!
но чувствую к этой теме еще вернусь
 
обнаружилась следующая ошибка:
при попытке выделиль несколько ячеек в любом направлении и попадании в область выделения ячейки из отслеживаемого диапазона макрос выпадает с ошибкой 13.
 
Файл где?
 
можете попробовать свой вариант ответа во втором сообщении. Выделите несколько ячеек, захватив хоть одну из столбца "А"
 
User386, а скажите мне, пожалуйста,- зачем выделять несколько ячеек, если дату нужно менять/оставлять при выборе ОДНОЙ фамилии?
 
хотя бы для того, чтобы удалить содержимое нескольких ячеек
 
Тогда проверяйте количество выделенных ячеек и при необходимости выполняйте выход из процедуры. Для этого добавьте в самом начале такую проверку:
Код
If Target.Cells.Count > 1 Then Exit Sub
 
и то правда!
Спасибо!
 
Здравствуйте. Скачал файл Дата изменения 01.xls
Не могу найти макрос, на верно я просто не знаю где он находится. Функция очень полезная, только мне надо что бы в первом столбце стояла формула и при изменении результата формулы менялась дата. Скиньте пожалуйста код макроса.
 
Цитата
real-78 написал: я просто не знаю где он находится
ПКМ по ярлыку листа 'Лист1' - Исходный текст
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх