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

Вход

Регистрация

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

 

= Мир MS Excel/Фильтрация данных и печать - Мир MS Excel

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

Excel 2010
Здравствуйте!
Не смог найти решение своей задачи.
Имеется список (файл прилагается), который фильтруется по первому столбцу (контрагент).
Затем отфильтрованные данные выводятся на печать.
Учитывая, что фактически список достаточно большой, то приходится поочередно фильтровать по каждому контрагенту и выводить поочередно на печать, что занимает немало времени.
Существует ли стандартное решение или макрос, позволяющий автоматически вывести на печать (а еще лучше выгрузить на отдельные страницы в один файл Word/Excel) отфильтрованные данные по каждому контрагенту?
К сообщению приложен файл: Filter.xls (50.0 Kb)


Сообщение отредактировал dakhash - Среда, 12.03.2014, 20:32
 
Ответить
СообщениеЗдравствуйте!
Не смог найти решение своей задачи.
Имеется список (файл прилагается), который фильтруется по первому столбцу (контрагент).
Затем отфильтрованные данные выводятся на печать.
Учитывая, что фактически список достаточно большой, то приходится поочередно фильтровать по каждому контрагенту и выводить поочередно на печать, что занимает немало времени.
Существует ли стандартное решение или макрос, позволяющий автоматически вывести на печать (а еще лучше выгрузить на отдельные страницы в один файл Word/Excel) отфильтрованные данные по каждому контрагенту?

Автор - dakhash
Дата добавления - 12.03.2014 в 20:30
Serge_007 Дата: Среда, 12.03.2014, 20:47 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Существует ли стандартное решение
Нет


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Существует ли стандартное решение
Нет

Автор - Serge_007
Дата добавления - 12.03.2014 в 20:47
Wasilich Дата: Пятница, 14.03.2014, 23:21 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Существует ли стандартное решение или макрос,
Ну где может существовать готовый макрос под вашу задачу? %)
Его писАть надо! Только, нужно более конкретно изложить свое желание. Может кто и поможет.
 
Ответить
Сообщение
Существует ли стандартное решение или макрос,
Ну где может существовать готовый макрос под вашу задачу? %)
Его писАть надо! Только, нужно более конкретно изложить свое желание. Может кто и поможет.

Автор - Wasilich
Дата добавления - 14.03.2014 в 23:21
dakhash Дата: Четверг, 20.03.2014, 05:04 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Ну где может существовать готовый макрос под вашу задачу?
Его писАть надо!

И так понятно, просто в своем посту неправильно вопрос поставил. Лучше бы звучало "Существует ли стандартное решение или ПОМОГИТЕ НАПИСАТЬ макрос..."

И куда конкретнее излагать?
Требуется вывести на печать каждую отфильтрованную позицию (а уже желательно вывести в Word, но необязательно)

Записал макрос на своем примере.

[vba]
Код
Sub ФильтрацияПечать()
'
' ФильтрацияПечать Макрос
'

'
Selection.AutoFilter
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="Детский сад №12"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ИП Иванов"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ООО Контора"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ООО Фирма"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ТСЖ Дом 1"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ТСЖ Дом 2"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="Школа №24"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="Школа №38"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End Sub
[/vba]

Пришлось просто перебрать каждого контрагента, но фактически их более 100 и к тому же время от времени появляются новые.
Понимаю, что можно так и сотню перебрать, а потом просто редактировать большой макрос, но думаю можно как-то без перечисления названий обойтись, чтобы макрос просто пробегал по каждому значению в первом столбце (контрагент) и выводил на печать.
Кто подскажет как лучше написать?
К сообщению приложен файл: 0502146.xls (65.5 Kb)


Сообщение отредактировал Serge_007 - Четверг, 20.03.2014, 06:55
 
Ответить
Сообщение
Ну где может существовать готовый макрос под вашу задачу?
Его писАть надо!

И так понятно, просто в своем посту неправильно вопрос поставил. Лучше бы звучало "Существует ли стандартное решение или ПОМОГИТЕ НАПИСАТЬ макрос..."

И куда конкретнее излагать?
Требуется вывести на печать каждую отфильтрованную позицию (а уже желательно вывести в Word, но необязательно)

Записал макрос на своем примере.

[vba]
Код
Sub ФильтрацияПечать()
'
' ФильтрацияПечать Макрос
'

'
Selection.AutoFilter
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="Детский сад №12"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ИП Иванов"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ООО Контора"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ООО Фирма"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ТСЖ Дом 1"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="ТСЖ Дом 2"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="Школа №24"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveSheet.Range("$A$1:$N$11").AutoFilter Field:=1, Criteria1:="Школа №38"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End Sub
[/vba]

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

Автор - dakhash
Дата добавления - 20.03.2014 в 05:04
Pelena Дата: Четверг, 20.03.2014, 05:38 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
выгрузить на отдельные страницы в один файл Word

Используйте инструмент Слияние


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
выгрузить на отдельные страницы в один файл Word

Используйте инструмент Слияние

Автор - Pelena
Дата добавления - 20.03.2014 в 05:38
dakhash Дата: Четверг, 20.03.2014, 05:46 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Используйте инструмент Слияние

Спасибо, Pelena. О самом простом способе и не подумал, хотя он не совсем подходит. Слишком много столбцов - около 40. Муторно получится. Кроме того, для некоторых контрагентов две и более строки. Выгрузка в Word - не первостепенная задача, а вспомогательная. Основная задача - отфильтровал и распечатал.


Сообщение отредактировал dakhash - Четверг, 20.03.2014, 05:54
 
Ответить
Сообщение
Используйте инструмент Слияние

Спасибо, Pelena. О самом простом способе и не подумал, хотя он не совсем подходит. Слишком много столбцов - около 40. Муторно получится. Кроме того, для некоторых контрагентов две и более строки. Выгрузка в Word - не первостепенная задача, а вспомогательная. Основная задача - отфильтровал и распечатал.

Автор - dakhash
Дата добавления - 20.03.2014 в 05:46
anvg Дата: Четверг, 20.03.2014, 06:33 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток.
Как вариант. Помещаем на лист "Список печати" необходимых контрагентов и запускаем макрос. Успехов.
Его писАть надо!

Не так и много, однако <_<
К сообщению приложен файл: _Print.xls (46.0 Kb)
 
Ответить
СообщениеДоброе время суток.
Как вариант. Помещаем на лист "Список печати" необходимых контрагентов и запускаем макрос. Успехов.
Его писАть надо!

Не так и много, однако <_<

Автор - anvg
Дата добавления - 20.03.2014 в 06:33
dakhash Дата: Четверг, 20.03.2014, 07:38 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
anvg,
Все работает отлично! thumb
Премного благодарен!
 
Ответить
Сообщениеanvg,
Все работает отлично! thumb
Премного благодарен!

Автор - dakhash
Дата добавления - 20.03.2014 в 07:38
Wasilich Дата: Четверг, 20.03.2014, 14:46 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Цитата Wasilic, 14.03.2014 в 23:21, в сообщении № 3
Его писАть надо!

Не так и много, однако
К чему это? %) Я оветил ТСу на конкретный вопрос - "Существует ли готовый макрос". yes
 
Ответить
Сообщение
Цитата Wasilic, 14.03.2014 в 23:21, в сообщении № 3
Его писАть надо!

Не так и много, однако
К чему это? %) Я оветил ТСу на конкретный вопрос - "Существует ли готовый макрос". yes

Автор - Wasilich
Дата добавления - 20.03.2014 в 14:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтрация данных и печать (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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