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

Вход

Регистрация

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

 

= Мир MS Excel/сортировка диапозона макросом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
сортировка диапозона макросом
Shursh85 Дата: Суббота, 07.09.2013, 09:57 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Здраствуйте. Незнаете как в макросе указать чтобы в выбранном диапозоне (например ("S5:B19") один из столбцов не сортировался по отношению ко всему диапозону (Например столбец R). Иными словами чтобы он был сам по себе.

[vba]
Код
Range(Range("S5:B19"), Range("S5").End(xlDown)).Sort key1:=Range("S5"), key2:=Range("E5"), order1:=xlDescending
[/vba]

[admin]Оформляйте коды тегами![/admin]
 
Ответить
СообщениеЗдраствуйте. Незнаете как в макросе указать чтобы в выбранном диапозоне (например ("S5:B19") один из столбцов не сортировался по отношению ко всему диапозону (Например столбец R). Иными словами чтобы он был сам по себе.

[vba]
Код
Range(Range("S5:B19"), Range("S5").End(xlDown)).Sort key1:=Range("S5"), key2:=Range("E5"), order1:=xlDescending
[/vba]

[admin]Оформляйте коды тегами![/admin]

Автор - Shursh85
Дата добавления - 07.09.2013 в 09:57
VictorM Дата: Суббота, 07.09.2013, 10:05 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация: 27 ±
Замечаний: 0% ±

Как-то нужно было такое.
Вышел из ситуации так:
Временно копировал столбец с данными (в Вашем случае столбец R), в любое свободное место листа, делал сортировку, затем возвращал столбец на место, а временную копию удалял.
 
Ответить
СообщениеКак-то нужно было такое.
Вышел из ситуации так:
Временно копировал столбец с данными (в Вашем случае столбец R), в любое свободное место листа, делал сортировку, затем возвращал столбец на место, а временную копию удалял.

Автор - VictorM
Дата добавления - 07.09.2013 в 10:05
Shursh85 Дата: Суббота, 07.09.2013, 10:14 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
VictorM
Нет, смысл понял, но нет не подойдет, изменения в таблице происходят каждую минуту, т.е. у меня 15 заданных диапозонов в котырых постоянные изменения т.е. то что было сейчас первым, например через минуту может оказаться в середине списка и надо что бы столбец (R там значения по убыванию 12,9,8,7,6,и т.д.) вообще ни как не реагировал на изменения всей таблицы
 
Ответить
СообщениеVictorM
Нет, смысл понял, но нет не подойдет, изменения в таблице происходят каждую минуту, т.е. у меня 15 заданных диапозонов в котырых постоянные изменения т.е. то что было сейчас первым, например через минуту может оказаться в середине списка и надо что бы столбец (R там значения по убыванию 12,9,8,7,6,и т.д.) вообще ни как не реагировал на изменения всей таблицы

Автор - Shursh85
Дата добавления - 07.09.2013 в 10:14
nilem Дата: Суббота, 07.09.2013, 11:31 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
может как-то так
[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
[/vba]


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Суббота, 07.09.2013, 11:36
 
Ответить
Сообщениеможет как-то так
[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
[/vba]

Автор - nilem
Дата добавления - 07.09.2013 в 11:31
AndreTM Дата: Суббота, 07.09.2013, 11:36 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Цитата (Shursh85, Суббота, 07.09.2013, 10:14 # 3)
надо что бы столбец (R там значения по убыванию 12,9,8,7,6,и т.д.) вообще ни как не реагировал на изменения всей таблицы
Тогда что этот столбец делает в этой таблице? Не проще ли его вообще вынести в отдельное место?


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
Цитата (Shursh85, Суббота, 07.09.2013, 10:14 # 3)
надо что бы столбец (R там значения по убыванию 12,9,8,7,6,и т.д.) вообще ни как не реагировал на изменения всей таблицы
Тогда что этот столбец делает в этой таблице? Не проще ли его вообще вынести в отдельное место?

Автор - AndreTM
Дата добавления - 07.09.2013 в 11:36
Shursh85 Дата: Суббота, 07.09.2013, 11:52 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
AndreTM,
не все так просто, его нельзя выносить от туда это форма документа такая
 
Ответить
СообщениеAndreTM,
не все так просто, его нельзя выносить от туда это форма документа такая

Автор - Shursh85
Дата добавления - 07.09.2013 в 11:52
AndreTM Дата: Суббота, 07.09.2013, 12:30 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
"Форма документа" уже напрягает.
Я как-то привык, что выходные формы "для отчётности" делаются в соответствующем приложении (хотя бы Word'е).
А Excel - обрабатывает и рассчитывает.

С другой стороны, кто вам мешает "сделать этот мир пластилиновым". То есть (если уж всё надо сделать в Excel) просто заиметь исходную таблицу (без лишних столбиков) на одном листе, а отчётную - на другом, связанном/заполняемом по исходнику?


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение"Форма документа" уже напрягает.
Я как-то привык, что выходные формы "для отчётности" делаются в соответствующем приложении (хотя бы Word'е).
А Excel - обрабатывает и рассчитывает.

С другой стороны, кто вам мешает "сделать этот мир пластилиновым". То есть (если уж всё надо сделать в Excel) просто заиметь исходную таблицу (без лишних столбиков) на одном листе, а отчётную - на другом, связанном/заполняемом по исходнику?

Автор - AndreTM
Дата добавления - 07.09.2013 в 12:30
Shursh85 Дата: Суббота, 07.09.2013, 12:46 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
AndreTM,
Согласен вариант хороший но есть один нюанс, исходная таблица является так сказать наглядной в прямом эфире. Короче связанное со спортом вводятся данные спортсменов и причем как я уже говорил выше данные меняются каждую минуту, сортировку как надо я все сделал по нескольким значениям, а вот одна из колонок должна быть не тронутой тобиш там очки спортсменов, вот и получается что если оставить область как есть, то очки перемещаются вместе со спортсменами, а так не есть хорошо. Потомучто это есче и итоговый протокол
 
Ответить
СообщениеAndreTM,
Согласен вариант хороший но есть один нюанс, исходная таблица является так сказать наглядной в прямом эфире. Короче связанное со спортом вводятся данные спортсменов и причем как я уже говорил выше данные меняются каждую минуту, сортировку как надо я все сделал по нескольким значениям, а вот одна из колонок должна быть не тронутой тобиш там очки спортсменов, вот и получается что если оставить область как есть, то очки перемещаются вместе со спортсменами, а так не есть хорошо. Потомучто это есче и итоговый протокол

Автор - Shursh85
Дата добавления - 07.09.2013 в 12:46
AndreTM Дата: Суббота, 07.09.2013, 13:02 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
В целом, я завязываю... Ибо такие вещи уже понятны.

Мне непонятно одно - что же там такое "сортируется", если "непривязано к спортсмену"
Это как надои по колхозу отсортировать, без привязки к бурёнкам :)
Правильно если действовать - то очки надо рассчитывать (вы же этого добиваетесь?) в отдельной таблице, исходя из текущего положения. А затем уже - подставлять значения очков в результирующий отчёт в нужный столбец...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеВ целом, я завязываю... Ибо такие вещи уже понятны.

Мне непонятно одно - что же там такое "сортируется", если "непривязано к спортсмену"
Это как надои по колхозу отсортировать, без привязки к бурёнкам :)
Правильно если действовать - то очки надо рассчитывать (вы же этого добиваетесь?) в отдельной таблице, исходя из текущего положения. А затем уже - подставлять значения очков в результирующий отчёт в нужный столбец...

Автор - AndreTM
Дата добавления - 07.09.2013 в 13:02
Hugo Дата: Суббота, 07.09.2013, 13:02 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3703
Репутация: 792 ±
Замечаний: 0% ±

365
Да раз в минуту можно что хошь делать, хоть генерить всю таблицу с нуля из кучи разрозненных данных.
Вот если она обновляется по 100 раз в секунду - тогда нужно позаботиться о скорости и эффективности. А так можно делать чуть ли не как угодно - пусть хоть пару секунд в фоне генерится.
И чем не годится убирать временно в сторону тот столбец?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеДа раз в минуту можно что хошь делать, хоть генерить всю таблицу с нуля из кучи разрозненных данных.
Вот если она обновляется по 100 раз в секунду - тогда нужно позаботиться о скорости и эффективности. А так можно делать чуть ли не как угодно - пусть хоть пару секунд в фоне генерится.
И чем не годится убирать временно в сторону тот столбец?

Автор - Hugo
Дата добавления - 07.09.2013 в 13:02
Shursh85 Дата: Суббота, 07.09.2013, 13:36 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
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
Дата добавления - 07.09.2013 в 13:36
VictorM Дата: Суббота, 07.09.2013, 14:21 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация: 27 ±
Замечаний: 0% ±

Понравилась мысль
Цитата
просто оставить эти ячейки пустыми и потом просто дописать и все

почему бы и нет.
Раз уж там фиксированные значения, просто каждый раз после сортировки заполнять их по новой.
делов на милисекунды.
 
Ответить
СообщениеПонравилась мысль
Цитата
просто оставить эти ячейки пустыми и потом просто дописать и все

почему бы и нет.
Раз уж там фиксированные значения, просто каждый раз после сортировки заполнять их по новой.
делов на милисекунды.

Автор - VictorM
Дата добавления - 07.09.2013 в 14:21
Michael_S Дата: Суббота, 07.09.2013, 14:52 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Или формулу прописать, что-то типа =СТРОКА()*(какой_то_коэфф)
При любой сортировке формула и данные не изменятся.
 
Ответить
СообщениеИли формулу прописать, что-то типа =СТРОКА()*(какой_то_коэфф)
При любой сортировке формула и данные не изменятся.

Автор - Michael_S
Дата добавления - 07.09.2013 в 14:52
  • Страница 1 из 1
  • 1
Поиск:

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