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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос по запланированным делам (Макросы/Sub)
Макрос по запланированным делам
Otter Дата: Четверг, 04.06.2015, 17:59 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Всем, Здравствуйте.

Есть идея реализовать активный планировщик дел. Как он должен работать.
Есть текущая неделя с 8 по 14 июня и запланированные события дел на даты напр. 16,19,20 июня. Понятное дело что они не актуальны.
Теперь неделя стала с 15 по 21 июня. Для этого нажмите кнопку "Дата 15.06.15"

Должно произойти следующее.
1 Все дела с датами, которые есть в этой недели должны скопироваться из запланированных ранее на соответствующие места по датам
2 На их места перезаписываются следующие дела вместе с датами.
Для имитации этого процесса есть кнопка "Пример", если непонятно объяснил.

Когда все будет реализовано макросами должно быть так. Нажать на кнопку дата 15.06.15 . После этого произойдет алгоритм актуализации данных, описанный выше. Дела из запланированных перемещаются в актуальные, а на их место перемещаются вместе с датами дела более далекие.
К сообщению приложен файл: 25_.xlsm (21.3 Kb)


Сообщение отредактировал Otter - Четверг, 04.06.2015, 18:03
 
Ответить
СообщениеВсем, Здравствуйте.

Есть идея реализовать активный планировщик дел. Как он должен работать.
Есть текущая неделя с 8 по 14 июня и запланированные события дел на даты напр. 16,19,20 июня. Понятное дело что они не актуальны.
Теперь неделя стала с 15 по 21 июня. Для этого нажмите кнопку "Дата 15.06.15"

Должно произойти следующее.
1 Все дела с датами, которые есть в этой недели должны скопироваться из запланированных ранее на соответствующие места по датам
2 На их места перезаписываются следующие дела вместе с датами.
Для имитации этого процесса есть кнопка "Пример", если непонятно объяснил.

Когда все будет реализовано макросами должно быть так. Нажать на кнопку дата 15.06.15 . После этого произойдет алгоритм актуализации данных, описанный выше. Дела из запланированных перемещаются в актуальные, а на их место перемещаются вместе с датами дела более далекие.

Автор - Otter
Дата добавления - 04.06.2015 в 17:59
AndreTM Дата: Четверг, 04.06.2015, 23:09 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
На самом деле немного не так.
То, что вы показываете - это "интерфейс". Отображение/ввод запланированных событий. Из/в некоей общей базы/списка.
Общий список же событий должен лежать отдельно.
И тогда "нажатие на кнопочку" (или, скажем, выбор даты из календаря) просто приводит к тому, что весь "интерфейс" заполняется данными из "базы". Ну и нажатие на другую кнопочку (или автоматически при изменениях, - ваше дело) записывает данные из текущего отображения - в базу. Представьте, что "фейс" как бы "скользит" по общему списку, отображаясь в зависимости от заданных параметров вывода.
Да и на будущее можно тогда легко масштабировать "интерфейс" - сделать "одна неделя", "две недели - на двту и предыдущая", "две недели - на двту и следующая", или ещё задавать период одного фейса - "неделя", "месяц", "квартал",..
Естественно, при этом не надо думать о каком-либо "архиве" и т.д. - все когда-либо планированные события у вас всегда есть в базе. Кроме того, легко реализуются "повторяющиеся" события планировщика, и т.д.
Также, в качестве правильного подхода к разработке - надо бы сразу предусмотреть промежуточное звено-прослойку при обмене данными между интерфейсом и базой. пусть поначалу это и будут пустые (или вызывающие всего одну команду) процедуры-методы. Тогда в будущем вы всегда сможете легко разделить фейс и базу, например, чтобы написать несколько различных "фейсов" (да хоть чтобы прямо из браузера обращаться можно было, HTML/HTA + VBS/JS вполне позволят), или чтобы моджно было безболезненно переносить "базу" в другие форматы источников данных (под *SQL, например, или вообще в CSV ;) )

Что-то меня заносит...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеНа самом деле немного не так.
То, что вы показываете - это "интерфейс". Отображение/ввод запланированных событий. Из/в некоей общей базы/списка.
Общий список же событий должен лежать отдельно.
И тогда "нажатие на кнопочку" (или, скажем, выбор даты из календаря) просто приводит к тому, что весь "интерфейс" заполняется данными из "базы". Ну и нажатие на другую кнопочку (или автоматически при изменениях, - ваше дело) записывает данные из текущего отображения - в базу. Представьте, что "фейс" как бы "скользит" по общему списку, отображаясь в зависимости от заданных параметров вывода.
Да и на будущее можно тогда легко масштабировать "интерфейс" - сделать "одна неделя", "две недели - на двту и предыдущая", "две недели - на двту и следующая", или ещё задавать период одного фейса - "неделя", "месяц", "квартал",..
Естественно, при этом не надо думать о каком-либо "архиве" и т.д. - все когда-либо планированные события у вас всегда есть в базе. Кроме того, легко реализуются "повторяющиеся" события планировщика, и т.д.
Также, в качестве правильного подхода к разработке - надо бы сразу предусмотреть промежуточное звено-прослойку при обмене данными между интерфейсом и базой. пусть поначалу это и будут пустые (или вызывающие всего одну команду) процедуры-методы. Тогда в будущем вы всегда сможете легко разделить фейс и базу, например, чтобы написать несколько различных "фейсов" (да хоть чтобы прямо из браузера обращаться можно было, HTML/HTA + VBS/JS вполне позволят), или чтобы моджно было безболезненно переносить "базу" в другие форматы источников данных (под *SQL, например, или вообще в CSV ;) )

Что-то меня заносит...

Автор - AndreTM
Дата добавления - 04.06.2015 в 23:09
Otter Дата: Пятница, 05.06.2015, 10:00 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Спасибо за совет. Реализовать ваш совет как и свою идею пока не могу по причине нехватки опыта и знаний. На сегодняшний момент вершина моих умений это тот макрос и кнопки, которые выложил в примере. Я новичок в программировании и форматы CSV и т.п. для меня ни о чем не говорят. как и многое другое. .
Цитата
Кроме того, легко реализуются "повторяющиеся" события планировщика, и т.д.
Вот то что для вас легко реализуется для меня темный лес, потому и прошу помощи раз для вас это легко. Мне очень помог бы кусочек кода, по которому сравниваются две ячейки по дате и если даты совпадают идет команда на соответствующий макрос перенос данных. Макрос могу и сам записать как сделал для кнопки "Пример"

P.S. Извините, что сразу не отвечаю. Есть долг перед больными родителями, а это святое, потому сразу не всегда отвечу.


Сообщение отредактировал Otter - Пятница, 05.06.2015, 10:22
 
Ответить
СообщениеСпасибо за совет. Реализовать ваш совет как и свою идею пока не могу по причине нехватки опыта и знаний. На сегодняшний момент вершина моих умений это тот макрос и кнопки, которые выложил в примере. Я новичок в программировании и форматы CSV и т.п. для меня ни о чем не говорят. как и многое другое. .
Цитата
Кроме того, легко реализуются "повторяющиеся" события планировщика, и т.д.
Вот то что для вас легко реализуется для меня темный лес, потому и прошу помощи раз для вас это легко. Мне очень помог бы кусочек кода, по которому сравниваются две ячейки по дате и если даты совпадают идет команда на соответствующий макрос перенос данных. Макрос могу и сам записать как сделал для кнопки "Пример"

P.S. Извините, что сразу не отвечаю. Есть долг перед больными родителями, а это святое, потому сразу не всегда отвечу.

Автор - Otter
Дата добавления - 05.06.2015 в 10:00
wild_pig Дата: Пятница, 05.06.2015, 14:01 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
вариант
К сообщению приложен файл: 8005858.xlsm (19.2 Kb)
 
Ответить
Сообщениевариант

Автор - wild_pig
Дата добавления - 05.06.2015 в 14:01
Otter Дата: Пятница, 05.06.2015, 18:51 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Спасибо за вариант. В вашем примере получается так : появилось дело на определенную дату и чтобы его записать надо искать нужную дату да еще есть много дат дел на которых просто нет. Например праздники и дни рождения бывают не в каждом месяце и тем более в неделе.

Хочется сделать так:
даты записываются с делами по мере их возникновения. Появилось дело и мы его записываем дата - дело, потом следующая дата-дело и так далее. Даты и дела могут быть абсолютно разными по мере их поступления. Получается набор дат и дел случайный. При желании его можно отсортировать по датам фильтром. Далее приходит неделя актуальная для каких-то дел, и они переписываются в места где совпадают даты на текущей неделе. Все оставшиеся (пока не актуальные для данной недели) дела продвигаются на освободившиеся места и ждут своего времени прихода недели с актуальными датами.


Сообщение отредактировал Otter - Пятница, 05.06.2015, 19:15
 
Ответить
СообщениеСпасибо за вариант. В вашем примере получается так : появилось дело на определенную дату и чтобы его записать надо искать нужную дату да еще есть много дат дел на которых просто нет. Например праздники и дни рождения бывают не в каждом месяце и тем более в неделе.

Хочется сделать так:
даты записываются с делами по мере их возникновения. Появилось дело и мы его записываем дата - дело, потом следующая дата-дело и так далее. Даты и дела могут быть абсолютно разными по мере их поступления. Получается набор дат и дел случайный. При желании его можно отсортировать по датам фильтром. Далее приходит неделя актуальная для каких-то дел, и они переписываются в места где совпадают даты на текущей неделе. Все оставшиеся (пока не актуальные для данной недели) дела продвигаются на освободившиеся места и ждут своего времени прихода недели с актуальными датами.

Автор - Otter
Дата добавления - 05.06.2015 в 18:51
wild_pig Дата: Пятница, 05.06.2015, 23:30 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Появилось дело и мы его записываем

Куда?
Далее приходит неделя актуальная для каких-то дел

Нужно видеть дела только одной недели?
еще есть много дат дел на которых просто нет

В году не так уж много дней. Строкой больше, строкой меньше...
Сделайте нормальное лицо программы, что куда вводить, как должна выглядеть "неделя", какие элементы управления этим добром.
 
Ответить
Сообщение
Появилось дело и мы его записываем

Куда?
Далее приходит неделя актуальная для каких-то дел

Нужно видеть дела только одной недели?
еще есть много дат дел на которых просто нет

В году не так уж много дней. Строкой больше, строкой меньше...
Сделайте нормальное лицо программы, что куда вводить, как должна выглядеть "неделя", какие элементы управления этим добром.

Автор - wild_pig
Дата добавления - 05.06.2015 в 23:30
Otter Дата: Суббота, 06.06.2015, 10:28 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Отвечаю на вопросы. Все ниже сказанное относится к моему файлу из первого сообщения темы.
Допустим текущая неделя с 8 по 14 июня 2015г Все дела по датам с 6 по 14 записываем сразу в этой неделе. А если появились дела: Дело1 на 16 июня, Дело2 на 19 июня и Дело3 на 20 июня, то их записали в таблицу с заголовком "Дела с датами начала более недели" Аналогично поступаем с делами 5,6,7 и т. д. Они записываются ниже в таблице в порядке поступления.

Пришла следующая неделя с 15 по 21 июня 2015г Имитация новой недели нажмите кнопку Дата 15.06.15. Все дела теперь уже прошлой недели с 8 по 14 июня 2015г удаляются так как должны быть выполнены. Что осталось выполнить можно снова запланировать и переписать на настоящую неделю 15 по 21 июня вручную, как будто они снова возникли для текущей недели..

Что делать с делами в таблице "Дела с датами начала более недели"? А вот что. Через функцию ВПР дело1,2 и 3 (помечены желтым) они копируются на текущие даты Дело1 на 16 июня, Дело2 на 19 июня и Дело3 на 20 июня, После копирования они удаляются с таблицы "Дела с датами начала более недели" . На их места переносятся дела 4,5,6,7 и конечно даты сдвигаются вверх ( это даты с 25 по 28 июня). Имитация этого алгоритма происходит после нажатия кнопки "Пример"

Надеюсь объяснил подробно и понятно.

P.S. Это планировщик неординарных или не частых событий. Например такими событиями могут быть дни рождения, даты по напоминанию оплаты ЖКХ и тому подобное. Планировщики дел на день по часам и неделю по всем дням подробно я здесь не рассматриваю так как это другая тема.


Сообщение отредактировал Otter - Суббота, 06.06.2015, 10:29
 
Ответить
СообщениеОтвечаю на вопросы. Все ниже сказанное относится к моему файлу из первого сообщения темы.
Допустим текущая неделя с 8 по 14 июня 2015г Все дела по датам с 6 по 14 записываем сразу в этой неделе. А если появились дела: Дело1 на 16 июня, Дело2 на 19 июня и Дело3 на 20 июня, то их записали в таблицу с заголовком "Дела с датами начала более недели" Аналогично поступаем с делами 5,6,7 и т. д. Они записываются ниже в таблице в порядке поступления.

Пришла следующая неделя с 15 по 21 июня 2015г Имитация новой недели нажмите кнопку Дата 15.06.15. Все дела теперь уже прошлой недели с 8 по 14 июня 2015г удаляются так как должны быть выполнены. Что осталось выполнить можно снова запланировать и переписать на настоящую неделю 15 по 21 июня вручную, как будто они снова возникли для текущей недели..

Что делать с делами в таблице "Дела с датами начала более недели"? А вот что. Через функцию ВПР дело1,2 и 3 (помечены желтым) они копируются на текущие даты Дело1 на 16 июня, Дело2 на 19 июня и Дело3 на 20 июня, После копирования они удаляются с таблицы "Дела с датами начала более недели" . На их места переносятся дела 4,5,6,7 и конечно даты сдвигаются вверх ( это даты с 25 по 28 июня). Имитация этого алгоритма происходит после нажатия кнопки "Пример"

Надеюсь объяснил подробно и понятно.

P.S. Это планировщик неординарных или не частых событий. Например такими событиями могут быть дни рождения, даты по напоминанию оплаты ЖКХ и тому подобное. Планировщики дел на день по часам и неделю по всем дням подробно я здесь не рассматриваю так как это другая тема.

Автор - Otter
Дата добавления - 06.06.2015 в 10:28
Otter Дата: Суббота, 06.06.2015, 10:46 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Вот я немного продвинулся в реализации алгоритма описанного выше. См приложение. Пощелкайте кнопками Дата 8.06.15 и Дата 15.06.15
дела с1 по 3 скопированы на соответствующие даты текущей недели (с15 по21 июня). Теперь нужен макрос, который стирает из таблицы "Дела с датами начала более недели" все дела даты, которых с 15 по 21 июня. Появляются пустые ячейки напротив дат с 15 по 21 июня, и по пустым ячейкам из таблицы "Дела с датами начала более недели" надо удалить строки, тем самым продвигая дела 5.6,7.8 вверх по списку.
К сообщению приложен файл: 25_1.xlsm (21.4 Kb)


Сообщение отредактировал Otter - Суббота, 06.06.2015, 11:04
 
Ответить
СообщениеВот я немного продвинулся в реализации алгоритма описанного выше. См приложение. Пощелкайте кнопками Дата 8.06.15 и Дата 15.06.15
дела с1 по 3 скопированы на соответствующие даты текущей недели (с15 по21 июня). Теперь нужен макрос, который стирает из таблицы "Дела с датами начала более недели" все дела даты, которых с 15 по 21 июня. Появляются пустые ячейки напротив дат с 15 по 21 июня, и по пустым ячейкам из таблицы "Дела с датами начала более недели" надо удалить строки, тем самым продвигая дела 5.6,7.8 вверх по списку.

Автор - Otter
Дата добавления - 06.06.2015 в 10:46
wild_pig Дата: Суббота, 06.06.2015, 11:18 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Сегодня первая неделя года, мне надо на 31 декабря запланировать бал (пьянку), где мне взять эту неделю?
Какой смысл вносить дела и в недельном варианте и в далёком будущем. Можно ведь вносить в одной единственной строке и добавлять в общую базу. А получать выборку на нужный промежуток дат.


Сообщение отредактировал wild_pig - Суббота, 06.06.2015, 11:23
 
Ответить
СообщениеСегодня первая неделя года, мне надо на 31 декабря запланировать бал (пьянку), где мне взять эту неделю?
Какой смысл вносить дела и в недельном варианте и в далёком будущем. Можно ведь вносить в одной единственной строке и добавлять в общую базу. А получать выборку на нужный промежуток дат.

Автор - wild_pig
Дата добавления - 06.06.2015 в 11:18
Otter Дата: Суббота, 06.06.2015, 11:26 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Цитата
Сегодня первая неделя года, мне надо на 31 декабря запланировать бал (пьянку), где мне взять эту неделю?
В таблице "Дела с датами начала более недели" пишем дату 31.12.15 рядом дело "Вечеринка с коллегами". Правда теперь когда появится новое событие например на 8 марта придется в таблицу "Дела с датами начала более недели" вставить новую строку и записать дата 8.03.15 дело " поздравить дам". Теперь в этом году уже две запланированные записи первая дата 8 марта и вторая 31 декабря. Допустим настала неделя со 2 по 8 марта, теперь из таблицы "Дела с датами начала более недели" дело "поздравить дам" копируется на строку текущей недели 8 марта (это будет воскресенье) Строка в таблице "Дела с датами начала более недели" с записью " поздравить дам" удаляется и теперь имеем одно запланированное событие на 31 декабря.
Таблица "Дела с датами начала более недели" заполняется постепенно по мере появления запланированных событий(дел). Очищается таблица с верхних по списку дел, когда они перезаписаны в текущую неделю.
Недели нам не нужны. есть одна текущая неделя и таблица с делами. которые предстоит совершить в будущем. Просто написаны даты и дела.


Сообщение отредактировал Otter - Суббота, 06.06.2015, 11:48
 
Ответить
Сообщение
Цитата
Сегодня первая неделя года, мне надо на 31 декабря запланировать бал (пьянку), где мне взять эту неделю?
В таблице "Дела с датами начала более недели" пишем дату 31.12.15 рядом дело "Вечеринка с коллегами". Правда теперь когда появится новое событие например на 8 марта придется в таблицу "Дела с датами начала более недели" вставить новую строку и записать дата 8.03.15 дело " поздравить дам". Теперь в этом году уже две запланированные записи первая дата 8 марта и вторая 31 декабря. Допустим настала неделя со 2 по 8 марта, теперь из таблицы "Дела с датами начала более недели" дело "поздравить дам" копируется на строку текущей недели 8 марта (это будет воскресенье) Строка в таблице "Дела с датами начала более недели" с записью " поздравить дам" удаляется и теперь имеем одно запланированное событие на 31 декабря.
Таблица "Дела с датами начала более недели" заполняется постепенно по мере появления запланированных событий(дел). Очищается таблица с верхних по списку дел, когда они перезаписаны в текущую неделю.
Недели нам не нужны. есть одна текущая неделя и таблица с делами. которые предстоит совершить в будущем. Просто написаны даты и дела.

Автор - Otter
Дата добавления - 06.06.2015 в 11:26
wild_pig Дата: Суббота, 06.06.2015, 11:43 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Если удалить дела больше недели ВПР не вернёт нужного результата, формулы не копируют.
 
Ответить
СообщениеЕсли удалить дела больше недели ВПР не вернёт нужного результата, формулы не копируют.

Автор - wild_pig
Дата добавления - 06.06.2015 в 11:43
Otter Дата: Суббота, 06.06.2015, 11:51 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Если удалить дела больше недели ВПР не вернёт нужного результата, формулы не копируют.

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


Сообщение отредактировал Otter - Суббота, 06.06.2015, 11:57
 
Ответить
Сообщение
Если удалить дела больше недели ВПР не вернёт нужного результата, формулы не копируют.

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

Автор - Otter
Дата добавления - 06.06.2015 в 11:51
AndreTM Дата: Суббота, 06.06.2015, 11:52 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
есть ... таблица с делами. которые предстоит совершить в будущем. Просто написаны даты и дела.
Вот мы и пришли к "базе" :)
И стоило огород городить?
То есть я, конечно, понимаю, что вы всё никак не можете "для себя, в голове" разделить данные и интерфейс. Но это же не причина, чтобы нарушать все писаные правила разработки приложения для данной предметной области...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
есть ... таблица с делами. которые предстоит совершить в будущем. Просто написаны даты и дела.
Вот мы и пришли к "базе" :)
И стоило огород городить?
То есть я, конечно, понимаю, что вы всё никак не можете "для себя, в голове" разделить данные и интерфейс. Но это же не причина, чтобы нарушать все писаные правила разработки приложения для данной предметной области...

Автор - AndreTM
Дата добавления - 06.06.2015 в 11:52
Otter Дата: Суббота, 06.06.2015, 12:00 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Вот мы и пришли к "базе"
роль базы выполняет таблица дел более недели и база динамическая. Верхние дела удаляются и нижние продвигаются.
Цитата
То есть я, конечно, понимаю, что вы всё никак не можете "для себя, в голове" разделить данные и интерфейс.
Да мне это кажется сложным в реализации. Конечно можно как то решить все проще и по другому. Сам алгоритм я уже описал до мелочей и чего надо сделать понятно любому. По мере появления новых идей и помощи постараюсь его реализовать. Если есть другие варианты более простые или интересные выложите для примера. Может я и изобретаю велосипед а Вы предложите покататься на машине yes
Цитата
Но это же не причина, чтобы нарушать все писаные правила разработки приложения для данной предметной области...
Вот здесь и ожидаю увидеть как можно по правилам разработки реализовать алгоритм с данными и интерфейсом. А меня не ругайте делаю как умею. Я только учусь и правил не знаю.


Сообщение отредактировал Otter - Суббота, 06.06.2015, 12:16
 
Ответить
Сообщение
Вот мы и пришли к "базе"
роль базы выполняет таблица дел более недели и база динамическая. Верхние дела удаляются и нижние продвигаются.
Цитата
То есть я, конечно, понимаю, что вы всё никак не можете "для себя, в голове" разделить данные и интерфейс.
Да мне это кажется сложным в реализации. Конечно можно как то решить все проще и по другому. Сам алгоритм я уже описал до мелочей и чего надо сделать понятно любому. По мере появления новых идей и помощи постараюсь его реализовать. Если есть другие варианты более простые или интересные выложите для примера. Может я и изобретаю велосипед а Вы предложите покататься на машине yes
Цитата
Но это же не причина, чтобы нарушать все писаные правила разработки приложения для данной предметной области...
Вот здесь и ожидаю увидеть как можно по правилам разработки реализовать алгоритм с данными и интерфейсом. А меня не ругайте делаю как умею. Я только учусь и правил не знаю.

Автор - Otter
Дата добавления - 06.06.2015 в 12:00
wild_pig Дата: Суббота, 06.06.2015, 12:21 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Дата, которую ищем, будет всегда первой при загрузке в "неделю"?
 
Ответить
СообщениеДата, которую ищем, будет всегда первой при загрузке в "неделю"?

Автор - wild_pig
Дата добавления - 06.06.2015 в 12:21
AndreTM Дата: Суббота, 06.06.2015, 12:34 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Верхние дела удаляются и нижние продвигаются
А если я "случайно" продвинусь вперед, и верхние дела дела "уйдут выше" и сотрутся - и всё, назад возврата нет...
Нет, конечно, придуманный вами "недельник" имеет право на жизнь. FIFO-стек с DropOut, так сказать :)
Вот только, опять же, реализация отображения никуда не годится. Я же намекаю - попробуйте разделить "таблицу с делами" и "показ нужной недели", не воспринимайте их единым целым, не смешивайте хранение данных с их отображением. То есть "вид недели" у вас должен только показывать, что в "таблице дел" есть такие записи, но никак не "хранить" данные о таких записях (что происходит у вас, когда вы именно записываете данные в "неделю" и удаляете их из "таблицы"). Поверьте, в таком случае "рисовать неделю" будет намного проще, ну и, как я уже упоминал выше, можно будет, почти не задумываясь, прикручивать новые возможности. Хотя бы "<-неделя назад , неделя вперед->", или переход к определенной дате...

А написать что-то я вам, конечно, могу - но будет ли для вас смысл просто в разборе чужого произведения? Ведь если напишу я - то и реализую те алгоритмы, что вижу я, а не то, что придумали вы. нет, я могу, конечно, реализовать и ваш алгоритм. Внешне. А внутренне - все равно мне будет проще сделать тот же мой алгоритм, но дополнить его по поводу "урезать прошедшие события" :)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
Верхние дела удаляются и нижние продвигаются
А если я "случайно" продвинусь вперед, и верхние дела дела "уйдут выше" и сотрутся - и всё, назад возврата нет...
Нет, конечно, придуманный вами "недельник" имеет право на жизнь. FIFO-стек с DropOut, так сказать :)
Вот только, опять же, реализация отображения никуда не годится. Я же намекаю - попробуйте разделить "таблицу с делами" и "показ нужной недели", не воспринимайте их единым целым, не смешивайте хранение данных с их отображением. То есть "вид недели" у вас должен только показывать, что в "таблице дел" есть такие записи, но никак не "хранить" данные о таких записях (что происходит у вас, когда вы именно записываете данные в "неделю" и удаляете их из "таблицы"). Поверьте, в таком случае "рисовать неделю" будет намного проще, ну и, как я уже упоминал выше, можно будет, почти не задумываясь, прикручивать новые возможности. Хотя бы "<-неделя назад , неделя вперед->", или переход к определенной дате...

А написать что-то я вам, конечно, могу - но будет ли для вас смысл просто в разборе чужого произведения? Ведь если напишу я - то и реализую те алгоритмы, что вижу я, а не то, что придумали вы. нет, я могу, конечно, реализовать и ваш алгоритм. Внешне. А внутренне - все равно мне будет проще сделать тот же мой алгоритм, но дополнить его по поводу "урезать прошедшие события" :)

Автор - AndreTM
Дата добавления - 06.06.2015 в 12:34
Otter Дата: Суббота, 06.06.2015, 12:44 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Дата, которую ищем, будет всегда первой при загрузке в "неделю"?
Да первые 7 дат из таблицы "Дела с датами начала более недели" проверяются на сравнение с текущей неделей. Все дела даты которых совпадают копируются в текущую. максимум может быть 7 дел для каждого дня текущей недели одно дело. Понажимайте кнопки с датами в моем файле 25_1 (файл есть в приложении одного из предыдущих моих сообщений)
Цитата
А если я "случайно" продвинусь вперед
Такого по определению быть не может. Сейчас идет отработка дейстыия алгоритма переноса дел а потом в автомате будут меняться одни недели за другими. Те дела котрве сделаны можно удалять( например дни рождения и вечеринки второй раз в текущем году не будут)
Цитата
верхние дела дела "уйдут выше" и сотрутся - и всё, назад возврата нет...
Если сомневаетесь в каком-то деле, что выполните его сразу никто не мешает его продублировать на всякий случай на дату через неделю позже в таблицу "Дела с датами начала более недели"
Цитата
Я же намекаю - попробуйте разделить "таблицу с делами" и "показ нужной недели"
Для этого я сделаю кнопку скрыть/показать дела планируемые. Нужно записать дело - нажали кнопку появилась таблица для записи. Записали дату и дело, щелкнули кнопку и таблица свернулась а перед нами только настоящая неделя с текущими делами.


Сообщение отредактировал Otter - Суббота, 06.06.2015, 13:05
 
Ответить
Сообщение
Дата, которую ищем, будет всегда первой при загрузке в "неделю"?
Да первые 7 дат из таблицы "Дела с датами начала более недели" проверяются на сравнение с текущей неделей. Все дела даты которых совпадают копируются в текущую. максимум может быть 7 дел для каждого дня текущей недели одно дело. Понажимайте кнопки с датами в моем файле 25_1 (файл есть в приложении одного из предыдущих моих сообщений)
Цитата
А если я "случайно" продвинусь вперед
Такого по определению быть не может. Сейчас идет отработка дейстыия алгоритма переноса дел а потом в автомате будут меняться одни недели за другими. Те дела котрве сделаны можно удалять( например дни рождения и вечеринки второй раз в текущем году не будут)
Цитата
верхние дела дела "уйдут выше" и сотрутся - и всё, назад возврата нет...
Если сомневаетесь в каком-то деле, что выполните его сразу никто не мешает его продублировать на всякий случай на дату через неделю позже в таблицу "Дела с датами начала более недели"
Цитата
Я же намекаю - попробуйте разделить "таблицу с делами" и "показ нужной недели"
Для этого я сделаю кнопку скрыть/показать дела планируемые. Нужно записать дело - нажали кнопку появилась таблица для записи. Записали дату и дело, щелкнули кнопку и таблица свернулась а перед нами только настоящая неделя с текущими делами.

Автор - Otter
Дата добавления - 06.06.2015 в 12:44
AndreTM Дата: Суббота, 06.06.2015, 13:05 | Сообщение № 18
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
в автомате будут меняться одни недели за другими
Ух ты как :)
А если у меня на компе дата "случайно" выставится на 01.01.2020? И всё - абзац котёнку...
Вы так не шутите с пользователем.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
в автомате будут меняться одни недели за другими
Ух ты как :)
А если у меня на компе дата "случайно" выставится на 01.01.2020? И всё - абзац котёнку...
Вы так не шутите с пользователем.

Автор - AndreTM
Дата добавления - 06.06.2015 в 13:05
Otter Дата: Суббота, 06.06.2015, 13:34 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
А если у меня на компе дата "случайно" выставится на 01.01.2020? И всё - абзац котёнку...
Хороший вопрос. Отвечаю так. Должны иметь всегда копии файлов в резерве. Ведь может не только дата перескочить но и комп сгореть. А перед запуском убедитесь, что на данный момент выставлена текущая дата и все будет Ок. В моей практике за 10 лет работы не могу припомнить чтоб даты сами перескакивали yes Если у Вас сами даты скачут можете не автоматом недели переводить а по кнопке, когда реально вам нужно поменять неделю. Заодно и убедитесь что даты именно те, которые нужны. И наконец как вариант можете поставить фильтр по вводу дат и даты, которые не попадут например в 2015 год будут проигнорированы.
Цитата
конечно, придуманный вами "недельник" имеет право на жизнь. FIFO-стек с DropOut, так сказать
Дык я уверен что моя идея понравится. Кому не нравиться выложите свои продвинутые варианты и покажите, что можно сделать проще, красивей и т.п.


Сообщение отредактировал Otter - Суббота, 06.06.2015, 13:45
 
Ответить
Сообщение
А если у меня на компе дата "случайно" выставится на 01.01.2020? И всё - абзац котёнку...
Хороший вопрос. Отвечаю так. Должны иметь всегда копии файлов в резерве. Ведь может не только дата перескочить но и комп сгореть. А перед запуском убедитесь, что на данный момент выставлена текущая дата и все будет Ок. В моей практике за 10 лет работы не могу припомнить чтоб даты сами перескакивали yes Если у Вас сами даты скачут можете не автоматом недели переводить а по кнопке, когда реально вам нужно поменять неделю. Заодно и убедитесь что даты именно те, которые нужны. И наконец как вариант можете поставить фильтр по вводу дат и даты, которые не попадут например в 2015 год будут проигнорированы.
Цитата
конечно, придуманный вами "недельник" имеет право на жизнь. FIFO-стек с DropOut, так сказать
Дык я уверен что моя идея понравится. Кому не нравиться выложите свои продвинутые варианты и покажите, что можно сделать проще, красивей и т.п.

Автор - Otter
Дата добавления - 06.06.2015 в 13:34
Otter Дата: Суббота, 06.06.2015, 14:04 | Сообщение № 20
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Для этого я сделаю кнопку скрыть/показать дела планируемые. Нужно записать дело - нажали кнопку появилась таблица для записи. Записали дату и дело, щелкнули кнопку и таблица свернулась а перед нами только настоящая неделя с текущими делами.
Хотел реализовать, но где то ошибка в коде. Помогите подправить, чтоб двигаться дальше. Вот код[vba]
Код
Sub Knopka_Показать()
     Dim st As Boolean
     If st Then
         Rows("12:25").Select
         Selection.EntireRow.Hidden = True
         st = False
         Application.ScreenUpdating = False 'отключает обновление экрана.
         ActiveSheet.Shapes("knop").TextFrame.Characters.Text = "Показать"
     Else
         Rows("12:25").Select
         Selection.EntireRow.Hidden = False
         st = True
         ActiveSheet.Shapes("knop").TextFrame.Characters.Text = "Скрыть"
     End If
     Application.ScreenUpdating = True 'включает обновление экрана.
     Range("E11").Select
End Sub
[/vba] Сам файл в приложении.
К сообщению приложен файл: 25_2.xlsm (22.7 Kb)


Сообщение отредактировал Otter - Суббота, 06.06.2015, 14:07
 
Ответить
Сообщение
Для этого я сделаю кнопку скрыть/показать дела планируемые. Нужно записать дело - нажали кнопку появилась таблица для записи. Записали дату и дело, щелкнули кнопку и таблица свернулась а перед нами только настоящая неделя с текущими делами.
Хотел реализовать, но где то ошибка в коде. Помогите подправить, чтоб двигаться дальше. Вот код[vba]
Код
Sub Knopka_Показать()
     Dim st As Boolean
     If st Then
         Rows("12:25").Select
         Selection.EntireRow.Hidden = True
         st = False
         Application.ScreenUpdating = False 'отключает обновление экрана.
         ActiveSheet.Shapes("knop").TextFrame.Characters.Text = "Показать"
     Else
         Rows("12:25").Select
         Selection.EntireRow.Hidden = False
         st = True
         ActiveSheet.Shapes("knop").TextFrame.Characters.Text = "Скрыть"
     End If
     Application.ScreenUpdating = True 'включает обновление экрана.
     Range("E11").Select
End Sub
[/vba] Сам файл в приложении.

Автор - Otter
Дата добавления - 06.06.2015 в 14:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос по запланированным делам (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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