Здраствуйте. Незнаете как в макросе указать чтобы в выбранном диапозоне (например ("S5:B19") один из столбцов не сортировался по отношению ко всему диапозону (Например столбец R). Иными словами чтобы он был сам по себе.
Здраствуйте. Незнаете как в макросе указать чтобы в выбранном диапозоне (например ("S5:B19") один из столбцов не сортировался по отношению ко всему диапозону (Например столбец R). Иными словами чтобы он был сам по себе.
Как-то нужно было такое. Вышел из ситуации так: Временно копировал столбец с данными (в Вашем случае столбец R), в любое свободное место листа, делал сортировку, затем возвращал столбец на место, а временную копию удалял.
Как-то нужно было такое. Вышел из ситуации так: Временно копировал столбец с данными (в Вашем случае столбец R), в любое свободное место листа, делал сортировку, затем возвращал столбец на место, а временную копию удалял.VictorM
VictorM Нет, смысл понял, но нет не подойдет, изменения в таблице происходят каждую минуту, т.е. у меня 15 заданных диапозонов в котырых постоянные изменения т.е. то что было сейчас первым, например через минуту может оказаться в середине списка и надо что бы столбец (R там значения по убыванию 12,9,8,7,6,и т.д.) вообще ни как не реагировал на изменения всей таблицы
VictorM Нет, смысл понял, но нет не подойдет, изменения в таблице происходят каждую минуту, т.е. у меня 15 заданных диапозонов в котырых постоянные изменения т.е. то что было сейчас первым, например через минуту может оказаться в середине списка и надо что бы столбец (R там значения по убыванию 12,9,8,7,6,и т.д.) вообще ни как не реагировал на изменения всей таблицыShursh85
Sub tt() With Range("B5:S" & Cells(Rows.Count, "S").End(xlUp).Row) 'сортировка по строкам; метод Sort .Sort Key1:=.Cells(1, 18), Order1:=xlDescending, _ Key2:=.Cells(1, 4), Order2:=xlDescending With .Columns(17) .Sort Key1:=.Cells(1), Order1:=xlDescending End With End With End Sub
[/vba] взял из Полезных приемов
ну или так: [vba]
Код
Sub ttt() Dim x With Range("B5:S" & Cells(Rows.Count, "S").End(xlUp).Row) 'сортировка по строкам; метод Sort x = .Columns(17).Value .Sort Key1:=.Cells(1, 18), Order1:=xlDescending, _ Key2:=.Cells(1, 4), Order2:=xlDescending .Columns(17).Value = x End With End Sub
[/vba]
может как-то так [vba]
Код
Sub tt() With Range("B5:S" & Cells(Rows.Count, "S").End(xlUp).Row) 'сортировка по строкам; метод Sort .Sort Key1:=.Cells(1, 18), Order1:=xlDescending, _ Key2:=.Cells(1, 4), Order2:=xlDescending With .Columns(17) .Sort Key1:=.Cells(1), Order1:=xlDescending End With End With End Sub
[/vba] взял из Полезных приемов
ну или так: [vba]
Код
Sub ttt() Dim x With Range("B5:S" & Cells(Rows.Count, "S").End(xlUp).Row) 'сортировка по строкам; метод Sort x = .Columns(17).Value .Sort Key1:=.Cells(1, 18), Order1:=xlDescending, _ Key2:=.Cells(1, 4), Order2:=xlDescending .Columns(17).Value = x End With End Sub
"Форма документа" уже напрягает. Я как-то привык, что выходные формы "для отчётности" делаются в соответствующем приложении (хотя бы Word'е). А Excel - обрабатывает и рассчитывает.
С другой стороны, кто вам мешает "сделать этот мир пластилиновым". То есть (если уж всё надо сделать в Excel) просто заиметь исходную таблицу (без лишних столбиков) на одном листе, а отчётную - на другом, связанном/заполняемом по исходнику?
"Форма документа" уже напрягает. Я как-то привык, что выходные формы "для отчётности" делаются в соответствующем приложении (хотя бы Word'е). А Excel - обрабатывает и рассчитывает.
С другой стороны, кто вам мешает "сделать этот мир пластилиновым". То есть (если уж всё надо сделать в Excel) просто заиметь исходную таблицу (без лишних столбиков) на одном листе, а отчётную - на другом, связанном/заполняемом по исходнику?AndreTM
AndreTM, Согласен вариант хороший но есть один нюанс, исходная таблица является так сказать наглядной в прямом эфире. Короче связанное со спортом вводятся данные спортсменов и причем как я уже говорил выше данные меняются каждую минуту, сортировку как надо я все сделал по нескольким значениям, а вот одна из колонок должна быть не тронутой тобиш там очки спортсменов, вот и получается что если оставить область как есть, то очки перемещаются вместе со спортсменами, а так не есть хорошо. Потомучто это есче и итоговый протокол
AndreTM, Согласен вариант хороший но есть один нюанс, исходная таблица является так сказать наглядной в прямом эфире. Короче связанное со спортом вводятся данные спортсменов и причем как я уже говорил выше данные меняются каждую минуту, сортировку как надо я все сделал по нескольким значениям, а вот одна из колонок должна быть не тронутой тобиш там очки спортсменов, вот и получается что если оставить область как есть, то очки перемещаются вместе со спортсменами, а так не есть хорошо. Потомучто это есче и итоговый протоколShursh85
В целом, я завязываю... Ибо такие вещи уже понятны.
Мне непонятно одно - что же там такое "сортируется", если "непривязано к спортсмену" Это как надои по колхозу отсортировать, без привязки к бурёнкам Правильно если действовать - то очки надо рассчитывать (вы же этого добиваетесь?) в отдельной таблице, исходя из текущего положения. А затем уже - подставлять значения очков в результирующий отчёт в нужный столбец...
В целом, я завязываю... Ибо такие вещи уже понятны.
Мне непонятно одно - что же там такое "сортируется", если "непривязано к спортсмену" Это как надои по колхозу отсортировать, без привязки к бурёнкам Правильно если действовать - то очки надо рассчитывать (вы же этого добиваетесь?) в отдельной таблице, исходя из текущего положения. А затем уже - подставлять значения очков в результирующий отчёт в нужный столбец...AndreTM
Да раз в минуту можно что хошь делать, хоть генерить всю таблицу с нуля из кучи разрозненных данных. Вот если она обновляется по 100 раз в секунду - тогда нужно позаботиться о скорости и эффективности. А так можно делать чуть ли не как угодно - пусть хоть пару секунд в фоне генерится. И чем не годится убирать временно в сторону тот столбец?
Да раз в минуту можно что хошь делать, хоть генерить всю таблицу с нуля из кучи разрозненных данных. Вот если она обновляется по 100 раз в секунду - тогда нужно позаботиться о скорости и эффективности. А так можно делать чуть ли не как угодно - пусть хоть пару секунд в фоне генерится. И чем не годится убирать временно в сторону тот столбец?Hugo
AndreTM, Hugo, В этом столбце не изменяемые очки команд т.е. 1 строка 12 очков, 2 строка 9 очков, 3 строка 8 очков и т.д. до 0. Спортсмены зависимо от результата перемещаются по таблице соответственно от наибольшей собственной суммы к наименьшей например Иванов в первом подходе набрал 100 очков а петров 90, Иванов первый и петров второй соответственно Иванов приносит команде 12 очнов а петров 9 после 2 подхода ситуация меняется Иванов набрал 120 очков а Петров 130 XL их меняет местами и уже соответственно петров приносит команде 12 очков а Иванов только 9 и так 3 подхода из этих подходов берется только MAX результат, а людей может оказаться в категории более 20 человек вот они и будут менятся с места на место, а очки команд должны идти строго по убыванию у первого 12 у втого 9 т.д. Я конечно понимаю что можно просто оставить эти ячейки пустыми и потом просто дописать и все, но хотелосьбы как бы сразу. просто у некоторый идет борьбы за место а у некоторых еще и за команду [moder]Судя по всему, предупреждению Сергея Вы не вняли и правила не прочитали. С 10 утра было достаточно для этого времени. Тогда ловите второй китайское предупреждение.
AndreTM, Hugo, В этом столбце не изменяемые очки команд т.е. 1 строка 12 очков, 2 строка 9 очков, 3 строка 8 очков и т.д. до 0. Спортсмены зависимо от результата перемещаются по таблице соответственно от наибольшей собственной суммы к наименьшей например Иванов в первом подходе набрал 100 очков а петров 90, Иванов первый и петров второй соответственно Иванов приносит команде 12 очнов а петров 9 после 2 подхода ситуация меняется Иванов набрал 120 очков а Петров 130 XL их меняет местами и уже соответственно петров приносит команде 12 очков а Иванов только 9 и так 3 подхода из этих подходов берется только MAX результат, а людей может оказаться в категории более 20 человек вот они и будут менятся с места на место, а очки команд должны идти строго по убыванию у первого 12 у втого 9 т.д. Я конечно понимаю что можно просто оставить эти ячейки пустыми и потом просто дописать и все, но хотелосьбы как бы сразу. просто у некоторый идет борьбы за место а у некоторых еще и за команду [moder]Судя по всему, предупреждению Сергея Вы не вняли и правила не прочитали. С 10 утра было достаточно для этого времени. Тогда ловите второй китайское предупреждение.Shursh85