Доброго времени суток! Искал много информации, как это реализовать, но нигде не нашёл ответ... Есть БД для обзвона клиентов, есть 5 столбцов G1:P1 выделил жёлтым Подскажите, какие варианты есть для создания истории звонков, чтобы при заполнении столбцов O и P данные строк в столбцах I:P копировались в предыдущее, т.е попадали в столбцы G:N, а I:P становились пустыми Пробовал через "=ЕСЛИ(ЕПУСТО($O2);0;1)" в столбце Х и потом через макрос запустить, но получается только по одной строке, по всей таблице не выходит. Подскажите как реализовать данную затею?
Добрый день. Какие обязательные условия для переноса? Одновременно наличие данных в ячейках столбца О и Р по конкретной строке? или в каком-то одном? Если в G уже есть данные - затирать?
Пытливый написал: Если в G уже есть данные - затирать?
G и H затирать
Цитата
Какие обязательные условия для переноса?
переносить, только когда места не осталось в других ячейках и задействованы О и Р столбцы
Цитата
Одновременно наличие данных в ячейках столбца О и Р по конкретной строке?
нет, их после заполнения перенести. Формирование истории, т.е. в неё написал, а после рабочего дня она скопировалась в предыдущие и очистилась. По факту O и P после обработки должны оставаться пустые для записи новых данных
Так. Мой вопрос понят не совсем верно. Попробую пояснить. Для выполнения неких действий (например, переноса данных из одних ячеек в другие) нужно выполнение неких условий. Условия выполняются, - перенос делаем, условия не выполняются - перенос НЕ делаем. Далее я выспрашиваю условия: 1. Надо ли переносить данные, если заполнена хотя бы одна ячейка из столбца О и Р по строке? Или надо переносить, когда заполнены ДВЕ ячейки и в О, и в Р? 2. Надо ли переносить данные, если в столбцах О и Р данные есть, а в предшествующих (M, N, L, K, J, I, H) - данных нет, или такая ситуация невозможна?
Пытливый написал: 1. Надо ли переносить данные, если заполнена хотя бы одна ячейка из столбца О и Р по строке? Или надо переносить, когда заполнены ДВЕ ячейки и в О, и в Р?
в Ячейке О ставится дата звонка, в Р примечание, о чем был диалог. Т.е. эти 2 ячейки заполняются в одинаковый промежуток времени
Цитата
Пытливый написал: 2. Надо ли переносить данные, если в столбцах О и Р данные есть, а в предшествующих (M, N, L, K, J, I, H) - данных нет, или такая ситуация невозможна?
Данные в О и Р заносятся в самый последний момент, только в том случае если заполнены G,H,I,J,K,L,M,N
Цитата
Пытливый написал: Для выполнения неких действий (например, переноса данных из одних ячеек в другие) нужно выполнение неких условий. Условия выполняются, - перенос делаем, условия не выполняются - перенос НЕ делаем.
Если есть данные хотя бы в O или P, то условие выполняется.
Пример: в ячейку О2 ставим дату или в Р2 пишем комментарий, условие выполняется, делаем перенос I2:P2 (I2,J2,K2,L2,M2,N2,O2,P2) на место G2:N2 (G2,H2,I2,J2,K2,L2,M2,N2) данные в ячейках O2 и P2 удаляются
Отлично. Бывает ситуация, когда надо заполнить и О и P ячейку, а потом перенести? Просто исходя из вашего описания - по ходу выполнения кода машина определит, что заполнена какая-то ячейка, например в О и тут же произведет копирование. А юзер такой: "Куда!!? я ж еще в Р не написал нужное!!"
Пытливый написал: Бывает ситуация, когда надо заполнить и О и P ячейку, а потом перенести?
ну лучше всего будет когда заполнена ячейка P, т.к сначала ставиться дата в О, потом пишется комментарий.
Цитата
Пытливый написал: Просто исходя из вашего описания - по ходу выполнения кода машина определит, что заполнена какая-то ячейка, например в О и тут же произведет копирование. А юзер такой: "Куда!!? я ж еще в Р не написал нужное!!"
Лучше тогда ориентироваться на Р ячейку, потому, что именно так и произойдёт)))) Можно же выполнить макрос (если это им делается) при закрытии книги
Вообще-то я подумывал о реакции на событие "изменение в ячейке", т.е. кодом отслеживаем изменения по ячейкам этих двух столбцов и как только внесли изменения в них - то запуск процедуры копирования-вставки-очистки. Я настырный, поэтому спрошу еще раз - вот может быть такая ситуация, когда надо скопировать ячейки без заполненного примечания в Р, или примечание пишется всегда? Может быть такая ситуация, когда юзер сначала начал писать примечания, потом заполняет ячейку в О датой? Опять же - исходя из описания - если пользователь сначала заполнит примечание - триггер сработает и он опять будет орать: "Куда?!!! я ж дату еще не записал!!!"
Пытливый написал: Я настырный, поэтому спрошу еще раз - вот может быть такая ситуация, когда надо скопировать ячейки без заполненного примечания в Р, или примечание пишется всегда
В Р данные вносятся после О, об этом можно предупредить юзера и куда ценней информация в столбце Р
У Вас в коде, как я понял, реализовано это функцией "Вырезать" я правильно понимаю? Дело в том, что к столбцу О применён выпадающий список с сегодняшней датой и при выполнении кода этот список исчезает. Можно ли что-то придумать?
Можно, в принципе, его программно устанавливать после вырезания. Посмотрю, но в понедельник. Хороших выходных. Или еще вариант - повесить процедуру, которая будет бегать и переносить данные из О и Р по всем строкам таблицы, где найдет данные в Р, только запускать ее не по изменению ячейки, а по активации/деакцивации листа, например. Тогда там копирование/очистка не дадут циклического эффекта, как при изменении ячейки, там очистка данных вызывает процедуру из процедуры.