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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнение графика выходов данными из графика отпусков - Страница 3 - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 3 из 3«123
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнение графика выходов данными из графика отпусков (Макросы/Sub)
Заполнение графика выходов данными из графика отпусков
Jester Дата: Понедельник, 29.02.2016, 23:20 | Сообщение № 41
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Большое спасибо Вам за помощь.
 
Ответить
СообщениеБольшое спасибо Вам за помощь.

Автор - Jester
Дата добавления - 29.02.2016 в 23:20
devilkurs Дата: Вторник, 01.03.2016, 14:38 | Сообщение № 42
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 38 ±
Замечаний: 0% ±

Excel 2007, 2010
Добрый день
StoTisteg, Jester

Классное решение StoTisteg B) :D
Не с целью умничать, а ради интереса вопрос: А замечем к листам обращаться по индексу ( Worksheets(1) ) ? Если по какой причине лист передвинуть, или добавить новый лист перед ним, то индекс поменяется. Но чтобы не привязываться к наименованию листа не лучше ли обращаться к имени листа VBA типа Лист1 и т.п.?
И, учитывая что график рабочих большой, чтобы отрабатывала процедура быстрее при переключении месяцев лучше отключать пересчет формул и обновление экрана?

И еще, судя по
[vba]
Код
IIf(Year(DateAdd("m", 1, Cells(1, 17).Value)) = Year(Date), DateAdd("m", 1, Cells(1, 17).Value), Cells(1, 17).Value)
[/vba]
переключиться на следующий год не получится пока системные часы находятся в этом году. А как же строить график на 17 год в конце 16ого.


 
Ответить
СообщениеДобрый день
StoTisteg, Jester

Классное решение StoTisteg B) :D
Не с целью умничать, а ради интереса вопрос: А замечем к листам обращаться по индексу ( Worksheets(1) ) ? Если по какой причине лист передвинуть, или добавить новый лист перед ним, то индекс поменяется. Но чтобы не привязываться к наименованию листа не лучше ли обращаться к имени листа VBA типа Лист1 и т.п.?
И, учитывая что график рабочих большой, чтобы отрабатывала процедура быстрее при переключении месяцев лучше отключать пересчет формул и обновление экрана?

И еще, судя по
[vba]
Код
IIf(Year(DateAdd("m", 1, Cells(1, 17).Value)) = Year(Date), DateAdd("m", 1, Cells(1, 17).Value), Cells(1, 17).Value)
[/vba]
переключиться на следующий год не получится пока системные часы находятся в этом году. А как же строить график на 17 год в конце 16ого.

Автор - devilkurs
Дата добавления - 01.03.2016 в 14:38
Jester Дата: Вторник, 01.03.2016, 14:46 | Сообщение № 43
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
devilkurs, я уже задал этот вопрос и жду ответов :)
 
Ответить
Сообщениеdevilkurs, я уже задал этот вопрос и жду ответов :)

Автор - Jester
Дата добавления - 01.03.2016 в 14:46
Jester Дата: Вторник, 01.03.2016, 14:47 | Сообщение № 44
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Приветствую
 
Ответить
СообщениеПриветствую

Автор - Jester
Дата добавления - 01.03.2016 в 14:47
Jester Дата: Вторник, 01.03.2016, 14:49 | Сообщение № 45
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
И, учитывая что график рабочих большой, чтобы отрабатывала процедура быстрее при переключении месяцев лучше отключать пересчет формул и обновление экрана?


Я уже это сделал. Спасибо Вам. С Вашего кода взял строки :)
 
Ответить
Сообщение
И, учитывая что график рабочих большой, чтобы отрабатывала процедура быстрее при переключении месяцев лучше отключать пересчет формул и обновление экрана?


Я уже это сделал. Спасибо Вам. С Вашего кода взял строки :)

Автор - Jester
Дата добавления - 01.03.2016 в 14:49
devilkurs Дата: Вторник, 01.03.2016, 15:19 | Сообщение № 46
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 38 ±
Замечаний: 0% ±

Excel 2007, 2010
Я бы везде по коду заменил бы
[vba]
Код
With ThisWorkbook.Worksheets(1)
[/vba]
на (какой у вас там лист Отпуска, такую и цифру поставить)
[vba]
Код
With Лист1
[/vba]

Заменить надо с 8 на 9 в макросе ПокраскаГрафика
[vba]
Код
ПервДень = 9 '... то в текущем месяце отпуск начинается с первого числа
[/vba]


 
Ответить
СообщениеЯ бы везде по коду заменил бы
[vba]
Код
With ThisWorkbook.Worksheets(1)
[/vba]
на (какой у вас там лист Отпуска, такую и цифру поставить)
[vba]
Код
With Лист1
[/vba]

Заменить надо с 8 на 9 в макросе ПокраскаГрафика
[vba]
Код
ПервДень = 9 '... то в текущем месяце отпуск начинается с первого числа
[/vba]

Автор - devilkurs
Дата добавления - 01.03.2016 в 15:19
Jester Дата: Вторник, 01.03.2016, 16:06 | Сообщение № 47
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
это решит проблему перехода по годам?
 
Ответить
Сообщениеэто решит проблему перехода по годам?

Автор - Jester
Дата добавления - 01.03.2016 в 16:06
devilkurs Дата: Вторник, 01.03.2016, 16:10 | Сообщение № 48
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 38 ±
Замечаний: 0% ±

Excel 2007, 2010
нет конечно. Это решает
- уход от привязки к индксу
- правильный сдвиг для проставления "ОТ".
По годам думаю


 
Ответить
Сообщениенет конечно. Это решает
- уход от привязки к индксу
- правильный сдвиг для проставления "ОТ".
По годам думаю

Автор - devilkurs
Дата добавления - 01.03.2016 в 16:10
_Boroda_ Дата: Вторник, 01.03.2016, 16:19 | Сообщение № 49
Группа: Модераторы
Ранг: Экселист
Сообщений: 9375
Репутация: 3948 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Поискал последний файл, поискал полный код, ничего не нашел.
Тогда просто в качестве предложения - повесить где-нибудь чекбокс "данные текущего/следующего года" (ну или как-нибудь еще его обозвать) и по значению этого ЧБ добавлять или нет единичку к Year(Date)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПоискал последний файл, поискал полный код, ничего не нашел.
Тогда просто в качестве предложения - повесить где-нибудь чекбокс "данные текущего/следующего года" (ну или как-нибудь еще его обозвать) и по значению этого ЧБ добавлять или нет единичку к Year(Date)

Автор - _Boroda_
Дата добавления - 01.03.2016 в 16:19
Jester Дата: Вторник, 01.03.2016, 17:49 | Сообщение № 50
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Поискал последний файл, поискал полный код, ничего не нашел.


Код на предыдущей странице под спойлером. Там еще замечание модератора.
 
Ответить
Сообщение
Поискал последний файл, поискал полный код, ничего не нашел.


Код на предыдущей странице под спойлером. Там еще замечание модератора.

Автор - Jester
Дата добавления - 01.03.2016 в 17:49
devilkurs Дата: Вторник, 01.03.2016, 17:51 | Сообщение № 51
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 38 ±
Замечаний: 0% ±

Excel 2007, 2010
Работа полный аврал.
Завтра продолжу. Идея есть начал реализовывать. (по идее и работать должно быстрее)


 
Ответить
СообщениеРабота полный аврал.
Завтра продолжу. Идея есть начал реализовывать. (по идее и работать должно быстрее)

Автор - devilkurs
Дата добавления - 01.03.2016 в 17:51
devilkurs Дата: Вторник, 01.03.2016, 18:25 | Сообщение № 52
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 38 ±
Замечаний: 0% ±

Excel 2007, 2010
На скорую руку нарисовал. Честно - не проверял все ли верно разносит!
Посмотрите

_Boroda_, это идея. Я свой алгоритм нарисовал. Можно будет попробовать и алгоритм StoTisteg пошаманить :)
К сообщению приложен файл: 9450246-1-.xlsm(54Kb)




Сообщение отредактировал devilkurs - Вторник, 01.03.2016, 18:28
 
Ответить
СообщениеНа скорую руку нарисовал. Честно - не проверял все ли верно разносит!
Посмотрите

_Boroda_, это идея. Я свой алгоритм нарисовал. Можно будет попробовать и алгоритм StoTisteg пошаманить :)

Автор - devilkurs
Дата добавления - 01.03.2016 в 18:25
Jester Дата: Вторник, 01.03.2016, 18:37 | Сообщение № 53
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
На скорую руку нарисовал. Честно - не проверял все ли верно разносит!
Посмотрите

Да спасибо большое. Только на 1 день ошибается. Т.е. ставит на 1 день больше.
 
Ответить
Сообщение
На скорую руку нарисовал. Честно - не проверял все ли верно разносит!
Посмотрите

Да спасибо большое. Только на 1 день ошибается. Т.е. ставит на 1 день больше.

Автор - Jester
Дата добавления - 01.03.2016 в 18:37
devilkurs Дата: Вторник, 01.03.2016, 18:43 | Сообщение № 54
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 38 ±
Замечаний: 0% ±

Excel 2007, 2010
С телефона пишу
Там где ОтпКонМесГод =dateadd ("d", .....-1,.....) поставьте -1 где я нарисовал
На память тяжело


 
Ответить
СообщениеС телефона пишу
Там где ОтпКонМесГод =dateadd ("d", .....-1,.....) поставьте -1 где я нарисовал
На память тяжело

Автор - devilkurs
Дата добавления - 01.03.2016 в 18:43
Jester Дата: Вторник, 01.03.2016, 18:47 | Сообщение № 55
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
devilkurs, да. все получилось отлично. Спасибо Вам.
 
Ответить
Сообщениеdevilkurs, да. все получилось отлично. Спасибо Вам.

Автор - Jester
Дата добавления - 01.03.2016 в 18:47
Jester Дата: Вторник, 01.03.2016, 18:49 | Сообщение № 56
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, devilkurs, _Boroda_, спасибо Вам за решение. Задача решена.
 
Ответить
СообщениеStoTisteg, devilkurs, _Boroda_, спасибо Вам за решение. Задача решена.

Автор - Jester
Дата добавления - 01.03.2016 в 18:49
StoTisteg Дата: Пятница, 04.03.2016, 02:15 | Сообщение № 57
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
А замечем к листам обращаться по индексу ( Worksheets(1) ) ? Если по какой причине лист передвинуть, или добавить новый лист перед ним, то индекс поменяется

А если лист называется иначе? Та же проблема, только меньше символов :p
По годам думаю

По годам всё гораздо проще, чем казалось. Примерно так. Правда, пересчёт и автообновление действительно лучше отрубить и сделать реалистичное ограничение на длительность отпуска в месяцах, ибо при графике отпусков лет за 10 да по сотне-другой работников тормозить будет не по-детски...
[p.s.]Добавил отключения и ввёл ограничение "больше 5 месяцев не отдыхать". Вроде бы немно ускорилось...
К сообщению приложен файл: 0496701.xlsm(61Kb)


Проверь всё. ThisWorkbook.Save. On Error Resume Next.

Сообщение отредактировал StoTisteg - Пятница, 04.03.2016, 02:39
 
Ответить
Сообщение
А замечем к листам обращаться по индексу ( Worksheets(1) ) ? Если по какой причине лист передвинуть, или добавить новый лист перед ним, то индекс поменяется

А если лист называется иначе? Та же проблема, только меньше символов :p
По годам думаю

По годам всё гораздо проще, чем казалось. Примерно так. Правда, пересчёт и автообновление действительно лучше отрубить и сделать реалистичное ограничение на длительность отпуска в месяцах, ибо при графике отпусков лет за 10 да по сотне-другой работников тормозить будет не по-детски...
[p.s.]Добавил отключения и ввёл ограничение "больше 5 месяцев не отдыхать". Вроде бы немно ускорилось...

Автор - StoTisteg
Дата добавления - 04.03.2016 в 02:15
Jester Дата: Пятница, 11.03.2016, 11:31 | Сообщение № 58
Группа: Пользователи
Ранг: Участник
Сообщений: 51
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, devilkurs, _Boroda_, здравствуйте. С Вашего позволения закончу в этой теме, потому что суть вопроса такая же. Смысл вот в чем. Необходимо сделать последний мазок вашей умелой кистью. А именно дополнить это все автозаполнением дней рождения сотрудников.
[moder]Нет уж, создавайте для ДР новую тему.
И для тех, кто не участвовал в этой, опишите подробнее, что и куда нужно внести.[/moder]
К сообщению приложен файл: 4483415.xlsm(48Kb)


Сообщение отредактировал Manyasha - Пятница, 11.03.2016, 11:45
 
Ответить
СообщениеStoTisteg, devilkurs, _Boroda_, здравствуйте. С Вашего позволения закончу в этой теме, потому что суть вопроса такая же. Смысл вот в чем. Необходимо сделать последний мазок вашей умелой кистью. А именно дополнить это все автозаполнением дней рождения сотрудников.
[moder]Нет уж, создавайте для ДР новую тему.
И для тех, кто не участвовал в этой, опишите подробнее, что и куда нужно внести.[/moder]

Автор - Jester
Дата добавления - 11.03.2016 в 11:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнение графика выходов данными из графика отпусков (Макросы/Sub)
Страница 3 из 3«123
Поиск:

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