Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: SlepoyPEW от 08.04.2017, 06:29

Название: Как копировать данные по условию, с одного листа на другой?
Отправлено: SlepoyPEW от 08.04.2017, 06:29
Уважаемые Гуру Excel, доброго времени суток! Мне хотелось бы разобраться в проблеме, надеюсь на вашу поддержку и помощь! Суть такова : существует книга эксель (пример наполнения во вложении) первый лист это иерархия оборудования с первого по шестой уровень, последующие листы это дополнение к шестому (последнему) уровню информации (выполняемые операции на данном оборудовании). Проблема: Как сделать автоматическое добавление строк с информацией на первый лист, т.е. если у нас на первом листе электродвигатель, то идет автоматическое добавление строк с четырьмя операциями к нему из листа (электрики)?  Хотелка: Возможно ли сделать в первом листе выпадающий список в столбце F, где из выпадающего списка будет выбираться необходимый нам "узел" и происходить автоматическое добавление строк, согласно количеству строк выполняемых операций?
Название: Re: Как автоматически добавление строк с одного листа в другой?
Отправлено: zs5 от 09.04.2017, 10:28
вариант
Название: Re: Как автоматически добавление строк с одного листа в другой?
Отправлено: SlepoyPEW от 10.04.2017, 08:09
Цитата: zs5 от 09.04.2017, 10:28
вариант
не вариант, в базе данных около 200000 не повторяющихся единиц оборудования и чтобы все их в формулу записать нужно пальцы до локтей изтыкать)
Название: Re: Как автоматически добавление строк с одного листа в другой?
Отправлено: zs5 от 10.04.2017, 09:13
если 200000 листов, то их где-то надо прописывать
Название: Re: Как автоматически добавление строк с одного листа в другой?
Отправлено: SlepoyPEW от 10.04.2017, 09:49
я не говорю про листы,я говорю про единицы оборудования (электродвигатель, металлоконструкция, горелка и т.д.)
Название: Re: Как автоматически добавление строк с одного листа в другой?
Отправлено: SlepoyPEW от 11.04.2017, 05:56
Значит так, на данный момент я нашел макрос,который автоматом добавляет по 4 строкb после каждой строки на листе, вот он:
Sub Макрос1()
' Автоматическое добавление строк
' Сочетание клавиш: Ctrl+з
Sub Insert_Rows()
        Dim lLastRow As Long, li As Long
    Application.ScreenUpdating = 0
    lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For li = lLastRow To 1 Step -1
        Rows(li + 1).Resize(4).Insert
    Next li
    Application.ScreenUpdating = 1
End Sub

Теперь у меня вопрос состоит в том, чтобы автоматом с других листов, соответствующее оборудование копировалось на главный лист, во вложении это отмечено желтым цветом.
Название: Re: Как автоматически добавление строк с одного листа в другой?
Отправлено: SlepoyPEW от 12.04.2017, 06:32
Дорогие ГУРУ, помогите пожалуйста...
Название: Re: Как автоматически добавление строк с одного листа в другой?
Отправлено: SlepoyPEW от 13.04.2017, 06:01
До сих пор не могу(((
Название: Re: Как автоматически добавление строк с одного листа в другой?
Отправлено: SlepoyPEW от 21.04.2017, 09:01
помощи походу не дождусь)
Название: Re: Как автоматически добавление строк с одного листа в другой?
Отправлено: vikttur от 21.04.2017, 09:28
Тема о добавлении строк, вопрос о копировании данных.
Название: Re: Как копировать данные по условию, с одного листа на другой?
Отправлено: SlepoyPEW от 05.06.2017, 11:43
эх(
Название: Re: Как копировать данные по условию, с одного листа на другой?
Отправлено: Pelena от 06.06.2017, 10:17
Так подойдёт?
Название: Re: Как копировать данные по условию, с одного листа на другой?
Отправлено: SlepoyPEW от 13.06.2017, 05:47
Цитата: Pelena от 06.06.2017, 10:17
Так подойдёт?
я не пойму, а что вы сделали?)
Название: Re: Как копировать данные по условию, с одного листа на другой?
Отправлено: Pelena от 13.06.2017, 14:30
Я сделала макрос, который надо запустить (Alt+F8)
Название: Re: Как копировать данные по условию, с одного листа на другой?
Отправлено: SlepoyPEW от 14.06.2017, 13:12
Цитата: Pelena от 13.06.2017, 14:30
Я сделала макрос, который надо запустить (Alt+F8)
Я оказался уж больно деревянным!)) Спасибо огромное, сейчас разберусь как все работает и под себя попробую переписать.! Спасибо большое!!!
Название: Re: Как копировать данные по условию, с одного листа на другой?
Отправлено: SlepoyPEW от 14.06.2017, 15:22
Я начал разбираться, свои данные копировать и у меня произошло непредвиденное обстоятельство, к сожалению ПРИМЕР (который был во вложении) отличается количеством столбцов, необходимых для копирования. В примере это столбцы: узел, №п/п, Операции по обслуживанию, Принадлежность к службе, Периодичность (что составляет, в количественном выражении, 5 столбцов). В реальной жизни, а точнее в реальной таблице у меня таких столбцов насчитывается аж 7, но я не исключаю возможности расширения таблицы до 8 а то и 9 столбцов))) Внимание вопрос- КАК МНЕ БЫТЬ?!?!)))) Заранее спасибо. Во вложении документ.
Название: Re: Как копировать данные по условию, с одного листа на другой?
Отправлено: Pelena от 14.06.2017, 20:33
Проверяйте
Название: Re: Как копировать данные по условию, с одного листа на другой?
Отправлено: SlepoyPEW от 15.06.2017, 06:05
Получилось очень странно, в примере все работает, а в оригинальном документе (состоящем из более чем 1500 строк) макрос начинает работать только с 728. При выполнении вылезает ошибка "Run-time error '1004': Application-defined or object-defined error" и далее указывается на строку в макросе "Rows(li + 1).Resize(nrow - 1).Insert xlDown, CopyOrigin:=xlFormatFromLeftOrAbove"
Название: Re: Как копировать данные по условию, с одного листа на другой?
Отправлено: Pelena от 15.06.2017, 08:37
Возможно, у Вас первый столбец не до конца заполнен. Попробуйте строку
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
заменить на
lLastRow = Cells(Rows.Count, 8).End(xlUp).Row