Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range: Set rng = [D35:D52] If Not Intersect(rng, Target) Is Nothing Then Call Сортировка End If End Sub Private Sub Сортировка() Application.ScreenUpdating = False Application.EnableEvents = False Range("B10:C19").Select ActiveWorkbook.Worksheets("Лист2").sort.SortFields.Clear ActiveWorkbook.Worksheets("Лист2").sort.SortFields.Add Key:=Range("B10:B19"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Лист2").sort .SetRange Range("B10:C19") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Application.ScreenUpdating = True Application.EnableEvents = True End Sub |
Автоматический запуск макроса при изменении значение в выбранном диапазоне
12.11.2018 14:30:55
А когда (в каком случае) должен срабатывать автоматическая сортировка?
"Все гениальное просто, а все простое гениально!!!"
|
|
|
|
12.11.2018 14:36:02
Непонятно. Допустим (ДОПУСТИМ!), что сортировка и отлов события идут для одного и того же листа. Отлавливаем событие изменения в диапазоне D35:D52
В сортировке резвимся с диапазоном B10:C19. Это так и надо?
Кому решение нужно - тот пример и рисует.
|
|
|
|
12.11.2018 14:59:30
Изменено: |
|||||
|
|
12.11.2018 15:08:03
Сортировка и отлов события идут для одного и того же листа?
Кому решение нужно - тот пример и рисует.
|
|
|
|
12.11.2018 15:09:59
|
|||
|
|
12.11.2018 15:13:16
в этой части вроде диапазон указан верно, может у Вас
"Все гениальное просто, а все простое гениально!!!"
|
|||||||||||
|
|
12.11.2018 15:22:27
Nordheim,в общем вот файл, изменяем значение в диапазоне D35:D52, у нас меняются значения соответственно в диапазоне E35:E52, эти значения переносятся на лист2, где происходит сортировка(по логике она должна меняться автоматически при изменение значений в D35:D52, в принципе можно это сделать на одном листе, в диапазоне B58:C67.
|
|
|
|
12.11.2018 15:39:43
1. Сортировка идет на АКТИВНОМ листе.
2. В процедуре Private Sub Сортировка() НЕТ инструкции о активации листа.
Кому решение нужно - тот пример и рисует.
|
|
|
|
12.11.2018 15:46:18
Пытливый,так что нужно сделать ?
|
|
|
|
12.11.2018 15:47:46
Дать теме название, по которому будет понятно, что хотите.
kosyak777, у Вас постоянные косяки в этом вопросе. Нужно называть так, чтобы понимали те, кто совершенно не знает Вашей задачи |
|
|
|
12.11.2018 15:49:34
Ничего не нужно вставлять. Нужно удалять.
И смысла в отключении событий и обновления экрана тоже никакого. PS Не заметил сразу, что косяк!
Изменено: |
|||
|
|
12.11.2018 15:50:12
Или я чего то не понимаю, возможно не внимательно прочитал. Изменяем значение в диапазоне D35:D52, меняется E35:E52 на новую дату, далее происходит сортировка на листе 2. Все работает
|
|
|
|
12.11.2018 15:53:07
|
|||
|
|
12.11.2018 15:57:05
|
|
|
|
12.11.2018 16:00:29
Запуск макроса... дальше - то, что Вам нужно. при изменении ячкейки, если на А1 упал окурок, если пора кушать... Ну, думайте же!
|
|
|
|
12.11.2018 16:02:57
По вопросам из тем форума, личку не читаю.
|
|||
|
|
12.11.2018 16:14:20
Вы изменили код примера из предыдущей вашей темы и не правильно.
|
|
|
|
12.11.2018 16:15:20
Макрос работает, если выделить код и нажать Run_sub, а автоматически так и не срабатывает
|
|
|
|
12.11.2018 16:16:30
Сообщение №16. Вам предложено подумать
Я могу сделать макрос автоматичекским, если запущу его из другого макроса. Н Вам же не этого хочется? |
|
|
|
12.11.2018 16:16:38
vikttur, тема: Автоматический запуск макроса, если изменятся значение в выбранном диапазоне
|
|
|
|
12.11.2018 16:38:23
так и не понял в чем суть, но сделал два пробела в начале кода и все заработало, черт голову сломит с вашими макросами)
всем большое спасибо! |
|
|
|
12.11.2018 19:00:01
"Все гениальное просто, а все простое гениально!!!"
|
||||
|
|
|||