Добрый день всем. Есть табл. из двух колонок 1ая - наименование (А), 2ая - кол-во (В), необходимо по колонке кол-во (В) отфильтровать разными вариантами.
Вариант1 - чтобы остались только ячейки, которые выделены цветом. Вариант2 - чтобы остались ячейки в которых текст выделен цветом. Вариант3 - чтобы остались ячейки в которых нет ничего, пусто.
Только главное условие, без прикрепления Фильтра! Можно расширенным фильтром, им у меня получается сделать чтоб оставались только ячейки с цифровым значение и без значений (пусто), а по цвету не получается. Как можно это сделать?
Добрый день всем. Есть табл. из двух колонок 1ая - наименование (А), 2ая - кол-во (В), необходимо по колонке кол-во (В) отфильтровать разными вариантами.
Вариант1 - чтобы остались только ячейки, которые выделены цветом. Вариант2 - чтобы остались ячейки в которых текст выделен цветом. Вариант3 - чтобы остались ячейки в которых нет ничего, пусто.
Только главное условие, без прикрепления Фильтра! Можно расширенным фильтром, им у меня получается сделать чтоб оставались только ячейки с цифровым значение и без значений (пусто), а по цвету не получается. Как можно это сделать?evokharkov
Чтоб на макросы записать и без фильтра, только по макросам работало. Выбрал макрос, показало только текст выделенный цветом, выбрал другой макрос, показало только строки с залитыми ячейками и т.д.
Чтоб на макросы записать и без фильтра, только по макросам работало. Выбрал макрос, показало только текст выделенный цветом, выбрал другой макрос, показало только строки с залитыми ячейками и т.д.evokharkov
А можно убрать потом фильтр и чтоб потом макросы работали по фильтру, но фильтра на листе не было? Нюанс в том, чтоб на листе только макросы остались, а фильтра не было.
Прикрепляю файл, можно реализовать, чтоб эти макросы работали, но фильтра не было вообще на листе?
А можно убрать потом фильтр и чтоб потом макросы работали по фильтру, но фильтра на листе не было? Нюанс в том, чтоб на листе только макросы остались, а фильтра не было.
Прикрепляю файл, можно реализовать, чтоб эти макросы работали, но фильтра не было вообще на листе?evokharkov
Вот такой вариант, но с фильтром мне кажется, что лучше)
[vba]
Код
Sub cell_color() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Interior.Color = 16777215 Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
Sub font_color() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Font.Color = 0 Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
Sub empty_cells() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Value <> "" Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
Sub show_rows() Rows("2:" & ActiveSheet.UsedRange.Rows.Count).Hidden = False End Sub
[/vba]
Вот такой вариант, но с фильтром мне кажется, что лучше)
[vba]
Код
Sub cell_color() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Interior.Color = 16777215 Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
Sub font_color() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Font.Color = 0 Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
Sub empty_cells() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Value <> "" Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
Sub show_rows() Rows("2:" & ActiveSheet.UsedRange.Rows.Count).Hidden = False End Sub
Конечно лучше. А если еще и невидимую кнопку (VisibleDropDown:=False) ему приделать, то вообще никто не узнает
[vba]
Код
Sub Skr1() If Me.AutoFilterMode Then Columns("B:B").AutoFilter End If Columns("B:B").AutoFilter Field:=1, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterFontColor, VisibleDropDown:=False End Sub
Sub Skr2() If Me.AutoFilterMode Then Columns("B:B").AutoFilter End If Columns("B:B").AutoFilter Field:=1, Criteria1:=RGB(0, 176, 240), Operator:=xlFilterCellColor, VisibleDropDown:=False End Sub
Sub Skr3() If Me.AutoFilterMode Then Columns("B:B").AutoFilter End If Columns("B:B").AutoFilter 1, "", VisibleDropDown:=False End Sub
Sub Skr4() If Me.AutoFilterMode Then Columns("A:A").AutoFilter End If End Sub
[/vba]
Конечно лучше. А если еще и невидимую кнопку (VisibleDropDown:=False) ему приделать, то вообще никто не узнает
[vba]
Код
Sub Skr1() If Me.AutoFilterMode Then Columns("B:B").AutoFilter End If Columns("B:B").AutoFilter Field:=1, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterFontColor, VisibleDropDown:=False End Sub
Sub Skr2() If Me.AutoFilterMode Then Columns("B:B").AutoFilter End If Columns("B:B").AutoFilter Field:=1, Criteria1:=RGB(0, 176, 240), Operator:=xlFilterCellColor, VisibleDropDown:=False End Sub
Sub Skr3() If Me.AutoFilterMode Then Columns("B:B").AutoFilter End If Columns("B:B").AutoFilter 1, "", VisibleDropDown:=False End Sub
Sub Skr4() If Me.AutoFilterMode Then Columns("A:A").AutoFilter End If End Sub
Да, так. Скажи как ты узнаешь цифровое значение цвета и заносишь в формулу? [vba]
Код
Sub cell_color() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Interior.Color = 16777215 Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
[/vba]
Если я правильно понял, то 16777215 это код цвета заливки?!
Второй вопрос. Где тут указывается цвет текста?
[vba]
Код
Sub font_color() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Font.Color = 0 Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
Да, так. Скажи как ты узнаешь цифровое значение цвета и заносишь в формулу? [vba]
Код
Sub cell_color() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Interior.Color = 16777215 Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
[/vba]
Если я правильно понял, то 16777215 это код цвета заливки?!
Второй вопрос. Где тут указывается цвет текста?
[vba]
Код
Sub font_color() Application.ScreenUpdating = False show_rows For Each cl In Range("B2:B10").Cells If cl.Font.Color = 0 Then cl.EntireRow.Hidden = True Next cl Application.ScreenUpdating = True End Sub
Прежде всего прикладываете файл с расширением, не поддерживающим макросы Макросы к кнопкам Контрл с-Контрл v не привяжет, это вручную нужно делать. На нужную кнопку нужный макрос.
Прежде всего прикладываете файл с расширением, не поддерживающим макросы Макросы к кнопкам Контрл с-Контрл v не привяжет, это вручную нужно делать. На нужную кнопку нужный макрос._Boroda_
Извиняюсь за файл. Но чтот у меня не получается, значит я пересохранил файл в xlsm, захожу в Разрабочик - Visual Basic - Insert - Module - записываю ваш первый макрос, сохраняю и так все 4 макроса. После захожу в макросы Skr1-Skr4 и они пустые. Что делаю не так?
Извиняюсь за файл. Но чтот у меня не получается, значит я пересохранил файл в xlsm, захожу в Разрабочик - Visual Basic - Insert - Module - записываю ваш первый макрос, сохраняю и так все 4 макроса. После захожу в макросы Skr1-Skr4 и они пустые. Что делаю не так?evokharkov
Полностью поддерживаю. И именно поэтому я все-таки с фильтром и сделал. evokharkov, отвечаю на Ваш вопрос в личке - Совершенно верно, привязал к фильтру, а стрелочку у него спрятал. Параметр VisibleDropDown отвечает за видимость стрелочки автофильтра в каждом конкретном столбце. Я как раз об этом писал -
Чтобы не мучиться с переносом макросов, сделайте проще - перенесите весь мой лист к себе в книгу и вставьте на этот лист свои данные. Там уже все подвязано и должно работать
Полностью поддерживаю. И именно поэтому я все-таки с фильтром и сделал. evokharkov, отвечаю на Ваш вопрос в личке - Совершенно верно, привязал к фильтру, а стрелочку у него спрятал. Параметр VisibleDropDown отвечает за видимость стрелочки автофильтра в каждом конкретном столбце. Я как раз об этом писал -
Чтобы не мучиться с переносом макросов, сделайте проще - перенесите весь мой лист к себе в книгу и вставьте на этот лист свои данные. Там уже все подвязано и должно работать_Boroda_
Если свои данные на ваш лист тащить, тоже морока, там большая таблица. И все же хотел бы ваш способ для себя понять, понравился. Если может, подскажите. Прикрепляю исходный файл без макросов, под который вы писали макросы, чтоб заработал ваш первый макрос
[vba]
Код
Sub Skr1() If Me.AutoFilterMode Then Columns("B:B").AutoFilter End If Columns("B:B").AutoFilter Field:=1, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterFontColor, VisibleDropDown:=False End Sub
[/vba]
как я понимаю надо в файле в нужном месте поставить автофильтр и создать макрос с вашим текстом, так?
Если свои данные на ваш лист тащить, тоже морока, там большая таблица. И все же хотел бы ваш способ для себя понять, понравился. Если может, подскажите. Прикрепляю исходный файл без макросов, под который вы писали макросы, чтоб заработал ваш первый макрос
[vba]
Код
Sub Skr1() If Me.AutoFilterMode Then Columns("B:B").AutoFilter End If Columns("B:B").AutoFilter Field:=1, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterFontColor, VisibleDropDown:=False End Sub
[/vba]
как я понимаю надо в файле в нужном месте поставить автофильтр и создать макрос с вашим текстом, так?evokharkov
Автофильтр создавать не нужно, он сам создается Нужно скопировать сразу все 4 макроса из моего поста выше, ткнуться правой мышой в ярлык листа (пусть этот лист назавыется Дано), выбрать Исходный код (или как-то в этом роде - зависит от версии Excel), в появившееся окошко вставить скопированное, закрыть окно VBA, создать на листе 4 кнопки (если их уже там нет), ткнуться правой мышой в первую кнопку - выбрать пункт "Присвоить макрос", в появившемся списке выбрать "Дано.Skr1". Повторить для остальных кнопок. Обозвать кнопки так, как они названы в моем файле (или в Вашем)
Автофильтр создавать не нужно, он сам создается Нужно скопировать сразу все 4 макроса из моего поста выше, ткнуться правой мышой в ярлык листа (пусть этот лист назавыется Дано), выбрать Исходный код (или как-то в этом роде - зависит от версии Excel), в появившееся окошко вставить скопированное, закрыть окно VBA, создать на листе 4 кнопки (если их уже там нет), ткнуться правой мышой в первую кнопку - выбрать пункт "Присвоить макрос", в появившемся списке выбрать "Дано.Skr1". Повторить для остальных кнопок. Обозвать кнопки так, как они названы в моем файле (или в Вашем)_Boroda_
Всем спасибо, помогли, из ваших двух сделал третий вариант, просто к своим макросам добавил код скрытия фильтра и вуаля, подсмотрел у _Boroda_
Всем спасибо, помогли, из ваших двух сделал третий вариант, просто к своим макросам добавил код скрытия фильтра и вуаля, подсмотрел у _Boroda_ evokharkov