Private Sub Worksheet_Change(ByVal Target As Range) If Target.Columns.Count = 1 Then Range(Range("a2:f14"), Range("a2").End(xlDown)).Sort key1:=Range("a2"), order1:=xlDescending Range(Range("a20:f30"), Range("a20").End(xlDown)).Sort key1:=Range("a20"), order1:=xlDescending Range(Range("a40:f50"), Range("a40").End(xlDown)).Sort key1:=Range("a40"), order1:=xlDescending Range(Range("a60:f70"), Range("a60").End(xlDown)).Sort key1:=Range("a60"), order1:=xlDescending End If End Sub
[/vba]
Цитата (Fortress12)
друг под другом четыре такие таблицы
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Columns.Count = 1 Then Range(Range("a2:f14"), Range("a2").End(xlDown)).Sort key1:=Range("a2"), order1:=xlDescending Range(Range("a20:f30"), Range("a20").End(xlDown)).Sort key1:=Range("a20"), order1:=xlDescending Range(Range("a40:f50"), Range("a40").End(xlDown)).Sort key1:=Range("a40"), order1:=xlDescending Range(Range("a60:f70"), Range("a60").End(xlDown)).Sort key1:=Range("a60"), order1:=xlDescending End If End Sub
И последний мой вопрос в теме - вернемся к началу. Возможно ли сделать макрос чтоб он делал автосортировку только при внесении не руками, а автоматически формулами? Если вношу данные сам то работает все замечательно, забил формулу и не работает
И последний мой вопрос в теме - вернемся к началу. Возможно ли сделать макрос чтоб он делал автосортировку только при внесении не руками, а автоматически формулами? Если вношу данные сам то работает все замечательно, забил формулу и не работаетFortress12
Если на другом, то что бы внести изменения в данные, при которых будет меняться результат работы формулы, Вам придётся покинуть лист, на котором работает макрос автосортировки. Следовательно запускать его можно будет по событию активации этого листа: [vba]
Код
Private Sub Worksheet_Activate() Range(Range("a2:f14"), Range("a2").End(xlDown)).Sort key1:=Range("a2"), order1:=xlDescending End Sub
[/vba]
Цитата (Fortress12)
на другом
Если на другом, то что бы внести изменения в данные, при которых будет меняться результат работы формулы, Вам придётся покинуть лист, на котором работает макрос автосортировки. Следовательно запускать его можно будет по событию активации этого листа: [vba]
Код
Private Sub Worksheet_Activate() Range(Range("a2:f14"), Range("a2").End(xlDown)).Sort key1:=Range("a2"), order1:=xlDescending End Sub