Нужен макрос для вставки подзадач

Вопросы, связанные с разработкой приложений для Microsoft Project

Нужен макрос для вставки подзадач

Сообщение Klim » 24 дек 2015, 12:25

ЗАДАЧИ МАКРОСА
Добавить ПОДЗАДАЧИ для задач 2-го уровня структуры и остановится на задаче со значением "0".

Исходная структура задач
http://prntscr.com/9hzw2o

Структура задач после прохода макроса
http://prntscr.com/9hzxjo
Последний раз редактировалось Klim 25 дек 2015, 15:25, всего редактировалось 1 раз.
Klim
Белый пояс
 
Сообщения: 8
Зарегистрирован: 30 апр 2015, 22:43

Re: Макрос вставки подзадач для задач только 2-го уровня.

Сообщение oleksiy prosnitskyy » 25 дек 2015, 12:42

и где макрос?
oleksiy prosnitskyy
MVP
 
Сообщения: 1025
Зарегистрирован: 11 дек 2012, 21:16

Re: Нужен макрос для вставки подзадач

Сообщение Brise » 27 дек 2015, 09:39

Приветствую!

Вот такой макрос делает примерно то, что нужно:
Код: Выделить всё
Sub AddSubtasks()
    Dim prevT As Task
    For Each t In ActiveProject.Tasks
        If Not t Is Nothing Then
            If Not prevT Is Nothing Then
                If prevT.OutlineLevel = 2 Then
                    Dim newT As Task
                    Set newT = ActiveProject.Tasks.Add("Subtask 1", t.ID)
                    newT.OutlineLevel = 3
                End If
            End If
       
            If t.Name = "0" Then
                Exit For
            End If
            Set prevT = t
        End If
    Next
End Sub
Brise
Синий пояс
 
Сообщения: 145
Зарегистрирован: 01 апр 2013, 07:52
Откуда: Санкт-Петербург

Re: Нужен макрос для вставки подзадач

Сообщение Klim » 27 дек 2015, 19:08

Brise, огромное спасибо за ответ.

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

ЗАДАЧА
1. Имеется список задач.
prntscr.com/9j372s

2. Список фильтруем по полю Текст1 (например по значению «ЗНАЧ 1»)
prntscr.com/9j37d4

ЗАДАЧА МАКРОСА
1. Начать вставку подзадач с задачи на которой стоит курсор.
prntscr.com/9j3clh
Вставку подзадач осуществлять только для задач 2-го уровня.

2. Дойти до задачи с названием «0» (или до последней задачи) и остановится.

3. ЕСЛИ МОЖНО.
Сделать, чтобы количество и название вставляемых задач можно было менять.
Например в коде дописать необходимое количество или другие способы.
Klim
Белый пояс
 
Сообщения: 8
Зарегистрирован: 30 апр 2015, 22:43

Re: Нужен макрос для вставки подзадач

Сообщение Brise » 28 дек 2015, 11:29

Klim писал(а):Brise, огромное спасибо за ответ.
Пробовал сам доработать сделанный вами макрос под необходимые задачи, но что-то не получается.

Что у вас есть сейчас? Какие проблемы с доработанным макросом?

Klim писал(а):ЗАДАЧА МАКРОСА
1. Начать вставку подзадач с задачи на которой стоит курсор.

Это требование неоднозначное, поскольку в таблице задач могут быть сортировки и фильтры. Делается примерно так:
  • Запоминаем ID текущей выделенной задачи через ActiveSelection.Tasks(1).ID
  • Выделить все ячейки в текущем представлении с помощью SelectAll
  • В исходном макросе, вместо перебора всех задач проекта, начинаем перебрать все элементы ActiveSelection.Tasks
  • Как только ID перебираемой задачи совпал с сохраненным ранее ID, начинаем вставку

Klim писал(а):3. ЕСЛИ МОЖНО.
Сделать, чтобы количество и название вставляемых задач можно было менять.
Например в коде дописать необходимое количество или другие способы.

Это конечно можно. Вы пробовали дописать?
Brise
Синий пояс
 
Сообщения: 145
Зарегистрирован: 01 апр 2013, 07:52
Откуда: Санкт-Петербург


Вернуться в Разработка и программирование для Microsoft Project

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1