Есть большой документ начинает с км 00+00 и заканчиваеться км 39+00
Задача напечатать с 15+00 до 20+00 и внизу еще объем надо написать
Я делаю так: до 14+80 скрываю и с 20+20 скрываю остаеться только с 15+00 до 20+00, а внизу есть 4 строчки итогового объема.
Как сделать так что бы я мог написать (15+00 - 20+00) и он выделит эти км, автоматом скрыв не нужные строки до надписи (ИТОГО) при этом ни как не затронув значения и формулы самого документа.
Есть большой документ начинает с км 00+00 и заканчиваеться км 39+00
Задача напечатать с 15+00 до 20+00 и внизу еще объем надо написать
Я делаю так: до 14+80 скрываю и с 20+20 скрываю остаеться только с 15+00 до 20+00, а внизу есть 4 строчки итогового объема.
Как сделать так что бы я мог написать (15+00 - 20+00) и он выделит эти км, автоматом скрыв не нужные строки до надписи (ИТОГО) при этом ни как не затронув значения и формулы самого документа.Doolosbekov
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect([p2:p3], Target) Is Nothing Then Exit Sub ActiveSheet.Range("$B$8:$O$50000").AutoFilter Field:=1 ActiveSheet.Range("$B$8:$O$50000").AutoFilter Field:=1, Criteria1:=">=" & [p2].Value, _ Operator:=xlAnd, Criteria2:="<=" & [p3].Value End Sub
[/vba] Макрос, который смотрит на формулу в 14-м столбце: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect([p2:p3], Target) Is Nothing Then Exit Sub ActiveSheet.Range("$B$8:$O$50000").AutoFilter Field:=14 ActiveSheet.Range("$B$8:$O$50000").AutoFilter Field:=14, Criteria1:="ИСТИНА" End Sub
[/vba] Можно использовать любой из них - первый макрос будет работать и без столбца с формулой - второй смотрит на результат формулы, так что можно подогнать формулу под свои условия
Формула:
Код
=И(B9<=$P$3;B9>=$P$2)
Макрос, который смотрит на значения: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect([p2:p3], Target) Is Nothing Then Exit Sub ActiveSheet.Range("$B$8:$O$50000").AutoFilter Field:=1 ActiveSheet.Range("$B$8:$O$50000").AutoFilter Field:=1, Criteria1:=">=" & [p2].Value, _ Operator:=xlAnd, Criteria2:="<=" & [p3].Value End Sub
[/vba] Макрос, который смотрит на формулу в 14-м столбце: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect([p2:p3], Target) Is Nothing Then Exit Sub ActiveSheet.Range("$B$8:$O$50000").AutoFilter Field:=14 ActiveSheet.Range("$B$8:$O$50000").AutoFilter Field:=14, Criteria1:="ИСТИНА" End Sub
[/vba] Можно использовать любой из них - первый макрос будет работать и без столбца с формулой - второй смотрит на результат формулы, так что можно подогнать формулу под свои условия SLAVICK
Если структура одинаковая - то просто скопируйте макрос листа в нужные листы (Alt F11) Макрос значения не меняет - он просто скрывает лишние строки - по факту они есть, просто скрыты.
Если структура одинаковая - то просто скопируйте макрос листа в нужные листы (Alt F11) Макрос значения не меняет - он просто скрывает лишние строки - по факту они есть, просто скрыты. SLAVICK
SLAVICK, Открываю нужный мне документ, копирую Ваш макрос, вставляю Ваш макрос, закрываю окно макроса, и сохроняю! После этого программа прекрашает работу.
SLAVICK, Открываю нужный мне документ, копирую Ваш макрос, вставляю Ваш макрос, закрываю окно макроса, и сохроняю! После этого программа прекрашает работу.Doolosbekov
Положите кусок файла - так вроде все верно. может глюк excel - в 2013-м такое бывает, а может фильтров на листе нет, может фильтры не на том диапазоне может еще чего.
Положите кусок файла - так вроде все верно. может глюк excel - в 2013-м такое бывает, а может фильтров на листе нет, может фильтры не на том диапазоне может еще чего. SLAVICK
SLAVICK, Я фильтры вообще не вставлял на новый лист
тогда понятно - посмотрите в моем примере установлен фильтр со столбца В и до О. $B$8:$O$50000 Это важно - без этого макрос работать не будет. Или нужно писать совсем другой макрос - но он будет срабатывать на порядок дольше.
SLAVICK, Я фильтры вообще не вставлял на новый лист
тогда понятно - посмотрите в моем примере установлен фильтр со столбца В и до О. $B$8:$O$50000 Это важно - без этого макрос работать не будет. Или нужно писать совсем другой макрос - но он будет срабатывать на порядок дольше.SLAVICK