Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 След.
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
Цитата
написал:
невозможно получить ни Criteria1, ни Criteria2
Нда... моё везение не имеет разумных границ. :(
Такого "удара в псину" от мелкомягких я не ожидал. Остаётся только убеждать юзеров не пользоваться деревом выбора при фильтрации по датам.
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
Цитата
написал:
Case 7                        filterValues = Fil_Arr.Criteria1
Уже видно, что не всегда будет работать, ибо при filterValues=7 выбор Criteria зависит от данных в столбце. В моём первом посте видно, что при значении 7 Criteria1 вообще не использовался, а применялся только Criteria2
Тут какая-то дикая заморочка непонятного происхождения. Возникает ощущение, что функцию фильтра писали несколько не связанных между собой людей, которые соревновались кто напишет кривее.
Обработка писем Outlook из Excel посредством VBA, Совместимость между различными версиями MS Office
 
Crowner, читайте про позднее связывание. Если его использовать, то никакие "галочки" не потребуются
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
Легче не стало...
Не работают представления в моей книге. Даже кнопка не активная... :(
Оказывается с таблицами представления не работают!!!
Возвращаемся к первоначальному вопросу: как определить существование Criteria1 и Criteria2?
Изменено: Мартын - 27.06.2023 16:13:58
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
sokol92, в любом случае благодарю за наводку! Пойду приклеивать очередные костыли к многострадальной книге...
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
Цитата
написал:
тщательно продумал
Вот тут я не согласен. Есть объект Filter  и у него есть свойства Criteria1 и Criteria2. Так должно быть для любого нормального объекта. Свойство может быть пустым, но оно не должно отсутствовать! Так тщательно разраб всё продумал, что и с бутылкой не угадаешь, когда появляется один параметр, когда другой, а когда оба сразу.
Активировать открытую книгу (путь использовать не получится) имя книги может измениться в части последних символов
 
Цитата
написал:
у меня книга не появилась на экране как активная
А зачем это моргание нужно?
ScreenUpdating случайно не False?
Активировать открытую книгу (путь использовать не получится) имя книги может измениться в части последних символов
 
RMG, ну не знаю, у меня работает.
Может в исходной книге на событие Deactivate какой код срабатывает?
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
sokol92, ИМХО это какие-то жЫрные костыли. Вроде того, когда тебе нужно скопировать один лист, а тебе предлагают взять целую книгу.
По сути мне нужнен способ определения существования Criteria1 и Criteria2. Если знать какой из них (или оба) существует, то запомнить состояние фильтров и восстановить их дело второе.
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
sokol92, как это относится к теме вопроса?
Активировать открытую книгу (путь использовать не получится) имя книги может измениться в части последних символов
 
RMG, а в чём проблема? Не активируется или ошибку выдаёт?
Ну и Workbooks(wb.Name).Activate это лишнее, достаточно wb.Activate
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
irabel, гладко было на бумаге, да забыли про овраги...
Если бы всё было так просто, я бы не задавал вопрос. Суть в том, что Criteria1 и Criteria2 не всегда существуют, поэтому при попытке обратиться к ним (когда их нет) возникает ошибка.
Вот примитивный пример, на котором эти функции не работают
Функция так же не работает при фильтрации по цвету заливки и по отсутствию заливки.
Не всё так тривиально... Тут нужна помощь больших знатоков.
Изменено: Мартын - 27.06.2023 14:03:25
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
Возможно кто из знатоков подскажет, как проверить наличие параметров Criteria1 и Criteria2 у объекта Filter?
Макрос для поиска и подстановки данных
 
Вот как вариант.
Вывод всех комбинаций Сочетаний цифр от 1 до 9
 
Марина Русалева, некропостер детектед!
Поиск частичного совпадения в разных листах
 
Цитата
написал:
Ответ в старом анекдоте:
За таблицы без нормализации в приличном обществе руки отрывают :)
Заполнение таблицы по трем условиям
 
Цитата
написал:
Что я должен вводить тремя клавишами?
Формулы массива вводятся не одной кнопкой Enter, а сразу тремя Ctrl, Shift и Enter, которые надо нажать одновременно.
Вошёл в ячейку, отредактировал ссылки -> нажми ТРИ кнопки, вместо одной!
З.Ы. Внешний признак формулы массива - она в фигурных скобках, типа не просто =СУММ(А1:С1), а {=СУММ(А1:С1)}
Изменено: Мартын - 23.06.2023 10:27:48
Поиск частичного совпадения в разных листах
 
Почему два артикула в одной строке?
ИМХО проще делать по старинке, макросом. Взять столбец с артикулами в массив  и пробегая по нему искать совпадение с данными из ячейки через instr, если совпадение есть, то возвращать значения из соответствующих столбцов с ценой, применимостью и т.д. Всё это закатать в процедуру, которая будет срабатывать при обновлении данных на листе. Это план, если обе книги открыты.
Если же вторая (с артикулами) закрыта, то то-же самое, через SQL запрос и пробег по рекордсету.
Изменено: Мартын - 23.06.2023 10:19:35
Поиск частичного совпадения в разных листах
 
Цитата
написал:
Я приложил выше из той же базы вырезку, на которой тестировал.
Там две строки с абсолютно разными значениями. Что с чем там должно сопоставиться?
Изменено: Мартын - 23.06.2023 09:20:42
Поиск частичного совпадения в разных листах
 
Цитата
написал:
В одном есть наименования к примеру:Кардан 6nn-8312 длинныйВо втором есть наименование в одной ячейке6nn-8312
Где в одном и где в другом? Где эти файлы?
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
kristina S, возможно я опять неясно сформулировал вопрос...
Мне надо запоминать состояние фильтров ПРОГРАММНО!!! Не руками, не путём нажатия кнопок на ленте, а программно. Пользователи в лучшем случае фильтр установить могут и то с помощью высших сил, никакие более сложные операции им недоступны. Поэтому и надо делать это программно.
Сами данные меняются (таблица полностью удаляется, кроме заголовков, и загружаются новые данные), а вот состояние фильтров хотелось  бы сохранять. Причём сами фильтры не всегда одинаковые, поэтому запоминать их "намертво" нет смысла. Пользователь может в любой момент установить другую фильтрацию и надо будет сохранять её.
Мне бы только узнать, какой из Criteria (или оба) существует у конкретного фильтра, вот и всё.
Альтернатива Суммесли (долгий расчет для большого количества строк)
 
messifan, можно попробовать такую формулу:
Код
=C2/СУММПРОИЗВ(--(($A$2:$A$11)=A2);$C$2:$C$11)
обычно она быстро работает.
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
Prosvetov, возможно Вы неправильно поняли вопрос.
Мне не надо устанавливать фильтр по моему желанию. Данные фильтрует конечный пользователь РУКАМИ! Мне надо программно определить настройки фильтра, которые он сделал (в том числе и по цвету заливки и по её отсутствию), запомнить эти настройки и, после того, как данные обновятся, восстановить фильтры так, как это сделал пользователь. Пользователям лень после каждого обновления данных заново устанавливать все фильтры, вот и возник вопрос сделать это программно. Но проблема в том, что я не знаю по какому принципу Ёксель использует Criteria1 и Criteria2. В приведённом примере в одном случае применяется один параметр, в другом другой, а иногда оба сразу.
Мне надо как-то выяснить, какой из Criteria существует у конкретного фильтра. Вот в чём вопрос. А выставить фильтры по нужным условиям это уже детская задача. Главное выяснить КАКИЕ это условия!
Как запомнить состояние фильтров на листе, Нужен способ определения существования Criteria1 и Criteria2
 
Доброго дня всем!

Помогите разобраться с фильтрами на листе. Есть необходимость запоминать их состояние, чтобы после обновления данных в таблице восстановить фильтрацию обратно. То есть данные периодически меняются, и нужно сделать так, чтобы юзверь не фильтровал данные заново, после обновления.
Была мысль собрать по всем столбцам, где Filter.On=True значения Operator, Criteria1 и Criteria2, но тут поджидала засада! Дело в том, что эти свойства не факт, что существуют. То есть Criteria1 или Criteria2 могут просто отсутствовать и при попытке сохранить их значение возникает ошибка. Какой глубокий смысл было делать эти свойства динамически появляющимися я не знаю, но глюк получился знатный.
Проблема ещё в том, что я не могу понять, по какому принципу Ёксель решает, какой из Criteria он создаст, первый или второй или оба сразу.
Вот что получилось из под макрокодера на разных столбцах одного листа:
Код
Sub Mac1()
    ActiveSheet.Range("$A$5:$R$1210").AutoFilter Field:=18, Criteria1:=Array( _
        "IP 01.06.2023", "IP 07.06.2023", "IP 13.06.2023", "="), Operator:= _
        xlFilterValues
End Sub

Sub Mac2()
    ActiveSheet.Range("$A$5:$R$1210").AutoFilter Field:=4, Criteria1:=Array( _
        "Slovo1", "Slovo2", "="), Operator:=xlFilterValues
End Sub

Sub Mac3()
    ActiveSheet.Range("$A$5:$R$1210").AutoFilter Field:=11, Operator:= _
        xlFilterValues, Criteria2:=Array(2, "1/9/2023")
End Sub

Sub Mac4()
    ActiveSheet.Range("$A$5:$R$1210").AutoFilter Field:=11, Operator:= _
        xlFilterValues, Criteria2:=Array(2, "1/9/2023", 2, "6/14/2022", 1, "2/6/2020")
End Sub

Sub Mac5()
    ActiveSheet.Range("$A$5:$R$1210").AutoFilter Field:=11, Operator:= _
        xlFilterValues, Criteria2:=Array(0, "12/30/2021", 0, "11/29/2018")
End Sub

Sub Mac6()
    ActiveSheet.Range("$A$1:$A$31").AutoFilter Field:=1, Criteria1:=Array("=") _
        , Operator:=xlFilterValues, Criteria2:=Array(2, "5/2/2023", 2, "5/4/2023", 2, _
        "5/30/2023")
End Sub

Как видно, с одинаковым оператором в одном случае используется только Criteria1, в другом только Criteria2 а в третьем и то и другое.

И как это понять? (и простить...)

Можно просто сохранять тот параметр, который существует, не разбираясь почему именно он, но как определить, существует ли этот самый Criteria1 или Criteria2. Это главный вопрос.

Как точно определить столбец последней заполненной ячейки?, Нужен гарантированный способ нахождения последней заполненной ячейки.
 
Цитата
написал:
Вернёт 0, если в строке нет ячеек с данными.
Гениально!
Как точно определить столбец последней заполненной ячейки?, Нужен гарантированный способ нахождения последней заполненной ячейки.
 
Цитата
написал:
используйте
Весьма благодарен.
Как точно определить столбец последней заполненной ячейки?, Нужен гарантированный способ нахождения последней заполненной ячейки.
 
Цитата
написал:
Что просили - то получили
Возможно я не точно выразился. Просто без скрытия столбцов моя старая функция прекрасно работала и с фильтром и без него. Кто же знал, что в Ёкселе такой косяк спрятан!
Вот я и ищу идею для универсальной функции, чтобы больше не возвращаться к этому вопросу.
Как точно определить столбец последней заполненной ячейки?, Нужен гарантированный способ нахождения последней заполненной ячейки.
 
Цитата
написал:
Если что, мой вариант сработает для любой строки, вне зависимости от наличия фильтров, таблиц, группировок и прочего.
Подтверждаю! Ещё раз благодарю!
Как точно определить столбец последней заполненной ячейки?, Нужен гарантированный способ нахождения последней заполненной ячейки.
 
Цитата
написал:
ячейка считается заполненной, если есть комментарий?
Для меня нет :)
Главное понятна идея, остальное можно допилить.
Как точно определить столбец последней заполненной ячейки?, Нужен гарантированный способ нахождения последней заполненной ячейки.
 
Цитата
написал:
_Boroda_,
Прикольный вариант)))
Короткий и работает
Не универсальный, ибо мне нужна функция, которая будет работать независимо от наличия автофильтра.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 След.
Наверх