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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование данных с листов после применения фильтра - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных с листов после применения фильтра (Макросы/Sub)
Копирование данных с листов после применения фильтра
konstantin_987 Дата: Суббота, 27.02.2016, 23:45 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Необходимо перенести данные на сводный лист с обновляемых таблиц на разных листах одной книги,
после применения фильтра к данным на листе.
Форматирование таблиц одинаковое, только отличается количество строк.
К сообщению приложен файл: 9763887.xlsx(24Kb)
 
Ответить
СообщениеНеобходимо перенести данные на сводный лист с обновляемых таблиц на разных листах одной книги,
после применения фильтра к данным на листе.
Форматирование таблиц одинаковое, только отличается количество строк.

Автор - konstantin_987
Дата добавления - 27.02.2016 в 23:45
KuklP Дата: Воскресенье, 28.02.2016, 00:03 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2112
Репутация: 453 ±
Замечаний: 0% ±

Это типа распоряжение? deal


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЭто типа распоряжение? deal

Автор - KuklP
Дата добавления - 28.02.2016 в 00:03
konstantin_987 Дата: Воскресенье, 28.02.2016, 00:23 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Нет не распоряжение. Это просьба.
Помогите пожалуйста. Заранее спасибо.


Сообщение отредактировал konstantin_987 - Воскресенье, 28.02.2016, 00:25
 
Ответить
СообщениеНет не распоряжение. Это просьба.
Помогите пожалуйста. Заранее спасибо.

Автор - konstantin_987
Дата добавления - 28.02.2016 в 00:23
Kuzmich Дата: Воскресенье, 28.02.2016, 00:30 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 260
Репутация: 47 ±
Замечаний: 0% ±

Excel 2003
В модуль листа "Сводная"
[vba]
Код

Sub Sbor()
Dim Sht As Worksheet
Dim iLastRow As Long
UsedRange.Offset(1).ClearContents
iLastRow = 2
For Each Sht In Worksheets
If Sht.Name <> "Сводная" Then ' кроме листа "Сводная"
With Sht
Sht.UsedRange.Offset(1).Copy Cells(iLastRow, 1)
End With
End If
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 2
Next
End Sub
[/vba]


Сообщение отредактировал Kuzmich - Воскресенье, 28.02.2016, 00:31
 
Ответить
СообщениеВ модуль листа "Сводная"
[vba]
Код

Sub Sbor()
Dim Sht As Worksheet
Dim iLastRow As Long
UsedRange.Offset(1).ClearContents
iLastRow = 2
For Each Sht In Worksheets
If Sht.Name <> "Сводная" Then ' кроме листа "Сводная"
With Sht
Sht.UsedRange.Offset(1).Copy Cells(iLastRow, 1)
End With
End If
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 2
Next
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 28.02.2016 в 00:30
KuklP Дата: Воскресенье, 28.02.2016, 00:35 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2112
Репутация: 453 ±
Замечаний: 0% ±

Володя, автор просит
после применения фильтра к данным на листе.
т.е. видимые. Еще, раз уж речь идет о таблицах в виде таблиц (гы), то может технологичней использовать databodyrange?


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВолодя, автор просит
после применения фильтра к данным на листе.
т.е. видимые. Еще, раз уж речь идет о таблицах в виде таблиц (гы), то может технологичней использовать databodyrange?

Автор - KuklP
Дата добавления - 28.02.2016 в 00:35
Kuzmich Дата: Воскресенье, 28.02.2016, 00:38 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 260
Репутация: 47 ±
Замечаний: 0% ±

Excel 2003
Цитата
databodyrange

Сергей! Я таких слов не знаю, у меня же 2003.
 
Ответить
Сообщение
Цитата
databodyrange

Сергей! Я таких слов не знаю, у меня же 2003.

Автор - Kuzmich
Дата добавления - 28.02.2016 в 00:38
konstantin_987 Дата: Воскресенье, 28.02.2016, 08:45 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
цитата удалена

Выдает ошибку "Run-time error '424'
Object required"
Я новичок в этом деле. Помогите пожалуйста.
[moder]Не надо цитировать пост целиком. Это нарушение Правил форума[/moder]


Сообщение отредактировал Pelena - Воскресенье, 28.02.2016, 08:48
 
Ответить
Сообщениецитата удалена

Выдает ошибку "Run-time error '424'
Object required"
Я новичок в этом деле. Помогите пожалуйста.
[moder]Не надо цитировать пост целиком. Это нарушение Правил форума[/moder]

Автор - konstantin_987
Дата добавления - 28.02.2016 в 08:45
Kuzmich Дата: Воскресенье, 28.02.2016, 09:53 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 260
Репутация: 47 ±
Замечаний: 0% ±

Excel 2003
На лист Сводная Перенесите шапку и, находясь на этом листе, запустите макрос Sbor.
Какой применяется фильтр, я не понял.
 
Ответить
СообщениеНа лист Сводная Перенесите шапку и, находясь на этом листе, запустите макрос Sbor.
Какой применяется фильтр, я не понял.

Автор - Kuzmich
Дата добавления - 28.02.2016 в 09:53
konstantin_987 Дата: Воскресенье, 28.02.2016, 10:37 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
На лист Сводная перенес шапку и все равно выдает ошибку.
Ошибка в этом "UsedRange.Offset(1).ClearContents"

По поводу фильтров:
1. На листах 1, 2, 3, 4 применяются фильтры по разным столбцам.
2. А потом макросом на листе сводная собирается вся информация
 
Ответить
СообщениеНа лист Сводная перенес шапку и все равно выдает ошибку.
Ошибка в этом "UsedRange.Offset(1).ClearContents"

По поводу фильтров:
1. На листах 1, 2, 3, 4 применяются фильтры по разным столбцам.
2. А потом макросом на листе сводная собирается вся информация

Автор - konstantin_987
Дата добавления - 28.02.2016 в 10:37
Kuzmich Дата: Воскресенье, 28.02.2016, 11:23 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 260
Репутация: 47 ±
Замечаний: 0% ±

Excel 2003
Макрос д.б. в модуле листа Сводная и запускать его надо находясь на этом листе.
Если на листах 1,2,3 и 4 будут применены фильтры, то переносить на лист Сводная
нужно только видимые строки.
 
Ответить
СообщениеМакрос д.б. в модуле листа Сводная и запускать его надо находясь на этом листе.
Если на листах 1,2,3 и 4 будут применены фильтры, то переносить на лист Сводная
нужно только видимые строки.

Автор - Kuzmich
Дата добавления - 28.02.2016 в 11:23
konstantin_987 Дата: Воскресенье, 28.02.2016, 12:12 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Что тут не так?
К сообщению приложен файл: 3024038.xlsm(31Kb)
 
Ответить
СообщениеЧто тут не так?

Автор - konstantin_987
Дата добавления - 28.02.2016 в 12:12
Kuzmich Дата: Воскресенье, 28.02.2016, 13:06 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 260
Репутация: 47 ±
Замечаний: 0% ±

Excel 2003
Цитата
Что тут не так?

Вы перечитайте предыдущие сообщения.
Сколько раз я написал - в модуль листа Сводная
 
Ответить
Сообщение
Цитата
Что тут не так?

Вы перечитайте предыдущие сообщения.
Сколько раз я написал - в модуль листа Сводная

Автор - Kuzmich
Дата добавления - 28.02.2016 в 13:06
KuklP Дата: Воскресенье, 28.02.2016, 17:35 | Сообщение № 13
Группа: Проверенные
Ранг: Старожил
Сообщений: 2112
Репутация: 453 ±
Замечаний: 0% ±

Я таких слов не знаю, у меня же 2003.
В 2003 таблицы назывались списками %) И у списков тоже была такая проперть - DataBodyRange. Так будет работать из любого места книги:
[vba]
Код
Sub Sbor()
    Dim Sht As Worksheet
    With Sheets("Сводная")
        .UsedRange.Offset(1).ClearContents
        For Each Sht In Worksheets
            If Sht.Name <> "Сводная" Then _
               Sht.ListObjects(1).DataBodyRange.SpecialCells( _
               12).Copy .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1)
        Next
    End With
End Sub
[/vba]


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Воскресенье, 28.02.2016, 17:37
 
Ответить
Сообщение
Я таких слов не знаю, у меня же 2003.
В 2003 таблицы назывались списками %) И у списков тоже была такая проперть - DataBodyRange. Так будет работать из любого места книги:
[vba]
Код
Sub Sbor()
    Dim Sht As Worksheet
    With Sheets("Сводная")
        .UsedRange.Offset(1).ClearContents
        For Each Sht In Worksheets
            If Sht.Name <> "Сводная" Then _
               Sht.ListObjects(1).DataBodyRange.SpecialCells( _
               12).Copy .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1)
        Next
    End With
End Sub
[/vba]

Автор - KuklP
Дата добавления - 28.02.2016 в 17:35
konstantin_987 Дата: Понедельник, 29.02.2016, 21:47 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вы перечитайте предыдущие сообщения.
Сколько раз я написал - в модуль листа Сводная


Спасибо огромное, помогло!!!
 
Ответить
Сообщение
Вы перечитайте предыдущие сообщения.
Сколько раз я написал - в модуль листа Сводная


Спасибо огромное, помогло!!!

Автор - konstantin_987
Дата добавления - 29.02.2016 в 21:47
konstantin_987 Дата: Понедельник, 29.02.2016, 21:48 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP, спасибо за помощь!!!:)
 
Ответить
СообщениеKuklP, спасибо за помощь!!!:)

Автор - konstantin_987
Дата добавления - 29.02.2016 в 21:48
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных с листов после применения фильтра (Макросы/Sub)
Страница 1 из 11
Поиск:

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