Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 07:57:30

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Собрать данные с нескольких листов
Страниц: [1] 2 3  Все   Вниз
Печать
Автор Тема: Собрать данные с нескольких листов  (Прочитано 50719 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dana11
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 27


Просмотр профиля
« : 12.08.2011, 19:35:07 »

Здравствуйте.
Мне нужно собрать огромное количество данных с нескольких десятков листов и книг. Пробовала пользоваться макросами как указано на http://www.excel-vba.ru/chto-umeet-excel/kak-sobrat-dannye-s-neskolkix-listov-ili-knig/. Проблема в том, что я не могу указать какие именно строки собирать, так как в каждом листе разное количество данных (в некоторых вообще нет - они мне не нужны, а вот в некоторых от одного до ста). Поэтому после собрания всех данных остаются пустые строки.
Вопрос в следующем:
После собрания данных в один лист нужно "Название" со 2-го столбца перенести на первый столбец, и все не нужные строки между данными убрать. Прикрепляю пример. Пожалуйста помогите  В замешательствеОбеспокоенный
Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #1 : 13.08.2011, 12:38:27 »

Так?
Записан
dana11
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 27


Просмотр профиля
« Ответ #2 : 13.08.2011, 12:54:40 »

Да, почти. Но он собрал 3 столбца, а мне надо ровно 25 столбцов собрать. Я оставляла таблицу на примере, просто данные убрала. А как с других книг собрать у меня их больше ста, т.е. 3 летние данные.
И еще эту кнопочку как можно скопировать на оригинальный документ? А то я только макрос копирую.
Заранее спасибо
Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #3 : 13.08.2011, 12:58:11 »

Про 25 столбцов в примере ничего не сказано - увидел только три: или добавьте по аналогии для каждой ячейки или копируйте целиком строку (диапазон). Кнопку (если понравилась) можно просто скопировать, как любой другой объект: выделяем, копируем... Можно создать самостоятельно - Панели инструментов - Формы...
Можно вместо кнопки использовать любую автофигуру/рисунок. На ней правый клик - назначить макрос.
Записан
dana11
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 27


Просмотр профиля
« Ответ #4 : 13.08.2011, 13:04:10 »

Да я уже25 столбцов добавила сделала )). Кнопку учту. А как со всех книг собрать? Я должна собирать по месяцам, а это у меня только один день собирает.
Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #5 : 13.08.2011, 13:08:07 »

Вот копирование всей строки (до 25-го столбца). Как с других книг собрать - перебрать нужные книги в цикле. Загляните сюда http://www.excel-vba.ru/chto-umeet-excel/kak-sobrat-dannye-s-neskolkix-listov-ili-knig/
Записан
dana11
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 27


Просмотр профиля
« Ответ #6 : 13.08.2011, 13:08:58 »

Спасибо огромное!!!!
Записан
said@al
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« Ответ #7 : 17.04.2012, 06:44:07 »

А как в макросе прописать "не собирать данные с определенных листов" Заранее спасибо!
Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #8 : 17.04.2012, 14:00:32 »

Нужно добавить проверку:
если имя листа не равно ИМЯ_НЕНУЖНОГО_ЛИСТА
Если положение листов неизменно, то можно указать индекс нежелательного листа
Записан
said@al
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« Ответ #9 : 17.04.2012, 14:06:14 »

Честно говоря ни когда не пользовался макросами но это один из вариантов для решения вопроса по работе. если можно напишите текст модуля.(например один лист "СВОДНАЯ") Спасибо!
Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #10 : 18.04.2012, 09:41:40 »

Вы про какой файл говорите? В примере нет такого листа.
Записан
said@al
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« Ответ #11 : 18.04.2012, 13:54:29 »

В примере есть лист"svod" с него не нужно собирать данные
Записан
ambasad
Пользователь
**

Репутация: +7/-0
Офлайн Офлайн

Сообщений: 98


Просмотр профиля
« Ответ #12 : 18.04.2012, 19:12:43 »

Добавьте в ваш код условие, которое будет исключать ненужны лист: If .Name <> "svod" Then
Получится что-то типа
Код:
For n = 1 To Sheets.Count - 1
        With Sheets(n)
            If .Name <> "svod" Then
                nLastRow = .Cells(Rows.Count, 2).End(xlUp).Row
                iName = .Cells(1, 2)
                For i = 8 To nLastRow
                If nLastRow >= 8 Then
                    Cells(iLastRow + 1, 1) = iName
                    Range(.Cells(i, 2), .Cells(i, 34)).Copy Cells(iLastRow + 1, 2)
                    iLastRow = iLastRow + 1
                End If
                Next
            End If
        End With
Записан
said@al
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« Ответ #13 : 18.04.2012, 20:02:26 »

Спасибо ! Все получилось.
Записан
Valentina
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля
« Ответ #14 : 23.04.2012, 20:47:42 »

Добрый вечер,

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

Заранее спасибо!
Записан
Страниц: [1] 2 3  Все   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru