Название: Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Елена@1969@ от 15.07.2020, 15:35:38 Добрый день.
Необходимо, чтобы при открытии книги в столбце F происходила автофильтрация от меньшего к большему, Но только если есть в столбце данные (это будут числа). Мне удалось макрорекордером написать только без условия содержания данных в столбце. И фильтрация происходит даже, если столбец пустой, что мне совсем не надо. Помогите, пожайлуста, не владею написанием функций макроса. Вот что у меня получилось: Код: (vb) Private Sub Workbook_Open() Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Дмитрий Щербаков(The_Prist) от 15.07.2020, 16:16:11 Как можно понять, что столбец F не пустой? Без макросов - просто понять, как Вам подсказать решение. Без макросов Вы как понимаете, что столбец пустой? Нет ни единой записи или можно опереться на ячейку F11, F12?
Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Елена@1969@ от 15.07.2020, 16:28:53 Возможно я как то не верно описала, что хочу.
В эту книгу подтягиваются данные с других (связи). В столбец F подтягиваются номера "1001", "3002" и т.п. Надо, чтобы при открытии книги они встали от меньшего к большему. Но если книга пустая, и в ней пока нет связей и соответственно данных в столбце "F", то не надо, чтобы происходила фильтрация. Сейчас происходит в этом файле фильтрация по пустым ячейкам столбца Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Дмитрий Щербаков(The_Prist) от 15.07.2020, 16:32:27 и в ней пока нет связей и соответственно данных в столбце "F" так это я и пытаюсь выяснить :) Мы же не знаем как выглядит Ваша пустая книга :) Она совсем пустая? Или только таблица пустая в ней, но есть заголовки и формулыВ общем случае можно сделать так: Код: (vb) Private Sub Workbook_Open() P.S. Коды в сообщениях оформляйте тегами VBCode. п.п. 4.25 Правил форума (http://www.excel-vba.ru/forum/index.php?topic=2.0) Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Елена@1969@ от 15.07.2020, 16:35:27 Вы прописали, чтобы фильтрация в книге не происходила, если другие столбцы(F11) пустые.
Правильно понимаю? Наверное так. Попробую. Спасибо Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Дмитрий Щербаков(The_Prist) от 15.07.2020, 16:37:24 если другие столбцы(F11) пустые нет, я прописал условие, что будет фильтрация, если ячейка F11 НЕ ПУСТАЯ:Код: (vb) If ActiveWorkbook.Worksheets("ИЕПР").Range("F11").Value <> "" Then Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Елена@1969@ от 15.07.2020, 16:43:58 Поняла.
Работает, если указала ячейку F 12. Спасибо большое! Может надо было указать, что если другие столбцы пустые, то автофильтр при открытии книги не срабатывает. Но так тоже отлично! СПАСИБО! Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Дмитрий Щербаков(The_Prist) от 15.07.2020, 16:56:50 Можно по сути с любым диапазоном проделать нечто подобное. Например, для проверки есть ли данные в ячейках A12:F3000 можно проверку записать так:
Код: (vb) If IsNull(ActiveWorkbook.Worksheets("ИЕПР").Range("A12:F3000").Text) Then Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Елена@1969@ от 16.07.2020, 12:15:49 Добрый день, Дмитрий.
Извините, что опять беспокою. Почему-то при открытии файла возникает ошибка: #Run-time error '91': Object variable or with block variable not set# И эта новая команда (и в первом и во втором вариантах) подсвечивается желтым. Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Дмитрий Щербаков(The_Prist) от 16.07.2020, 13:41:27 Убедитесь, что в активной книге есть лист "ИЕПР". А вообще, если все это надо делать именно в книге с кодом, то ActiveWorkbook везде надо заменить на ThisWorkbook, чтобы обращение шло всегда к книге, в которой записан код, а не к любой активной на этот момент.
Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Елена@1969@ от 16.07.2020, 14:11:15 Хорошо.
А я подумала, что требуется что-то объявить переменной. но я не смогу, читаю, пробую, пока "0" :'( Спасибо Вам Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Елена@1969@ от 16.07.2020, 14:38:03 Огромное СПАСИБО!
Работает :) Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Елена@1969@ от 31.07.2020, 13:33:29 Добрый день, Дмитрий.
Возникли трудности с автофильтром. В столбце «F» применён автофильтр от меньшего к большему (макрос при открытии книги ранее прописали). Но теперь, если в столбце "Е" есть данные, а в столбце "F" пусто, то строки с таким условием оказываются вверху. Надо, чтобы если в столбце «Е» есть данные, а в столбце «F» пусто, то переместить строки с такими данными вниз, поставить их сразу после строки в которой есть хоть какие то данные. При этом условие фильтра от меньшего к большему в столбце "F" должно соблюдаться. Буду очень благодарна за помощь. Название: Re:Если в столбце эксель есть данные, то запустить макросом автофильтр Отправлено: Дмитрий Щербаков(The_Prist) от 31.07.2020, 20:10:04 Елена, этот вопрос не имеет отношения непосредственно к данной теме. Задача у Вас вообще не про фильтр, а про сортировку уже. Притом не самую простую. Создайте новую тему с Вашим вопросом.
Спасибо. |