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

Вход

Регистрация

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

 

= Мир MS Excel/Outlook - создание задач из Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: _Boroda_, китин  
Outlook - создание задач из Excel
Rioran Дата: Среда, 02.07.2014, 16:04 | Сообщение № 1
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Всем привет и хорошего настроения!

Один из вопросов на форуме подтолкнул меня к более развёрнутому решению, нежели запрашивалось пользователем =)

Макрос во вложении позволяет из ячеек подготовленной таблицы Excel создавать задачи в Outlook автоматически. Кнопка справа от таблицы.

Для корректной работы макроса надо заполнить имеющиеся в таблице поля. Строки должны идти подряд друг за другом, без пробелов. Особенность - в графу "напомнить в Х часов" надо вводить целое число, как и в графу по минутам. Заранее настроил возможность ввода только корректных значений.

И пусть работать Вам станет легче! :D

[vba]
Код
Sub OutTask_Manager()

'Автоматическое добавление задач в Outlook
'Сделал Роман "Rioran" Воронов (voronov_rv@mail.ru)
'Для пользователей форума www.excelworld.ru

Dim OutApp As Object 'Для обращений к приложению Outlook
Dim OutTsk As Object 'Для создания задачи в Outlook
Dim shtX As Worksheet 'Для обращения к конкретному листу
Dim X As Long 'Для перебора создаваемых задач

Set shtX = ThisWorkbook.Worksheets("Задачник")
X = 2

Do While shtX.Cells(X, 1).Value <> 0

             Set OutApp = CreateObject("Outlook.Application")
             Set OutTsk = OutApp.CreateItem(3)
                   
             With OutTsk
                    .Subject = shtX.Cells(X, 1).Value 'Заголовок задачи
                    .Body = shtX.Cells(X, 2).Value 'Текст задачи
                    .ReminderSet = True 'Включить напоминание
                          
                    Select Case shtX.Cells(X, 3).Value 'Выбираем важность
                           Case "Низкая": .Importance = 0
                           Case "Обычная": .Importance = 1
                           Case "Высокая": .Importance = 2
                    End Select
                          
                    .StartDate = DateAdd("h", 10, shtX.Cells(X, 4).Value) 'Когда начать задачу
                    .DueDate = DateAdd("h", 10, shtX.Cells(X, 5).Value) 'Дата завершения
                    .ReminderTime = DateAdd("n", shtX.Cells(X, 7).Value * 60 + shtX.Cells(X, 8).Value, shtX.Cells(X, 6).Value) 'Дата напоминания
                    .Save
             End With
             X = X + 1
Loop

Set OutApp = Nothing
Set OutTsk = Nothing

End Sub
[/vba]
К сообщению приложен файл: Outlook_Task.xlsm (33.6 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Четверг, 03.07.2014, 09:40
 
Ответить
СообщениеВсем привет и хорошего настроения!

Один из вопросов на форуме подтолкнул меня к более развёрнутому решению, нежели запрашивалось пользователем =)

Макрос во вложении позволяет из ячеек подготовленной таблицы Excel создавать задачи в Outlook автоматически. Кнопка справа от таблицы.

Для корректной работы макроса надо заполнить имеющиеся в таблице поля. Строки должны идти подряд друг за другом, без пробелов. Особенность - в графу "напомнить в Х часов" надо вводить целое число, как и в графу по минутам. Заранее настроил возможность ввода только корректных значений.

И пусть работать Вам станет легче! :D

[vba]
Код
Sub OutTask_Manager()

'Автоматическое добавление задач в Outlook
'Сделал Роман "Rioran" Воронов (voronov_rv@mail.ru)
'Для пользователей форума www.excelworld.ru

Dim OutApp As Object 'Для обращений к приложению Outlook
Dim OutTsk As Object 'Для создания задачи в Outlook
Dim shtX As Worksheet 'Для обращения к конкретному листу
Dim X As Long 'Для перебора создаваемых задач

Set shtX = ThisWorkbook.Worksheets("Задачник")
X = 2

Do While shtX.Cells(X, 1).Value <> 0

             Set OutApp = CreateObject("Outlook.Application")
             Set OutTsk = OutApp.CreateItem(3)
                   
             With OutTsk
                    .Subject = shtX.Cells(X, 1).Value 'Заголовок задачи
                    .Body = shtX.Cells(X, 2).Value 'Текст задачи
                    .ReminderSet = True 'Включить напоминание
                          
                    Select Case shtX.Cells(X, 3).Value 'Выбираем важность
                           Case "Низкая": .Importance = 0
                           Case "Обычная": .Importance = 1
                           Case "Высокая": .Importance = 2
                    End Select
                          
                    .StartDate = DateAdd("h", 10, shtX.Cells(X, 4).Value) 'Когда начать задачу
                    .DueDate = DateAdd("h", 10, shtX.Cells(X, 5).Value) 'Дата завершения
                    .ReminderTime = DateAdd("n", shtX.Cells(X, 7).Value * 60 + shtX.Cells(X, 8).Value, shtX.Cells(X, 6).Value) 'Дата напоминания
                    .Save
             End With
             X = X + 1
Loop

Set OutApp = Nothing
Set OutTsk = Nothing

End Sub
[/vba]

Автор - Rioran
Дата добавления - 02.07.2014 в 16:04
Alterak Дата: Четверг, 03.07.2014, 08:47 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Огромное спасибо, только при вставке новой строки и добавлении записи создается очередное событие из первой записи-(
 
Ответить
СообщениеОгромное спасибо, только при вставке новой строки и добавлении записи создается очередное событие из первой записи-(

Автор - Alterak
Дата добавления - 03.07.2014 в 08:47
Rioran Дата: Четверг, 03.07.2014, 09:40 | Сообщение № 3
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Alterak, старые записи тогда удаляйте. Этот файл может загружать очень много задач сразу, следить чтобы они все были новые - это уже компетенция пользователя. *9:50 - хотя можно написать код, который проверяет существующие задачи по заголовку. Но для меня это уже тянет не на спортивную, а на рабочую разработку под заказ*

Выложил файл повторно - добавил кнопку очистки. Убирает все задачи долой с экрана.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Четверг, 03.07.2014, 09:52
 
Ответить
СообщениеAlterak, старые записи тогда удаляйте. Этот файл может загружать очень много задач сразу, следить чтобы они все были новые - это уже компетенция пользователя. *9:50 - хотя можно написать код, который проверяет существующие задачи по заголовку. Но для меня это уже тянет не на спортивную, а на рабочую разработку под заказ*

Выложил файл повторно - добавил кнопку очистки. Убирает все задачи долой с экрана.

Автор - Rioran
Дата добавления - 03.07.2014 в 09:40
Alterak Дата: Четверг, 03.07.2014, 10:15 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Rioran, Да вот в том то и дело что старые записи удалять не нужно... есть файл, в котором ежедневно дополняются пару десятков записей, в каждой записи ставится дата, иногда одна и та же дата, вот пользователь и хотел что бы в указанную дату появлялась напоминалка.
 
Ответить
СообщениеRioran, Да вот в том то и дело что старые записи удалять не нужно... есть файл, в котором ежедневно дополняются пару десятков записей, в каждой записи ставится дата, иногда одна и та же дата, вот пользователь и хотел что бы в указанную дату появлялась напоминалка.

Автор - Alterak
Дата добавления - 03.07.2014 в 10:15
Rioran Дата: Четверг, 03.07.2014, 10:33 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Alterak, ок, вернёмся к обсуждению Вашего конкретного случая в Вашу изначальную тему.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеAlterak, ок, вернёмся к обсуждению Вашего конкретного случая в Вашу изначальную тему.

Автор - Rioran
Дата добавления - 03.07.2014 в 10:33
happinesss123 Дата: Среда, 12.11.2014, 14:57 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Alterak, Добрый день!
Вы получили какой-то ответ на свой запрос? у меня точно такая же задача, помогите, пожалуйста!
 
Ответить
СообщениеAlterak, Добрый день!
Вы получили какой-то ответ на свой запрос? у меня точно такая же задача, помогите, пожалуйста!

Автор - happinesss123
Дата добавления - 12.11.2014 в 14:57
nika Дата: Вторник, 18.11.2014, 20:08 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 43
Репутация: 0 ±
Замечаний: 0% ±

2010
Rioran, Добрый вечер!
А можно ли создать макрос для календаря Outlook (со всеми параметрами ввода).
 
Ответить
СообщениеRioran, Добрый вечер!
А можно ли создать макрос для календаря Outlook (со всеми параметрами ввода).

Автор - nika
Дата добавления - 18.11.2014 в 20:08
Rioran Дата: Вторник, 18.11.2014, 21:17 | Сообщение № 8
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
nika, здравствуйте.

Создайте тему в разделе "Ексель и другие приложения", опишите подробно что должна делать программа и мы с форумчанами посмотрим, что можно сделать =)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеnika, здравствуйте.

Создайте тему в разделе "Ексель и другие приложения", опишите подробно что должна делать программа и мы с форумчанами посмотрим, что можно сделать =)

Автор - Rioran
Дата добавления - 18.11.2014 в 21:17
Gustav Дата: Воскресенье, 23.11.2014, 21:49 | Сообщение № 9
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
[offtop]
По коду сообщения № 1.
Наверное, Set OutApp = CreateObject("Outlook.Application") вполне достаточно перед циклом (один раз) выполнить.
А Set OutTsk = Nothing, наоборот, концептуальнее в цикл включить и делать на каждом шаге.
В любом случае "носинговать" "бест практичнее" в порядке, обратном созданию: сначала OutTsk, потом OutApp.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение[offtop]
По коду сообщения № 1.
Наверное, Set OutApp = CreateObject("Outlook.Application") вполне достаточно перед циклом (один раз) выполнить.
А Set OutTsk = Nothing, наоборот, концептуальнее в цикл включить и делать на каждом шаге.
В любом случае "носинговать" "бест практичнее" в порядке, обратном созданию: сначала OutTsk, потом OutApp.

Автор - Gustav
Дата добавления - 23.11.2014 в 21:49
Rioran Дата: Понедельник, 24.11.2014, 12:06 | Сообщение № 10
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Gustav, что за скромность - это не оффтоп, а всё по делу сказано =) Так и надо будет сделать.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеGustav, что за скромность - это не оффтоп, а всё по делу сказано =) Так и надо будет сделать.

Автор - Rioran
Дата добавления - 24.11.2014 в 12:06
happinesss123 Дата: Понедельник, 24.11.2014, 12:22 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Alterak, Rioran, уважаемые господа)))) а мне то может кто-нибудь ответит?)) плиз))) у меня задача точь в точь как у Alterak, есть в итоге готовое решение?
 
Ответить
СообщениеAlterak, Rioran, уважаемые господа)))) а мне то может кто-нибудь ответит?)) плиз))) у меня задача точь в точь как у Alterak, есть в итоге готовое решение?

Автор - happinesss123
Дата добавления - 24.11.2014 в 12:22
Rioran Дата: Понедельник, 24.11.2014, 17:22 | Сообщение № 12
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
happinesss123, здравствуйте.

Если поиск не помог, то Вам необходимо создать свою тему в разделе "Excel и другие приложения" с соблюдением правил раздела.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеhappinesss123, здравствуйте.

Если поиск не помог, то Вам необходимо создать свою тему в разделе "Excel и другие приложения" с соблюдением правил раздела.

Автор - Rioran
Дата добавления - 24.11.2014 в 17:22
jscd Дата: Четверг, 19.03.2015, 16:28 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Подскажите, пожалуйста, есть ли способ назначать задачи другим пользователям?
Например, при отправке обычного письма указывается просто .To = "email.address". Можно ли аналогично указать "адресата" задачи?
Спасибо.
 
Ответить
СообщениеДобрый день.
Подскажите, пожалуйста, есть ли способ назначать задачи другим пользователям?
Например, при отправке обычного письма указывается просто .To = "email.address". Можно ли аналогично указать "адресата" задачи?
Спасибо.

Автор - jscd
Дата добавления - 19.03.2015 в 16:28
Rioran Дата: Четверг, 19.03.2015, 17:26 | Сообщение № 14
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
jscd, здравствуйте.

К сожалению, сейчас нет времени дорабатывать своё решение. Но зацепку с удовольствием дам.

Следующий код можно найти через автономную справку Outlook VBA-редактора. Внутри мои комментарии, это более чем достаточно, чтобы совместить с моим решением.

[vba]
Код
Sub AssignTask()

Dim myItem As Outlook.TaskItem 'Для создания задачи
Dim myDelegate As Outlook.Recipient 'Для добавления исполнителя

Set myItem = Application.CreateItem(olTaskItem) 'Создаётся задача
myItem.Assign 'Возводит задачу в ранг запроса к пользователям (TaskRequestItem)
Set myDelegate = myItem.Recipients.Add("Dan Wilson") 'Добавляется исполнитель
myDelegate.Resolve 'Проверяет, может ли указанный исполнитель получить задачу (корректно ли указано имя или адрес)

'Если исполнитель успешно добавлен, то готовим задачу
If myDelegate.Resolved Then
     myItem.Subject = "Prepare Agenda For Meeting"
     myItem.DueDate = Now + 30
     myItem.Display
     myItem.Send
End If

End Sub
[/vba]


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеjscd, здравствуйте.

К сожалению, сейчас нет времени дорабатывать своё решение. Но зацепку с удовольствием дам.

Следующий код можно найти через автономную справку Outlook VBA-редактора. Внутри мои комментарии, это более чем достаточно, чтобы совместить с моим решением.

[vba]
Код
Sub AssignTask()

Dim myItem As Outlook.TaskItem 'Для создания задачи
Dim myDelegate As Outlook.Recipient 'Для добавления исполнителя

Set myItem = Application.CreateItem(olTaskItem) 'Создаётся задача
myItem.Assign 'Возводит задачу в ранг запроса к пользователям (TaskRequestItem)
Set myDelegate = myItem.Recipients.Add("Dan Wilson") 'Добавляется исполнитель
myDelegate.Resolve 'Проверяет, может ли указанный исполнитель получить задачу (корректно ли указано имя или адрес)

'Если исполнитель успешно добавлен, то готовим задачу
If myDelegate.Resolved Then
     myItem.Subject = "Prepare Agenda For Meeting"
     myItem.DueDate = Now + 30
     myItem.Display
     myItem.Send
End If

End Sub
[/vba]

Автор - Rioran
Дата добавления - 19.03.2015 в 17:26
jscd Дата: Четверг, 19.03.2015, 18:05 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Rioran, спасибо.
На самом деле, свою задачу уже решил (как раз с использованием приведенного примера) и зашел, чтобы себе же и ответить:)
Очень много времени потратил на поиск хоть какого-то описания TaskRequestItem, но так и не нашел. Не поясните следующий момент - реквест нельзя создать как отдельный объект? Он получается только назначением TaskItem другому пользователю?
И еще один интересный момент .Add("Dan Wilson"). Порадовало, что можно указывать и почтовый адрес, и имя контакта. Но не совсем понятно что произойдет, если есть два контакта с одним именем, но разными адресами. Resolve как-то решит эту ситуацию или задачи уйдут сразу всем?
 
Ответить
СообщениеRioran, спасибо.
На самом деле, свою задачу уже решил (как раз с использованием приведенного примера) и зашел, чтобы себе же и ответить:)
Очень много времени потратил на поиск хоть какого-то описания TaskRequestItem, но так и не нашел. Не поясните следующий момент - реквест нельзя создать как отдельный объект? Он получается только назначением TaskItem другому пользователю?
И еще один интересный момент .Add("Dan Wilson"). Порадовало, что можно указывать и почтовый адрес, и имя контакта. Но не совсем понятно что произойдет, если есть два контакта с одним именем, но разными адресами. Resolve как-то решит эту ситуацию или задачи уйдут сразу всем?

Автор - jscd
Дата добавления - 19.03.2015 в 18:05
jscd Дата: Четверг, 19.03.2015, 18:13 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
На всякий случай оставлю пример с назначением уведомлений другому пользователю.
К сообщению приложен файл: 1680533.xlsm (30.7 Kb)
 
Ответить
СообщениеНа всякий случай оставлю пример с назначением уведомлений другому пользователю.

Автор - jscd
Дата добавления - 19.03.2015 в 18:13
Rioran Дата: Пятница, 20.03.2015, 10:17 | Сообщение № 17
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
По пунктам:

1). TaskRequestItem - информация есть на официальном сайте Microsoft на английском языке. Там говорится, что объект TaskRequestItem обозначает объект во ВХОДЯЩЕЙ почтовой папке. Объект TaskRequestItem характеризует изменения в списке задач пользователя, проводимые другой стороной или в результате групповой работы с задачами.

В отличие от других объектов Microsoft Outlook, этот создать невозможно. Объект TaskRequestItem появляется только после применения методов .Assign и .Send к уже знакомому нам TaskItem (он же нумер 3) при назначении задачи другому пользователю. И только после того, как задача была получена конечным пользователем.

Из текста оригинала:


2). Если есть два контакта с одинаковым именем? Лично не встречал такой ситуации. Во всех компаниях, где я был, дубли связок Имя + Фамилия либо дополнялись инициалами, либо писались разными алфавитами (рус / анг). В связи с чем я не уверен, что создание двух одинаковых имен принципиально возможно. Предлагаю Вам протестировать.

3). И уже предложение от меня =) Набираюсь наглости и предлагаю Вам (если, конечно, есть интерес и время на упражнения) ещё больше доработать мой код. А конкретно сделать следующее:

- Добавить столбец с указанием имени получателя задачи.
- Добавить макрос на кнопке (а в идеале на горячей клавише), который при нажатии копирует строкой ниже последнюю строку таблицы, но с пустой ячейкой в столбце "Имя получателя".
- При работе макроса если подряд идут одинаковые строки с разными получателями - задача создаётся только одна, но на всех пользователей.
- Если в столбце "Имя получателя" пусто - создаётся отдельная задача на запускающем макрос.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Пятница, 20.03.2015, 10:23
 
Ответить
СообщениеПо пунктам:

1). TaskRequestItem - информация есть на официальном сайте Microsoft на английском языке. Там говорится, что объект TaskRequestItem обозначает объект во ВХОДЯЩЕЙ почтовой папке. Объект TaskRequestItem характеризует изменения в списке задач пользователя, проводимые другой стороной или в результате групповой работы с задачами.

В отличие от других объектов Microsoft Outlook, этот создать невозможно. Объект TaskRequestItem появляется только после применения методов .Assign и .Send к уже знакомому нам TaskItem (он же нумер 3) при назначении задачи другому пользователю. И только после того, как задача была получена конечным пользователем.

Из текста оригинала:


2). Если есть два контакта с одинаковым именем? Лично не встречал такой ситуации. Во всех компаниях, где я был, дубли связок Имя + Фамилия либо дополнялись инициалами, либо писались разными алфавитами (рус / анг). В связи с чем я не уверен, что создание двух одинаковых имен принципиально возможно. Предлагаю Вам протестировать.

3). И уже предложение от меня =) Набираюсь наглости и предлагаю Вам (если, конечно, есть интерес и время на упражнения) ещё больше доработать мой код. А конкретно сделать следующее:

- Добавить столбец с указанием имени получателя задачи.
- Добавить макрос на кнопке (а в идеале на горячей клавише), который при нажатии копирует строкой ниже последнюю строку таблицы, но с пустой ячейкой в столбце "Имя получателя".
- При работе макроса если подряд идут одинаковые строки с разными получателями - задача создаётся только одна, но на всех пользователей.
- Если в столбце "Имя получателя" пусто - создаётся отдельная задача на запускающем макрос.

Автор - Rioran
Дата добавления - 20.03.2015 в 10:17
jscd Дата: Пятница, 20.03.2015, 17:18 | Сообщение № 18
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Столбец с адресатом и отправка в случае наличия адресата/назначение на себя в случае отсутствия - ок.
Копирование последней строчки без адресата - тоже ок, но непонятно зачем.
Возможные сложности - нельзя указать в качестве адресата себя.

С назначением задачи нескольким людям непонятно. Не резолвятся сформированные адреса. Есть версия, что нельзя ставить одну задачу с указанием сроков разным людям. Проблема в том, что и без указания сроков не получается назначить. В чем здесь хитрость?
К сообщению приложен файл: OutTsk.xlsm (36.1 Kb)
 
Ответить
СообщениеСтолбец с адресатом и отправка в случае наличия адресата/назначение на себя в случае отсутствия - ок.
Копирование последней строчки без адресата - тоже ок, но непонятно зачем.
Возможные сложности - нельзя указать в качестве адресата себя.

С назначением задачи нескольким людям непонятно. Не резолвятся сформированные адреса. Есть версия, что нельзя ставить одну задачу с указанием сроков разным людям. Проблема в том, что и без указания сроков не получается назначить. В чем здесь хитрость?

Автор - jscd
Дата добавления - 20.03.2015 в 17:18
Rioran Дата: Пятница, 20.03.2015, 17:28 | Сообщение № 19
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

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

Если одну и ту же задачу по такому алгоритму назначать нескольким людям - то копирование подготовленной строки в один клик экономит время.

С назначением задачи нескольким людям непонятно.

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


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщение
Копирование последней строчки без адресата - тоже ок, но непонятно зачем.

Если одну и ту же задачу по такому алгоритму назначать нескольким людям - то копирование подготовленной строки в один клик экономит время.

С назначением задачи нескольким людям непонятно.

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

Автор - Rioran
Дата добавления - 20.03.2015 в 17:28
jscd Дата: Пятница, 20.03.2015, 17:51 | Сообщение № 20
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Создается одна задача с несколькими адресатами. В переменной rcp через точку с запятой перечисляются все адреса для одинаковых задач:

[vba]
Код
rcp = Cells(X, 9).Value

chck = 0
i = 1
While chck = 0
For j = 1 To 8

If shtX.Cells(X, j).Value <> shtX.Cells(X + i, j) Or Len(shtX.Cells(X + i, 9)) = 0 Then
chck = chck + 1
End If
Next j
rcp = rcp + "; " + shtX.Cells(X + i, 9).Value
i = i + 1
Wend
[/vba]

И после отправки задачи переходим к уже новой задаче
X = X + i - 1
 
Ответить
СообщениеСоздается одна задача с несколькими адресатами. В переменной rcp через точку с запятой перечисляются все адреса для одинаковых задач:

[vba]
Код
rcp = Cells(X, 9).Value

chck = 0
i = 1
While chck = 0
For j = 1 To 8

If shtX.Cells(X, j).Value <> shtX.Cells(X + i, j) Or Len(shtX.Cells(X + i, 9)) = 0 Then
chck = chck + 1
End If
Next j
rcp = rcp + "; " + shtX.Cells(X + i, 9).Value
i = i + 1
Wend
[/vba]

И после отправки задачи переходим к уже новой задаче
X = X + i - 1

Автор - jscd
Дата добавления - 20.03.2015 в 17:51
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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