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

Вход

Регистрация

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

 

= Мир MS Excel/Скопировать таблицы со всех листов на один общий - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Скопировать таблицы со всех листов на один общий
Vlad9826 Дата: Понедельник, 15.07.2024, 18:07 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Добрый день!
В общем нужно скопировать таблицы со всех листов на один общий. Но сложность в том, что данные в ячейках появляются согласно формулам. Нужно скопировать так чтоб копировались только значения и формат ячеек (то есть размер и цвет), но не получается. Применил этот макрос, но там копируется вместе с формулами. На листах информация может изменяться, так же строки добавляться. И возможно ли такое решить без макроса?
[vba]
Код
Sub Макрос1()
Dim LastRow As Long, RW As Long, n As Long
        RW = Cells(Rows.Count, 5).End(xlUp).Row
        Range(Cells(3, 1), Cells(RW + 2, 16)).Clear
        RW = 3
        For n = 1 To Sheets.Count - 1
            With Sheets(n)
                LastRow = .Cells(Rows.Count, 5).End(xlUp).Row
                Range(.Cells(3, 1), .Cells(LastRow, 16)).Copy Cells(RW, 1)
                RW = Cells(Rows.Count, 5).End(xlUp).Row + 1
            End With
        Next
End Sub
[/vba]
К сообщению приложен файл: vert.7z (38.8 Kb)


Сообщение отредактировал Vlad9826 - Вторник, 16.07.2024, 01:31
 
Ответить
СообщениеДобрый день!
В общем нужно скопировать таблицы со всех листов на один общий. Но сложность в том, что данные в ячейках появляются согласно формулам. Нужно скопировать так чтоб копировались только значения и формат ячеек (то есть размер и цвет), но не получается. Применил этот макрос, но там копируется вместе с формулами. На листах информация может изменяться, так же строки добавляться. И возможно ли такое решить без макроса?
[vba]
Код
Sub Макрос1()
Dim LastRow As Long, RW As Long, n As Long
        RW = Cells(Rows.Count, 5).End(xlUp).Row
        Range(Cells(3, 1), Cells(RW + 2, 16)).Clear
        RW = 3
        For n = 1 To Sheets.Count - 1
            With Sheets(n)
                LastRow = .Cells(Rows.Count, 5).End(xlUp).Row
                Range(.Cells(3, 1), .Cells(LastRow, 16)).Copy Cells(RW, 1)
                RW = Cells(Rows.Count, 5).End(xlUp).Row + 1
            End With
        Next
End Sub
[/vba]

Автор - Vlad9826
Дата добавления - 15.07.2024 в 18:07
NikitaDvorets Дата: Вторник, 16.07.2024, 12:45 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 585
Репутация: 131 ±
Замечаний: 0% ±

Excel 2019
Vlad9826, Добрый день.
Цитата
И возможно ли такое решить без макроса?

Есть подозрение, что нельзя. Макрос работает после его существенного редактирования.
К сообщению приложен файл: vertolety_generator_svoda_16_0.xlsm (47.2 Kb)
 
Ответить
СообщениеVlad9826, Добрый день.
Цитата
И возможно ли такое решить без макроса?

Есть подозрение, что нельзя. Макрос работает после его существенного редактирования.

Автор - NikitaDvorets
Дата добавления - 16.07.2024 в 12:45
Vlad9826 Дата: Вторник, 16.07.2024, 14:50 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets, Спасибо, получилось как надо, но чу чуть не то. Если дважды нажать на СВОД, то повторно все таблицы добавятся к текущей сводной таблицы. Это придется перед каждым внесением изменений в таблицы на листах удалять сводную таблицу на общем листе и нажимать на кнопку СВОД один раз. Можно ли сделать так что бы при нажатии на кнопку СВОД(повторно) добавлялись к текущей сводной таблице только произведенные изменения в таблицах на отдельных листах?
 
Ответить
СообщениеNikitaDvorets, Спасибо, получилось как надо, но чу чуть не то. Если дважды нажать на СВОД, то повторно все таблицы добавятся к текущей сводной таблицы. Это придется перед каждым внесением изменений в таблицы на листах удалять сводную таблицу на общем листе и нажимать на кнопку СВОД один раз. Можно ли сделать так что бы при нажатии на кнопку СВОД(повторно) добавлялись к текущей сводной таблице только произведенные изменения в таблицах на отдельных листах?

Автор - Vlad9826
Дата добавления - 16.07.2024 в 14:50
NikitaDvorets Дата: Вторник, 16.07.2024, 15:55 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 585
Репутация: 131 ±
Замечаний: 0% ±

Excel 2019
Vlad9826,
Цитата
добавлялись к текущей сводной таблице только произведенные изменения в таблицах на отдельных листах

Можно, но нужно согласовать один момент. Новые диапазоны можно обозначать знаком "+" в дополнительном столбце ("A").
См. лист 78 прилагаемого файла.
Но это придется делать каждый раз для новых данных.
Макрос можно заставить стирать эти "+", которые уже учтены после отработки диапазонов.
К сообщению приложен файл: 1061517.xlsm (49.0 Kb)
 
Ответить
СообщениеVlad9826,
Цитата
добавлялись к текущей сводной таблице только произведенные изменения в таблицах на отдельных листах

Можно, но нужно согласовать один момент. Новые диапазоны можно обозначать знаком "+" в дополнительном столбце ("A").
См. лист 78 прилагаемого файла.
Но это придется делать каждый раз для новых данных.
Макрос можно заставить стирать эти "+", которые уже учтены после отработки диапазонов.

Автор - NikitaDvorets
Дата добавления - 16.07.2024 в 15:55
Vlad9826 Дата: Вторник, 16.07.2024, 16:22 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets, можно и так, но а если придется удалить строку из таблице на листе, как себя макрос в таком случае поведет? он удалить эту строку в сводной таблице
 
Ответить
СообщениеNikitaDvorets, можно и так, но а если придется удалить строку из таблице на листе, как себя макрос в таком случае поведет? он удалить эту строку в сводной таблице

Автор - Vlad9826
Дата добавления - 16.07.2024 в 16:22
NikitaDvorets Дата: Вторник, 16.07.2024, 16:44 | Сообщение № 6
Группа: Авторы
Ранг: Ветеран
Сообщений: 585
Репутация: 131 ±
Замечаний: 0% ±

Excel 2019
Vlad9826, Если удалить строку без "+" на листе, макрос её не "увидит" и не внесет в свод (если нет "+", то строка уже отработана).
Если удалить строку с "+" (зачем?), то макрос её тоже не увидит.
Макрос (исправленный) будет переносить в свод только те строки на рабочих листах, которые помечены "+" в столбце "A".
 
Ответить
СообщениеVlad9826, Если удалить строку без "+" на листе, макрос её не "увидит" и не внесет в свод (если нет "+", то строка уже отработана).
Если удалить строку с "+" (зачем?), то макрос её тоже не увидит.
Макрос (исправленный) будет переносить в свод только те строки на рабочих листах, которые помечены "+" в столбце "A".

Автор - NikitaDvorets
Дата добавления - 16.07.2024 в 16:44
Vlad9826 Дата: Вторник, 16.07.2024, 17:01 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets,
Цитата NikitaDvorets, 16.07.2024 в 16:44, в сообщении № 6 ()
Если удалить строку без "+" на листе, макрос её не "увидит" и не внесет в свод (если нет "+", то строка уже отработана).

я это имел ввиду. А плюсы автоматически должны удалиться?
 
Ответить
СообщениеNikitaDvorets,
Цитата NikitaDvorets, 16.07.2024 в 16:44, в сообщении № 6 ()
Если удалить строку без "+" на листе, макрос её не "увидит" и не внесет в свод (если нет "+", то строка уже отработана).

я это имел ввиду. А плюсы автоматически должны удалиться?

Автор - Vlad9826
Дата добавления - 16.07.2024 в 17:01
NikitaDvorets Дата: Вторник, 16.07.2024, 17:12 | Сообщение № 8
Группа: Авторы
Ранг: Ветеран
Сообщений: 585
Репутация: 131 ±
Замечаний: 0% ±

Excel 2019
Можно так сделать, чтобы не помнить специально, что их нужно удалить после работы макроса.
 
Ответить
СообщениеМожно так сделать, чтобы не помнить специально, что их нужно удалить после работы макроса.

Автор - NikitaDvorets
Дата добавления - 16.07.2024 в 17:12
Vlad9826 Дата: Вторник, 16.07.2024, 17:32 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets, Сделайте так пожалуйста, а то будит путаница всегда))
 
Ответить
СообщениеNikitaDvorets, Сделайте так пожалуйста, а то будит путаница всегда))

Автор - Vlad9826
Дата добавления - 16.07.2024 в 17:32
NikitaDvorets Дата: Вторник, 16.07.2024, 17:37 | Сообщение № 10
Группа: Авторы
Ранг: Ветеран
Сообщений: 585
Репутация: 131 ±
Замечаний: 0% ±

Excel 2019
Vlad9826,
Цитата
Сделайте так пожалуйста,

ОК. Смотрите продолжение завтра :-)
 
Ответить
СообщениеVlad9826,
Цитата
Сделайте так пожалуйста,

ОК. Смотрите продолжение завтра :-)

Автор - NikitaDvorets
Дата добавления - 16.07.2024 в 17:37
NikitaDvorets Дата: Среда, 17.07.2024, 09:59 | Сообщение № 11
Группа: Авторы
Ранг: Ветеран
Сообщений: 585
Репутация: 131 ±
Замечаний: 0% ±

Excel 2019
Vlad9826, continued...
Прилагаю вариант, позволяющий макросу вносить в свод только новые записи с листов, отмеченные "+" в столбцах "A".
После внесения в свод "+" затираются.
К сообщению приложен файл: vertolety_generator_svoda_17_0.xlsm (55.0 Kb)
 
Ответить
СообщениеVlad9826, continued...
Прилагаю вариант, позволяющий макросу вносить в свод только новые записи с листов, отмеченные "+" в столбцах "A".
После внесения в свод "+" затираются.

Автор - NikitaDvorets
Дата добавления - 17.07.2024 в 09:59
Vlad9826 Дата: Среда, 17.07.2024, 15:14 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets, спасибо уже близко к цели, но есть несколько нюансов)) Новая строчка добавляется в конец таблицы на общем листе, а не в конец таблицы касающейся (к примеру 78) на общем листе. И второе, при изменении (допустим номера какого либо агрегата), не происходит обновление в сводной таблице.
 
Ответить
СообщениеNikitaDvorets, спасибо уже близко к цели, но есть несколько нюансов)) Новая строчка добавляется в конец таблицы на общем листе, а не в конец таблицы касающейся (к примеру 78) на общем листе. И второе, при изменении (допустим номера какого либо агрегата), не происходит обновление в сводной таблице.

Автор - Vlad9826
Дата добавления - 17.07.2024 в 15:14
NikitaDvorets Дата: Среда, 17.07.2024, 15:37 | Сообщение № 13
Группа: Авторы
Ранг: Ветеран
Сообщений: 585
Репутация: 131 ±
Замечаний: 0% ±

Excel 2019
Vlad9826,
Цитата
Новая строчка добавляется в конец таблицы на общем листе, а не в конец таблицы касающейся (к примеру 78)

Как я понимаю, в этом случае макрос не должен запускаться, данные - уже в общей таблице.
Цитата
при изменении (допустим номера какого либо агрегата), не происходит обновление в сводной таблице

Если должно происходить обновление сводной, то задача становится другой, лучше перевести её в категорию Работа / Фриланс.
 
Ответить
СообщениеVlad9826,
Цитата
Новая строчка добавляется в конец таблицы на общем листе, а не в конец таблицы касающейся (к примеру 78)

Как я понимаю, в этом случае макрос не должен запускаться, данные - уже в общей таблице.
Цитата
при изменении (допустим номера какого либо агрегата), не происходит обновление в сводной таблице

Если должно происходить обновление сводной, то задача становится другой, лучше перевести её в категорию Работа / Фриланс.

Автор - NikitaDvorets
Дата добавления - 17.07.2024 в 15:37
  • Страница 1 из 1
  • 1
Поиск:

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