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

Вход

Регистрация

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

 

= Мир MS Excel/Программная сортировка произвольного столбца - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Программная сортировка произвольного столбца (Макросы/Sub)
Программная сортировка произвольного столбца
segail Дата: Суббота, 02.06.2018, 12:05 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте.
Возможно ли макросом выполнить сортировку столбца хотя бы в одном режиме АЯ изначально обозначив в ручную сортируемый столбец, то есть программная сортировка произвольно выбранного столбца в ручную.
 
Ответить
СообщениеЗдравствуйте.
Возможно ли макросом выполнить сортировку столбца хотя бы в одном режиме АЯ изначально обозначив в ручную сортируемый столбец, то есть программная сортировка произвольно выбранного столбца в ручную.

Автор - segail
Дата добавления - 02.06.2018 в 12:05
Pelena Дата: Суббота, 02.06.2018, 12:27 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12756
Репутация: 2809 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Здравствуйте.
Именно одного столбца или таблицы по выбранному столбцу?
И пример бы не помешал


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Именно одного столбца или таблицы по выбранному столбцу?
И пример бы не помешал

Автор - Pelena
Дата добавления - 02.06.2018 в 12:27
segail Дата: Суббота, 02.06.2018, 12:42 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, Да тут все просто, пользователь сам выбирает какой столбец необходимо сортировать, выделяет необходимый столбец с первой строки (первая строка всегда заголовок) произвольно по вертикали и программно выполняет сортировку, например кликом по кнопке.


Сообщение отредактировал segail - Суббота, 02.06.2018, 12:56
 
Ответить
СообщениеPelena, Да тут все просто, пользователь сам выбирает какой столбец необходимо сортировать, выделяет необходимый столбец с первой строки (первая строка всегда заголовок) произвольно по вертикали и программно выполняет сортировку, например кликом по кнопке.

Автор - segail
Дата добавления - 02.06.2018 в 12:42
segail Дата: Суббота, 02.06.2018, 12:58 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, Да за был, если это важно, то первая строка это всегда заголовок и выделение всегда идет от первой строки.
Пример того как выделяется столбец
https://yadi.sk/i/y1MWOzSu3Wt3Ft


Сообщение отредактировал segail - Суббота, 02.06.2018, 13:02
 
Ответить
СообщениеPelena, Да за был, если это важно, то первая строка это всегда заголовок и выделение всегда идет от первой строки.
Пример того как выделяется столбец
https://yadi.sk/i/y1MWOzSu3Wt3Ft

Автор - segail
Дата добавления - 02.06.2018 в 12:58
Pelena Дата: Суббота, 02.06.2018, 13:20 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12756
Репутация: 2809 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Вы не ответили на мой вопрос: столбец надо сортировать автономно или остальные столбцы (Масло, например) тоже должны участвовать в сортировке?

И да, чем не устраивает встроенная кнопка АЯ?

Вот такой макрос сортирует таблицу по выделенному столбцу
[vba]
Код
Sub SortCase()
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Selection.Cells(1, 1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Selection.CurrentRegion
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеВы не ответили на мой вопрос: столбец надо сортировать автономно или остальные столбцы (Масло, например) тоже должны участвовать в сортировке?

И да, чем не устраивает встроенная кнопка АЯ?

Вот такой макрос сортирует таблицу по выделенному столбцу
[vba]
Код
Sub SortCase()
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Selection.Cells(1, 1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Selection.CurrentRegion
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
[/vba]

Автор - Pelena
Дата добавления - 02.06.2018 в 13:20
segail Дата: Суббота, 02.06.2018, 13:57 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, Встроенная кнопка АЯ устраивает и ЯА тоже бы устроила если бы можно было бы программно кликая по одной кнопки чередовать сортировку выбирая оптимальный вариант чтобы не спускаться вниз по таблицы, но для того чтобы отсортировать в ручную нужный столбец, необходимо выполнить последовательно ряд действий:
1. Снять защиту листа (лист защищен).
2. Выделить столбец
3. При необходимости перейти в раздел «Данные».
4. Кликнуть по нужной сортировки.
5. Выбрать в диалоговом окне «Сортировать в пределах указанного выделения».
6. Произвести сортировку.
7. Установить защиту листа.
Согласитесь, что выделить одним кликом диапазон, а вторым отсортировать программно более мобильно по отношению к выше перечисленному.
Ни что не участвует в сортировки кроме выделенного столбца, они независимы, в противном случае можно было бы применить фильтр.

Код работает, выполняет то что и необходимо. Благодарствую от души!!!
 
Ответить
СообщениеPelena, Встроенная кнопка АЯ устраивает и ЯА тоже бы устроила если бы можно было бы программно кликая по одной кнопки чередовать сортировку выбирая оптимальный вариант чтобы не спускаться вниз по таблицы, но для того чтобы отсортировать в ручную нужный столбец, необходимо выполнить последовательно ряд действий:
1. Снять защиту листа (лист защищен).
2. Выделить столбец
3. При необходимости перейти в раздел «Данные».
4. Кликнуть по нужной сортировки.
5. Выбрать в диалоговом окне «Сортировать в пределах указанного выделения».
6. Произвести сортировку.
7. Установить защиту листа.
Согласитесь, что выделить одним кликом диапазон, а вторым отсортировать программно более мобильно по отношению к выше перечисленному.
Ни что не участвует в сортировки кроме выделенного столбца, они независимы, в противном случае можно было бы применить фильтр.

Код работает, выполняет то что и необходимо. Благодарствую от души!!!

Автор - segail
Дата добавления - 02.06.2018 в 13:57
segail Дата: Суббота, 02.06.2018, 14:01 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, Извиняюсь не заметил где что исправить в коде чтобы сортировка выполнялась «Сортировать в пределах указанного выделения».
 
Ответить
СообщениеPelena, Извиняюсь не заметил где что исправить в коде чтобы сортировка выполнялась «Сортировать в пределах указанного выделения».

Автор - segail
Дата добавления - 02.06.2018 в 14:01
segail Дата: Суббота, 02.06.2018, 14:32 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, Поторопился я с ликованием, еще кое-какие нюансы просматриваются по отношению к ручной сортировки, программно не сортируются данные находящиеся между строчными пустотами.
 
Ответить
СообщениеPelena, Поторопился я с ликованием, еще кое-какие нюансы просматриваются по отношению к ручной сортировки, программно не сортируются данные находящиеся между строчными пустотами.

Автор - segail
Дата добавления - 02.06.2018 в 14:32
Pelena Дата: Суббота, 02.06.2018, 14:38 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12756
Репутация: 2809 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Для просмотра всех нюансов
пример бы не помешал


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеДля просмотра всех нюансов
пример бы не помешал

Автор - Pelena
Дата добавления - 02.06.2018 в 14:38
segail Дата: Суббота, 02.06.2018, 14:48 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, Момент сейчас подготовлю
 
Ответить
СообщениеPelena, Момент сейчас подготовлю

Автор - segail
Дата добавления - 02.06.2018 в 14:48
segail Дата: Суббота, 02.06.2018, 14:54 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, вводите свои данные, это черновой вариант.
К сообщению приложен файл: 8255657.xlsm(26.6 Kb)
 
Ответить
СообщениеPelena, вводите свои данные, это черновой вариант.

Автор - segail
Дата добавления - 02.06.2018 в 14:54
Pelena Дата: Суббота, 02.06.2018, 15:09 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12756
Репутация: 2809 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Так подойдёт?
[vba]
Код
With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Selection.Cells(1, 1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Intersect(Selection.Columns, ActiveSheet.UsedRange)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
[/vba]


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеТак подойдёт?
[vba]
Код
With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Selection.Cells(1, 1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Intersect(Selection.Columns, ActiveSheet.UsedRange)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
[/vba]

Автор - Pelena
Дата добавления - 02.06.2018 в 15:09
segail Дата: Суббота, 02.06.2018, 15:20 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, да, это то что надо, как бы не сглазить, Вы просто чудо.
Большущая благодарность за помощь!
 
Ответить
СообщениеPelena, да, это то что надо, как бы не сглазить, Вы просто чудо.
Большущая благодарность за помощь!

Автор - segail
Дата добавления - 02.06.2018 в 15:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Программная сортировка произвольного столбца (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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