Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вывести значение фильтра в заданную ячейку? 
V
    Опции темы
Валк
Дата 26.5.2006, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Условия: в автофильтре выставляется условие (больше или равно "значение1" и меньше или равно "значение2").
Задача: как сделать так, чтобы "значение1" и "значение2" появились в ячейке (допустим) А1 и В2?

Условия можно переменить: в ячейке А1 выставлено "значение1", в ячейке В2 выставлено "значение2".
Задача: как сделать так, чтобы автоматически (при выполнении определённого макроса, например) в таблице делалась выборка по условию (больше или равно "значение1" и меньше или равно "значение2")? 
PM MAIL WWW   Вверх
Staruha
Дата 26.5.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



вариантов несколько.Можно цикл запустить с услвием 
Код

If значение1>Range("A1") and зн-е2 <Range("B2")

, выполнить SQL
 а лучше воспользоваться готовым средством Расширенный фильтр.Мона и макрос записать с помощью записать макрос и нажать на Расширенный фильтр  

Это сообщение отредактировал(а) Staruha - 26.5.2006, 21:28


--------------------
Возмездие настигнет
PM MAIL   Вверх
Aloha
Дата 26.5.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
**


Профиль
Группа: Участник Клуба
Сообщений: 351
Регистрация: 14.5.2006

Репутация: 5
Всего: 165



Валк
Цитата
Условия: в автофильтре выставляется условие (больше или равно "значение1" и меньше или равно "значение2").
Задача: как сделать так, чтобы "значение1" и "значение2" появились в ячейке (допустим) А1 и В2?

Пусть, например,  "значение1" = 2, "значение2" = 4.
Т.е. имеем условие:     >=2 И <=4.
Тогда (при условии, что фильтр на листе "Лист1", отфильтрован 1-й столбец с условием  >=2 И <=4)
Код
Debug.Print Worksheets("Лист1").AutoFilter.Filters(1).Criteria1

вернет   >=2

Код
Debug.Print Worksheets("Лист1").AutoFilter.Filters(1).Criteria2

вернет   <=4

Код
Debug.Print Worksheets("Лист1").AutoFilter.Filters(1).Operator

вернет   1,   что соответствует константе xlAnd

Цитата
Условия можно переменить: в ячейке А1 выставлено "значение1", в ячейке В2 выставлено "значение2".
Задача: как сделать так, чтобы автоматически (при выполнении определённого макроса, например) в таблице делалась выборка по условию (больше или равно "значение1" И меньше или равно "значение2")? 

Следующий код делает это:
Код
Worksheets("Лист1").Cells.AutoFilter _
          Field:=1, _
          Criteria1:=">=" & Worksheets("Лист1").Range("A1"), _
          Operator:=xlAnd, _
          Criteria2:="<=" & Worksheets("Лист1").Range("B2")

   

Это сообщение отредактировал(а) Aloha - 27.5.2006, 00:30
PM   Вверх
Валк
Дата 27.5.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Aloha
Код

Worksheets("Лист1").Cells.AutoFilter _
          Field:=1, _
          Criteria1:=">=" & Worksheets("Лист1").Range("A1"), _
          Operator:=xlAnd, _
          Criteria2:="<=" & Worksheets("Лист1").Range("B2")



Мне кажется это почти самое то.

Чуть-чуть усложним задачу.
Столбец, в котором будет действовать автофильтр по условию, находится на "Лист1" и пусть он будет столбцом "Х". Ячейки, в которых будут выставляться условия должны находится на "Лист2".

Это уже будет конкретным решением для моей задачи. 
PM MAIL WWW   Вверх
Aloha
Дата 27.5.2006, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
**


Профиль
Группа: Участник Клуба
Сообщений: 351
Регистрация: 14.5.2006

Репутация: 5
Всего: 165



Валк
Код
Worksheets("Лист1").Cells.AutoFilter _
          Field:=1, _
          Criteria1:=">=" & Worksheets("Лист2").Range("A1"), _
          Operator:=xlAnd, _
          Criteria2:="<=" & Worksheets("Лист2").Range("B2")

Значение параметра Field не связано с конкретным положением автофильтра на рабочем листе. Данный параметр определяет просто номер столбца в автофильтре. 
PM   Вверх
Валк
Дата 29.5.2006, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Aloha, не работает  smile 
Не могу понять почему. В моём случае столбец по которому делатся выборка по условию - "Х". Где в твоём примере указан этот параметр? 
PM MAIL WWW   Вверх
Aloha
Дата 29.5.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
**


Профиль
Группа: Участник Клуба
Сообщений: 351
Регистрация: 14.5.2006

Репутация: 5
Всего: 165



Валк
С удовольствием помогу, но давай перенесем наше общение в личку. Все происходящее вряд ли представляет для других интерес. 
PM   Вверх
Валк
Дата 31.5.2006, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Конечный вариант макроса по второму варианту первого сообщения:
Код

Worksheets("БазаДС_Руб").Cells.AutoFilter _
        Field:=25, _
        Criteria1:=">=" & CLng(Worksheets("Ведомость").Cells(2, 3)), _
        Operator:=xlAnd, _
        Criteria2:="<=" & CLng(Worksheets("Ведомость").Cells(2, 7))

Макрос составлен Aloha.
От себя хочу горячо поблагодарить его, спасибо. 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.