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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос фильтра по результату вычисления формулы. - Мир MS Excel

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

Excel 2010
Всем добрый день.
Прошу вашей помощи, вопрос не сложный, но я уже всю голову сломал. Нашел на одном дружественном сайте макрос для расширенного фильтра в ексель (если можно, выложу ссылку на макрос). Все бы супер, но необходимо чтобы макрос срабатывал по ячейке которая является формулой.
Смотрите приложенный пример.
Пояснения к примеру: Фильтр C2 (красным выделил) - это формула, которая берет значение из другого листа B2 (вкладка Формула). Макрос выполняется только если я встаю в С2 и нажимаю enter. Как сделать так, чтобы макрос выполнялся автоматически при изменении значения (пересчете формулы)?
К сообщению приложен файл: Filter_VBA_form.xlsm(19Kb)
 
Ответить
СообщениеВсем добрый день.
Прошу вашей помощи, вопрос не сложный, но я уже всю голову сломал. Нашел на одном дружественном сайте макрос для расширенного фильтра в ексель (если можно, выложу ссылку на макрос). Все бы супер, но необходимо чтобы макрос срабатывал по ячейке которая является формулой.
Смотрите приложенный пример.
Пояснения к примеру: Фильтр C2 (красным выделил) - это формула, которая берет значение из другого листа B2 (вкладка Формула). Макрос выполняется только если я встаю в С2 и нажимаю enter. Как сделать так, чтобы макрос выполнялся автоматически при изменении значения (пересчете формулы)?

Автор - VVeps
Дата добавления - 11.09.2017 в 13:39
_Boroda_ Дата: Понедельник, 11.09.2017, 13:49 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11327
Репутация: 4676 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А если в модуль второго листа написать
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B2" Then
        Лист1.Range("C1").Formula = Лист1.Range("C1").Formula
    End If
End Sub
[/vba]
К сообщению приложен файл: 4025059.xlsm(21Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА если в модуль второго листа написать
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B2" Then
        Лист1.Range("C1").Formula = Лист1.Range("C1").Formula
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 11.09.2017 в 13:49
and_evg Дата: Понедельник, 11.09.2017, 13:58 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 197
Репутация: 34 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, сработает, если на листе формула в В2 забивать вручную, а если в В2 вычисляется формулой, то такая-же засада.
 
Ответить
Сообщение_Boroda_, сработает, если на листе формула в В2 забивать вручную, а если в В2 вычисляется формулой, то такая-же засада.

Автор - and_evg
Дата добавления - 11.09.2017 в 13:58
K-SerJC Дата: Понедельник, 11.09.2017, 14:03 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 274
Репутация: 38 ±
Замечаний: 0% ±

Excel 2013
а если в этот лист:
[vba]
Код
Private Sub Worksheet_Calculate()
Worksheet_Change (ThisWorkbook.Sheets(1).Range("C1"))
End Sub
[/vba]
К сообщению приложен файл: VVeps.xlsm(20Kb)


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJC - Понедельник, 11.09.2017, 14:04
 
Ответить
Сообщениеа если в этот лист:
[vba]
Код
Private Sub Worksheet_Calculate()
Worksheet_Change (ThisWorkbook.Sheets(1).Range("C1"))
End Sub
[/vba]

Автор - K-SerJC
Дата добавления - 11.09.2017 в 14:03
VVeps Дата: Вторник, 12.09.2017, 11:41 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
K-SerJC вроде все работает!!! То что нужно!!!

Спасибо большое всем за помощь.
 
Ответить
СообщениеK-SerJC вроде все работает!!! То что нужно!!!

Спасибо большое всем за помощь.

Автор - VVeps
Дата добавления - 12.09.2017 в 11:41
_Boroda_ Дата: Вторник, 12.09.2017, 11:44 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11327
Репутация: 4676 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
сработает, если на листе формула в В2 забивать вручную

Естессно. Но хоть где-то хоть что-то в файле забивается вручную или макросом, правильно? Вот на это гдеточтото и ставим реакцию на событие
А Worksheet_Calculate я совершенно сознательно не стал делать - это первая мысль была - так получится, что с каждым телодвижение автофильтр перерисовываться станет. Не каждому файлу это понравится


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
сработает, если на листе формула в В2 забивать вручную

Естессно. Но хоть где-то хоть что-то в файле забивается вручную или макросом, правильно? Вот на это гдеточтото и ставим реакцию на событие
А Worksheet_Calculate я совершенно сознательно не стал делать - это первая мысль была - так получится, что с каждым телодвижение автофильтр перерисовываться станет. Не каждому файлу это понравится

Автор - _Boroda_
Дата добавления - 12.09.2017 в 11:44
and_evg Дата: Вторник, 12.09.2017, 11:55 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 197
Репутация: 34 ±
Замечаний: 0% ±

Excel 2007
с каждым телодвижение автофильтр перерисовываться станет
Ага, с большим файлом будут жуткие тормоза
 
Ответить
Сообщение
с каждым телодвижение автофильтр перерисовываться станет
Ага, с большим файлом будут жуткие тормоза

Автор - and_evg
Дата добавления - 12.09.2017 в 11:55
K-SerJC Дата: Вторник, 12.09.2017, 12:54 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 274
Репутация: 38 ±
Замечаний: 0% ±

Excel 2013
Цитата _Boroda_, 12.09.2017 в 11:44, в сообщении № 6 ( писал(а)):
с каждым телодвижение автофильтр перерисовываться станет
Ага, с большим файлом будут жуткие тормоза

ну в таком ключе чтобы нагрузку на расчеты снизить можно сохранить значения из A1:D1, и при калькуляции сравнивать если они не совпадают с текущими в ячейках, запускать Worksheet_Change


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщение
Цитата _Boroda_, 12.09.2017 в 11:44, в сообщении № 6 ( писал(а)):
с каждым телодвижение автофильтр перерисовываться станет
Ага, с большим файлом будут жуткие тормоза

ну в таком ключе чтобы нагрузку на расчеты снизить можно сохранить значения из A1:D1, и при калькуляции сравнивать если они не совпадают с текущими в ячейках, запускать Worksheet_Change

Автор - K-SerJC
Дата добавления - 12.09.2017 в 12:54
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос фильтра по результату вычисления формулы. (Макросы/Sub)
Страница 1 из 11
Поиск:

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