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

Вход

Регистрация

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

 

= Мир MS Excel/Выборка из таблицы данных - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выборка из таблицы данных (Макросы/Sub)
Выборка из таблицы данных
Tavlar Дата: Вторник, 06.09.2022, 09:30 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 63
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Здравствуйте.
Нахожусь в самом начале реализации большой задумки.
Есть таблица с данными сотрудников.
Из этой таблицы необходимо отсортировать сотрудников по локации Москва и внести список сотрудников в лист Отчет начиная с ячейки D5, предварительно отсортировав по Подлокациям, т.е. сначала должны идти сотрудники из подлокации Лок1, потом Лок3 и Лок5. Еще, в идеале, чтобы сортировались по Индексу, т.е. порядок такой 11,12,13,21,22,23
Буду благодарен, если сможете с этой задачей справиться
К сообщению приложен файл: 7279991.xlsx (11.5 Kb)
 
Ответить
СообщениеЗдравствуйте.
Нахожусь в самом начале реализации большой задумки.
Есть таблица с данными сотрудников.
Из этой таблицы необходимо отсортировать сотрудников по локации Москва и внести список сотрудников в лист Отчет начиная с ячейки D5, предварительно отсортировав по Подлокациям, т.е. сначала должны идти сотрудники из подлокации Лок1, потом Лок3 и Лок5. Еще, в идеале, чтобы сортировались по Индексу, т.е. порядок такой 11,12,13,21,22,23
Буду благодарен, если сможете с этой задачей справиться

Автор - Tavlar
Дата добавления - 06.09.2022 в 09:30
RAN Дата: Вторник, 06.09.2022, 09:41 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Главная >> Сортировка и фильтр >>Настраиваемая сортировка
Включите макрорекордер, получите макрос.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеГлавная >> Сортировка и фильтр >>Настраиваемая сортировка
Включите макрорекордер, получите макрос.

Автор - RAN
Дата добавления - 06.09.2022 в 09:41
Tavlar Дата: Вторник, 06.09.2022, 09:59 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 63
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
спасибо, попробую конечно, но в предыдущий разы такой метод не давал результата
 
Ответить
Сообщениеспасибо, попробую конечно, но в предыдущий разы такой метод не давал результата

Автор - Tavlar
Дата добавления - 06.09.2022 в 09:59
RAN Дата: Вторник, 06.09.2022, 11:52 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub Мяу()
    Dim rng As Range
    Dim rowN&, rowI&
    With Worksheets("БД")
        Set rng = .Range("C4").CurrentRegion
        With .Sort
            .SortFields.Clear
            .SortFields.Add Key:=rng(7) _
                    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SortFields.Add Key:=rng(6) _
                    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SortFields.Add Key:=rng(1) _
                    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange rng
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        With rng
            On Error Resume Next
            rowN = .Columns(7).Find("Москва*", .Columns(7).Cells(1), xlFormulas, , xlByRows, xlNext, True).Row
            rowI = .Columns(7).Find("Москва*", .Columns(7).Cells(1), xlFormulas, , xlByRows, xlPrevious, True).Row
            rowN = rowN - .Row + 1
            rowI = rowI - .Row + 1
            .Rows(rowN & ":" & rowI).Copy Sheets("Отчет").[c5]
        End With
    End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub Мяу()
    Dim rng As Range
    Dim rowN&, rowI&
    With Worksheets("БД")
        Set rng = .Range("C4").CurrentRegion
        With .Sort
            .SortFields.Clear
            .SortFields.Add Key:=rng(7) _
                    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SortFields.Add Key:=rng(6) _
                    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SortFields.Add Key:=rng(1) _
                    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange rng
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        With rng
            On Error Resume Next
            rowN = .Columns(7).Find("Москва*", .Columns(7).Cells(1), xlFormulas, , xlByRows, xlNext, True).Row
            rowI = .Columns(7).Find("Москва*", .Columns(7).Cells(1), xlFormulas, , xlByRows, xlPrevious, True).Row
            rowN = rowN - .Row + 1
            rowI = rowI - .Row + 1
            .Rows(rowN & ":" & rowI).Copy Sheets("Отчет").[c5]
        End With
    End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 06.09.2022 в 11:52
Tavlar Дата: Вторник, 06.09.2022, 14:48 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 63
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
RAN, благодарю, все работает, пойду изучать код)
 
Ответить
СообщениеRAN, благодарю, все работает, пойду изучать код)

Автор - Tavlar
Дата добавления - 06.09.2022 в 14:48
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выборка из таблицы данных (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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