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

Вход

Регистрация

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

 

= Мир MS Excel/Смещение данных на строку ниже по условию из выпад. списка.. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Смещение данных на строку ниже по условию из выпад. списка.. (Макросы/Sub)
Смещение данных на строку ниже по условию из выпад. списка..
Alfa Дата: Воскресенье, 18.01.2015, 20:55 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Есть таблица (Лист Задачи), в которой ведется учет сотрудников, назначенных на Объекты. На каждый объект назначается сотрудник в столбце F. В столбцах G:АK планируются часы работы сотрудников. Бывают ситуации, когда основной работник уходит в отпуск и на Объект нужно назначить дополнительного работника . В столбце E, на против основного сотрудника, выбирается из выпадающего списка "треб. подмена", например, в строке 6 (E6). После этого выбора нужно, что бы срабатывал макрос, который сместит на строку ниже информацию из диапазона A7:AK (последняя не пустая строка), т.е. на A8:AK. А в строку 7 продублирует часть строки 6 - диапазон A6: D6
Есть макрос, который просто переносит информацию по кнопке. Помогите доработать его под мою задачу, если такое вообще возможно
К сообщению приложен файл: 000111copy.xlsm (78.2 Kb)
 
Ответить
СообщениеЕсть таблица (Лист Задачи), в которой ведется учет сотрудников, назначенных на Объекты. На каждый объект назначается сотрудник в столбце F. В столбцах G:АK планируются часы работы сотрудников. Бывают ситуации, когда основной работник уходит в отпуск и на Объект нужно назначить дополнительного работника . В столбце E, на против основного сотрудника, выбирается из выпадающего списка "треб. подмена", например, в строке 6 (E6). После этого выбора нужно, что бы срабатывал макрос, который сместит на строку ниже информацию из диапазона A7:AK (последняя не пустая строка), т.е. на A8:AK. А в строку 7 продублирует часть строки 6 - диапазон A6: D6
Есть макрос, который просто переносит информацию по кнопке. Помогите доработать его под мою задачу, если такое вообще возможно

Автор - Alfa
Дата добавления - 18.01.2015 в 20:55
JayBhagavan Дата: Понедельник, 19.01.2015, 12:49 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 27 ±
Замечаний: 0% ±

Excel 2010
Alfa, в модуль листа "Задачи":[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Intersect(Range([E5], [E1].Offset([E:E].Rows.Count - 1)), UsedRange), Target) Is Nothing _
     And Target.Count = 1 Then
         If Target.Value = "треб. подмена" Then
             Application.EnableEvents = False
             curr_row = Target.Row
             next_row = curr_row + 1
             Rows(next_row).Insert Shift:=xlDown
             Range("A" & curr_row & ":D" & next_row).FillDown
'            Range("A" & next_row & ":D" & next_row).Select
             Application.EnableEvents = True
     End If: End If
End Sub
[/vba]Замечание: относительные ссылки формул новой строки смещаются на единицу в новой строке. Если так и надо, то и ладно, иначе - озвучьте как надо.


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
 
Ответить
СообщениеAlfa, в модуль листа "Задачи":[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Intersect(Range([E5], [E1].Offset([E:E].Rows.Count - 1)), UsedRange), Target) Is Nothing _
     And Target.Count = 1 Then
         If Target.Value = "треб. подмена" Then
             Application.EnableEvents = False
             curr_row = Target.Row
             next_row = curr_row + 1
             Rows(next_row).Insert Shift:=xlDown
             Range("A" & curr_row & ":D" & next_row).FillDown
'            Range("A" & next_row & ":D" & next_row).Select
             Application.EnableEvents = True
     End If: End If
End Sub
[/vba]Замечание: относительные ссылки формул новой строки смещаются на единицу в новой строке. Если так и надо, то и ладно, иначе - озвучьте как надо.

Автор - JayBhagavan
Дата добавления - 19.01.2015 в 12:49
JayBhagavan Дата: Понедельник, 19.01.2015, 15:21 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 27 ±
Замечаний: 0% ±

Excel 2010


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
 
Ответить
СообщениеКросс: http://www.planetaexcel.ru/forum....D=62878

Автор - JayBhagavan
Дата добавления - 19.01.2015 в 15:21
Alfa Дата: Понедельник, 19.01.2015, 19:38 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
JayBhagavan, спасибо! Этого кода достаточно! Дальше я сам
 
Ответить
СообщениеJayBhagavan, спасибо! Этого кода достаточно! Дальше я сам

Автор - Alfa
Дата добавления - 19.01.2015 в 19:38
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Смещение данных на строку ниже по условию из выпад. списка.. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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