Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Полезный Макрос: быстрый автофильтр / 8 сообщений из 8, страница 1 из 1
28.02.2009, 19:56
    #35844143
ilya_nsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полезный Макрос: быстрый автофильтр
Господа, есть большая таблица с повторяющимися данными в колонках. Колонки чередуются то с числовыми данными, то с тектовыми, то с датами. Пример во вложенном файле.
Задача быстро выделить по фильтру строки содержащие одинаковые значения по какой либо из колонок. Можно использовать "Автофильтр", но я решил написать макрос который делает подобное.
Т.е. тыкаемсы в любую ячейку таблицы. Жмем Ctrl+a — работает Макрос — выделяются все строки с данными равными исходной ячейки.
Столкнулся с проблемой в числовых колонках, когда формат ячеек "Общий" и когда "Числовой" с разделителем групп разрядов. Текст Макроса привожу ниже. Помогите доработать, Please...

Sub Select_Name()

' Сочетание клавиш: Ctrl+a

Dim MyZn, MyFormat
MyFormat = Selection.NumberFormat
MyZn = Format(Selection, MyFormat)
Selection.AutoFilter Field:=Selection.Column, Criteria1:=MyZn, Operator:= _
xlAnd
Selection.End(xlUp).Select
End Sub

Кроме того, оказалось что в региональных настройках необходимо заменить разделитель целой и дробной части на "." (вместо ","), иначе "Числовые" данные вообще не фильтруются.
...
Рейтинг: 0 / 0
01.03.2009, 12:57
    #35844569
VLA91MIR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полезный Макрос: быстрый автофильтр
у кого точки, у кого запятые, в настройках можно установитьтип разделителя.
...
Рейтинг: 0 / 0
03.03.2009, 20:07
    #35849353
ilya_nsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полезный Макрос: быстрый автофильтр
Так что? 46 человек прочитало и ни у кого никаких идей?
Господа, нюанс в задачке то интересный. Кто-то же знает как надо!
...
Рейтинг: 0 / 0
19.03.2009, 13:32
    #35879120
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полезный Макрос: быстрый автофильтр
Старый добрый "Replace"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Option Explicit
Dim rng As Range
Sub Select_Name()
'
' Select_Name Макрос
' Макрос записан 20.02.2009 (Rus)
'
' Сочетание клавиш: Ctrl+a
'

    Dim MyZn, MyFormat$
    Set rng = Selection
    MyFormat = Selection.NumberFormat
    If MyFormat = "#,##0.00" Or MyFormat = "0.00" Then
        MyZn = Replace(Replace(Selection.Text, ",", "."), " ", ",")
    Else
        MyZn = Format(Selection, MyFormat)
    End If
    Selection.AutoFilter Field:=Selection.Column, Criteria1:=MyZn
    Selection.End(xlUp).Select
End Sub
Sub Show_All()
'
' Show_All Макрос
' Макрос записан 20.02.2009 (Rus)
'
' Сочетание клавиш: Ctrl+s
'
    Selection.AutoFilter Field:=Selection.Column
    On Error Resume Next
    rng.Select
End Sub
...
Рейтинг: 0 / 0
19.03.2009, 16:02
    #35879640
Папа Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полезный Макрос: быстрый автофильтр
ilya_nskТак что? 46 человек прочитало и ни у кого никаких идей?
Господа, нюанс в задачке то интересный. Кто-то же знает как надо!

Интересный подход. Повторять ВСТРОЕННУЮ функциональность на VBA.

В Excel есть автофильтр по значению активной ячейки. Есть очистка автофильтра.

В более ранних версиях не помню, но прекрасно работает на 2003 и 2007.

Доступ быстрый через меню. Даже мышки не надо.

Вот чать моего быстрого меню. Две крайние "леечки" и обеспечивают эту функциональность.
...
Рейтинг: 0 / 0
19.03.2009, 16:08
    #35879678
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полезный Макрос: быстрый автофильтр
в 2000 удобно...ну, если на встроенные горячие клавиши не вешать

только я бы использовал как инструмент расширенный фильтр. работал бы с выделенным диапазоном по выделенной ячейке...
...
Рейтинг: 0 / 0
19.03.2009, 16:11
    #35879694
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полезный Макрос: быстрый автофильтр
офф:
1) можно ли макрос привязать к сочетанию не начинающемуся с ctrl???
хотелось бы shift+ctrl+"что-то"
2) как это сделать
...
Рейтинг: 0 / 0
19.03.2009, 17:28
    #35879971
ZVI
ZVI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Полезный Макрос: быстрый автофильтр
PlanBофф:
1) можно ли макрос привязать к сочетанию не начинающемуся с ctrl???
хотелось бы shift+ctrl+"что-то"
2) как это сделать
Написать макрос, например MyMacro()
На панели Visual Basic нажать кнопку "Выполнить" или просто нажать Alt-F8.
Выбрать макрос из списка и нажать "Параметры"
Зажать Shift и нажать, например, Z. Будет отображено сочетание Ctrl+Shift+Z
Нажать Ok

Сочетание можно назначить и с помощью OnKey:
Application.OnKey "+^Z", "MyMacro"
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Полезный Макрос: быстрый автофильтр / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]