powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос для поиска на листе данных, расчёт и перенос результата на другой лист
2 сообщений из 2, страница 1 из 1
Макрос для поиска на листе данных, расчёт и перенос результата на другой лист
    #39966930
Alex99099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Прошу помощи в написании макроса.

В книге на листе 1 есть таблица с данными, столбцы по датам (каждый понедельник года) и столбцы с другой информацией.

Необходимо на листе 1 находить поочередно строки с заполненным столбцом "номер". Если такая строка найдена, то необходимо провести с этой строкой действия. В этой строке (в столбцах по датам) будут заполнены некоторые ячейки с числом (число означает количество дней отсутствия в неделе). Эти ячейки могут быть как одна заполненная, так и несколько подряд, (что говорит об отсутствии на промежуток более недели), что одна заполненная ячейка (т.е. слева и справа пустые ячейки), что две( или три подряд) заполненные ячейки подряд (т.е. слева от первой ячейки пусто во 2й заполнено в 3й заполнено в 4й пусто) это период. Т.е. отдельно стоящая ячейка это один период, несколько подряд заполненных ячеек это следующий период.

Каждый из этих периодов должен быть записан на лист 2 отдельной строкой. Каким образом: если в строке, в которой столбец "номер" заполнен, и найдена заполненная ячейка ( т.е. "начало периода"), то макрос должен скопировать ячейки этой строки 1,2,3,4,5 столбцов в соответствующую строку листа 2, и заполнить дату начала периода и дату окончания (как заполняется дата окончания описано выше). Далее, если в это строке (которую мы нашли, в которой заполнена ячейка "номер") есть ещё один "период отсутствия" (периодов у каждого "номера" может быть несколько), то на листе 2 заполняем следующую строку по аналогии с первой (т.е. у каждого периода будет своя строка, с одинаковыми данными, но разным периодом).

После того, как строка проверена, и "периодов" больше не найдено, переходим к следующей строке, в которой столбец "номер" заполнен. И повторяем действия как с первой строкой.

Количество строк, с заполненной ячейкой "номер" на листе, зависит от количества периодов в каждой строке.

Т.е. получится: у сотрудника с "номером" есть несколько периодов отсутствия, и каждый этот период должен быть записан на новом листе отдельной строкой.

Как посчитать начало периода: (дата+(7-n)) где "n" число в заполненной ячейке, "дата" - значение ячейки в первой строке таблицы листа 1 столбца в котором найдена заполненная ячейка, "7" - количество дней недели

Как посчитать окончание периода: ((дата начала периода+m)-1), где "m" - сумма подряд заполненных ячеек (если только одна заполненная ячейка то только её значение), "дата" - значение начала периода, которое ранее выло посчитано, "-1"- для подсчета точного окончания периода


Спасибо
...
Рейтинг: 0 / 0
Макрос для поиска на листе данных, расчёт и перенос результата на другой лист
    #39966980
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а нужен ли тут макрос? Вы формулами разве от границы начала недели не можете это посчитать? Ведь в неделе всегда 7 дней.
Формула ДЕНЬНЕД() вам поможет.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос для поиска на листе данных, расчёт и перенос результата на другой лист
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]