Скрытие столбцов по условию
китин
Дата: Среда, 27.04.2016, 12:07 |
Сообщение № 1
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
Доброго всем времени суток!!!!! Очередная попытка автоматизировать процесс .Попробовал написать при помощи макрорекордера макрос скрытия столбцов. Должны оставаться не скрытыми только столбцы с названием "УП" .Но вот такая конструкция скрывает все столбцы
[vba]
Код
Sub skr() Columns("O:S").Select Selection.EntireColumn.Hidden = True Columns("U:Y").Select Selection.EntireColumn.Hidden = True Columns("AA:AE").Select Selection.EntireColumn.Hidden = True Columns("AG:AK").Select Selection.EntireColumn.Hidden = True Columns("AM:AQ").Select Selection.EntireColumn.Hidden = True Columns("AS:AW").Select Selection.EntireColumn.Hidden = True Columns("AY:BC").Select Selection.EntireColumn.Hidden = True Columns("BE:BI").Select Selection.EntireColumn.Hidden = True Columns("BK:BO").Select Selection.EntireColumn.Hidden = True Columns("BQ:BU").Select Selection.EntireColumn.Hidden = True Columns("BW:CA").Select Selection.EntireColumn.Hidden = True Columns("CC:CG").Select Selection.EntireColumn.Hidden = True Columns("CI:CM").Select Selection.EntireColumn.Hidden = True Columns("CO:CS").Select Selection.EntireColumn.Hidden = True Columns("CU:CY").Select Selection.EntireColumn.Hidden = True Columns("DA:DE").Select Selection.EntireColumn.Hidden = True Columns("DG:DK").Select Selection.EntireColumn.Hidden = True Columns("DM:DQ").Select Selection.EntireColumn.Hidden = True Columns("DS:DW").Select Selection.EntireColumn.Hidden = True Columns("DY:EC").Select Selection.EntireColumn.Hidden = True Columns("EE:EI").Select Selection.EntireColumn.Hidden = True Columns("EK:EO").Select Selection.EntireColumn.Hidden = True Columns("EQ:EU").Select Selection.EntireColumn.Hidden = True Columns("EW:FA").Select Selection.EntireColumn.Hidden = True Columns("FC:FG").Select Selection.EntireColumn.Hidden = True Columns("FI:FM").Select Selection.EntireColumn.Hidden = True Columns("FO:FS").Select Selection.EntireColumn.Hidden = True Columns("FU:FY").Select Selection.EntireColumn.Hidden = True
[/vba]End Sub
не оставляя столбцы УП открытыми.Вопрос Почему??? И можно ли сделать критерием НЕскрытия значение из ячейки N5 ?
Доброго всем времени суток!!!!! Очередная попытка автоматизировать процесс .Попробовал написать при помощи макрорекордера макрос скрытия столбцов. Должны оставаться не скрытыми только столбцы с названием "УП" .Но вот такая конструкция скрывает все столбцы
[vba]
Код
Sub skr() Columns("O:S").Select Selection.EntireColumn.Hidden = True Columns("U:Y").Select Selection.EntireColumn.Hidden = True Columns("AA:AE").Select Selection.EntireColumn.Hidden = True Columns("AG:AK").Select Selection.EntireColumn.Hidden = True Columns("AM:AQ").Select Selection.EntireColumn.Hidden = True Columns("AS:AW").Select Selection.EntireColumn.Hidden = True Columns("AY:BC").Select Selection.EntireColumn.Hidden = True Columns("BE:BI").Select Selection.EntireColumn.Hidden = True Columns("BK:BO").Select Selection.EntireColumn.Hidden = True Columns("BQ:BU").Select Selection.EntireColumn.Hidden = True Columns("BW:CA").Select Selection.EntireColumn.Hidden = True Columns("CC:CG").Select Selection.EntireColumn.Hidden = True Columns("CI:CM").Select Selection.EntireColumn.Hidden = True Columns("CO:CS").Select Selection.EntireColumn.Hidden = True Columns("CU:CY").Select Selection.EntireColumn.Hidden = True Columns("DA:DE").Select Selection.EntireColumn.Hidden = True Columns("DG:DK").Select Selection.EntireColumn.Hidden = True Columns("DM:DQ").Select Selection.EntireColumn.Hidden = True Columns("DS:DW").Select Selection.EntireColumn.Hidden = True Columns("DY:EC").Select Selection.EntireColumn.Hidden = True Columns("EE:EI").Select Selection.EntireColumn.Hidden = True Columns("EK:EO").Select Selection.EntireColumn.Hidden = True Columns("EQ:EU").Select Selection.EntireColumn.Hidden = True Columns("EW:FA").Select Selection.EntireColumn.Hidden = True Columns("FC:FG").Select Selection.EntireColumn.Hidden = True Columns("FI:FM").Select Selection.EntireColumn.Hidden = True Columns("FO:FS").Select Selection.EntireColumn.Hidden = True Columns("FU:FY").Select Selection.EntireColumn.Hidden = True
[/vba]End Sub
не оставляя столбцы УП открытыми.Вопрос Почему??? И можно ли сделать критерием НЕскрытия значение из ячейки N5 ? китин
К сообщению приложен файл:
skr.xlsm
(40.0 Kb)
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение Доброго всем времени суток!!!!! Очередная попытка автоматизировать процесс .Попробовал написать при помощи макрорекордера макрос скрытия столбцов. Должны оставаться не скрытыми только столбцы с названием "УП" .Но вот такая конструкция скрывает все столбцы
[vba]
Код
Sub skr() Columns("O:S").Select Selection.EntireColumn.Hidden = True Columns("U:Y").Select Selection.EntireColumn.Hidden = True Columns("AA:AE").Select Selection.EntireColumn.Hidden = True Columns("AG:AK").Select Selection.EntireColumn.Hidden = True Columns("AM:AQ").Select Selection.EntireColumn.Hidden = True Columns("AS:AW").Select Selection.EntireColumn.Hidden = True Columns("AY:BC").Select Selection.EntireColumn.Hidden = True Columns("BE:BI").Select Selection.EntireColumn.Hidden = True Columns("BK:BO").Select Selection.EntireColumn.Hidden = True Columns("BQ:BU").Select Selection.EntireColumn.Hidden = True Columns("BW:CA").Select Selection.EntireColumn.Hidden = True Columns("CC:CG").Select Selection.EntireColumn.Hidden = True Columns("CI:CM").Select Selection.EntireColumn.Hidden = True Columns("CO:CS").Select Selection.EntireColumn.Hidden = True Columns("CU:CY").Select Selection.EntireColumn.Hidden = True Columns("DA:DE").Select Selection.EntireColumn.Hidden = True Columns("DG:DK").Select Selection.EntireColumn.Hidden = True Columns("DM:DQ").Select Selection.EntireColumn.Hidden = True Columns("DS:DW").Select Selection.EntireColumn.Hidden = True Columns("DY:EC").Select Selection.EntireColumn.Hidden = True Columns("EE:EI").Select Selection.EntireColumn.Hidden = True Columns("EK:EO").Select Selection.EntireColumn.Hidden = True Columns("EQ:EU").Select Selection.EntireColumn.Hidden = True Columns("EW:FA").Select Selection.EntireColumn.Hidden = True Columns("FC:FG").Select Selection.EntireColumn.Hidden = True Columns("FI:FM").Select Selection.EntireColumn.Hidden = True Columns("FO:FS").Select Selection.EntireColumn.Hidden = True Columns("FU:FY").Select Selection.EntireColumn.Hidden = True
[/vba]End Sub
не оставляя столбцы УП открытыми.Вопрос Почему??? И можно ли сделать критерием НЕскрытия значение из ячейки N5 ? Автор - китин Дата добавления - 27.04.2016 в 12:07
Manyasha
Дата: Среда, 27.04.2016, 12:19 |
Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
898
±
Замечаний:
0% ±
Excel 2010, 2016
Игорь, здравствуйте, вот так можно: [vba]Код
Sub skr() Application.ScreenUpdating = False For j = 15 To Cells(5, Columns.Count).End(xlToLeft).Column If Cells(5, j) <> "УП" Then Columns(j).Hidden = True Next j End Sub
[/vba]не оставляя столбцы УП открытыми.Вопрос Почему???
в строке 2 есть объединенная ячейка. Попробуйте выполнить [vba][/vba] выделятся все столбцы.
Игорь, здравствуйте, вот так можно: [vba]Код
Sub skr() Application.ScreenUpdating = False For j = 15 To Cells(5, Columns.Count).End(xlToLeft).Column If Cells(5, j) <> "УП" Then Columns(j).Hidden = True Next j End Sub
[/vba]не оставляя столбцы УП открытыми.Вопрос Почему???
в строке 2 есть объединенная ячейка. Попробуйте выполнить [vba][/vba] выделятся все столбцы. Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение Игорь, здравствуйте, вот так можно: [vba]Код
Sub skr() Application.ScreenUpdating = False For j = 15 To Cells(5, Columns.Count).End(xlToLeft).Column If Cells(5, j) <> "УП" Then Columns(j).Hidden = True Next j End Sub
[/vba]не оставляя столбцы УП открытыми.Вопрос Почему???
в строке 2 есть объединенная ячейка. Попробуйте выполнить [vba][/vba] выделятся все столбцы. Автор - Manyasha Дата добавления - 27.04.2016 в 12:19
_Boroda_
Дата: Среда, 27.04.2016, 12:19 |
Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Вариантов куча. Например, вот такой [vba]Код
Sub pok() Columns("N:GA").EntireColumn.Hidden = False End Sub Sub skr() Dim d_ As Range Application.ScreenUpdating = 0 Set d_ = Range("N5:GA5") c_ = d_.Cells.Count For i = 1 To c_ If d_(i) <> "УП" Then d_(i).ColumnWidth = 0 End If Next i End Sub
[/vba] [p.s.]Избавляйся от Селектов (пример в первом макросе Пок
Вариантов куча. Например, вот такой [vba]Код
Sub pok() Columns("N:GA").EntireColumn.Hidden = False End Sub Sub skr() Dim d_ As Range Application.ScreenUpdating = 0 Set d_ = Range("N5:GA5") c_ = d_.Cells.Count For i = 1 To c_ If d_(i) <> "УП" Then d_(i).ColumnWidth = 0 End If Next i End Sub
[/vba] [p.s.]Избавляйся от Селектов (пример в первом макросе Пок _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Вариантов куча. Например, вот такой [vba]Код
Sub pok() Columns("N:GA").EntireColumn.Hidden = False End Sub Sub skr() Dim d_ As Range Application.ScreenUpdating = 0 Set d_ = Range("N5:GA5") c_ = d_.Cells.Count For i = 1 To c_ If d_(i) <> "УП" Then d_(i).ColumnWidth = 0 End If Next i End Sub
[/vba] [p.s.]Избавляйся от Селектов (пример в первом макросе Пок Автор - _Boroda_ Дата добавления - 27.04.2016 в 12:19
китин
Дата: Среда, 27.04.2016, 13:15 |
Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
спасиииибо!!!!в строке 2 есть объединенная ячейка.
во я баран!!! а как вот здесь [vba][/vba] заменить "УП" на значение ячейки N5 ? тупая замена [vba][/vba] не прокатила
спасиииибо!!!!в строке 2 есть объединенная ячейка.
во я баран!!! а как вот здесь [vba][/vba] заменить "УП" на значение ячейки N5 ? тупая замена [vba][/vba] не прокатила китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение спасиииибо!!!!в строке 2 есть объединенная ячейка.
во я баран!!! а как вот здесь [vba][/vba] заменить "УП" на значение ячейки N5 ? тупая замена [vba][/vba] не прокатила Автор - китин Дата добавления - 27.04.2016 в 13:15
Manyasha
Дата: Среда, 27.04.2016, 13:31 |
Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
898
±
Замечаний:
0% ±
Excel 2010, 2016
Заменить можно так:Range("n5") или cells(5, "n") или cells(5, 14) или [n5] [vba]Код
If d_(i) <> cells(5, "n") Then
[/vba]
Заменить можно так:Range("n5") или cells(5, "n") или cells(5, 14) или [n5] [vba]Код
If d_(i) <> cells(5, "n") Then
[/vba] Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение Заменить можно так:Range("n5") или cells(5, "n") или cells(5, 14) или [n5] [vba]Код
If d_(i) <> cells(5, "n") Then
[/vba] Автор - Manyasha Дата добавления - 27.04.2016 в 13:31
китин
Дата: Среда, 27.04.2016, 14:44 |
Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
Спасибо Марина !!!!
Спасибо Марина !!!! китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение Спасибо Марина !!!! Автор - китин Дата добавления - 27.04.2016 в 14:44
_Boroda_
Дата: Среда, 27.04.2016, 16:06 |
Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Меня почему-то 2,5 часа не пускало на форум, говорило, что прав нет. Если скрывать столбцы без Селекта, то объединенная ячейка не мешает. А вообще-то, я бы сделал все на одну кнопку с изменяемым названием (кстати, лучше на кнопку Актив Ч, но, уж если ты начал с кнопкой элементов управления работать, то с ней). Примерно вот так [vba]Код
Sub SkrPok() Dim d_ As Range Application.ScreenUpdating = 0 Set d_ = Range("O5:GA5") If d_(1).ColumnWidth Then c_ = d_.Cells.Count n_ = Range("N3") d_.EntireColumn.Hidden = False For i = 1 To c_ If d_(i) <> n_ Then d_(i).ColumnWidth = 0 End If Next i ActiveSheet.DrawingObjects("Кнопка 2").Characters.Text = "Показать" Else d_.EntireColumn.Hidden = False ActiveSheet.DrawingObjects("Кнопка 2").Characters.Text = "Скрыть" End If End Sub
[/vba]
Меня почему-то 2,5 часа не пускало на форум, говорило, что прав нет. Если скрывать столбцы без Селекта, то объединенная ячейка не мешает. А вообще-то, я бы сделал все на одну кнопку с изменяемым названием (кстати, лучше на кнопку Актив Ч, но, уж если ты начал с кнопкой элементов управления работать, то с ней). Примерно вот так [vba]Код
Sub SkrPok() Dim d_ As Range Application.ScreenUpdating = 0 Set d_ = Range("O5:GA5") If d_(1).ColumnWidth Then c_ = d_.Cells.Count n_ = Range("N3") d_.EntireColumn.Hidden = False For i = 1 To c_ If d_(i) <> n_ Then d_(i).ColumnWidth = 0 End If Next i ActiveSheet.DrawingObjects("Кнопка 2").Characters.Text = "Показать" Else d_.EntireColumn.Hidden = False ActiveSheet.DrawingObjects("Кнопка 2").Characters.Text = "Скрыть" End If End Sub
[/vba] _Boroda_
К сообщению приложен файл:
kr_2.xlsm
(38.5 Kb)
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Меня почему-то 2,5 часа не пускало на форум, говорило, что прав нет. Если скрывать столбцы без Селекта, то объединенная ячейка не мешает. А вообще-то, я бы сделал все на одну кнопку с изменяемым названием (кстати, лучше на кнопку Актив Ч, но, уж если ты начал с кнопкой элементов управления работать, то с ней). Примерно вот так [vba]Код
Sub SkrPok() Dim d_ As Range Application.ScreenUpdating = 0 Set d_ = Range("O5:GA5") If d_(1).ColumnWidth Then c_ = d_.Cells.Count n_ = Range("N3") d_.EntireColumn.Hidden = False For i = 1 To c_ If d_(i) <> n_ Then d_(i).ColumnWidth = 0 End If Next i ActiveSheet.DrawingObjects("Кнопка 2").Characters.Text = "Показать" Else d_.EntireColumn.Hidden = False ActiveSheet.DrawingObjects("Кнопка 2").Characters.Text = "Скрыть" End If End Sub
[/vba] Автор - _Boroda_ Дата добавления - 27.04.2016 в 16:06
китин
Дата: Четверг, 28.04.2016, 07:35 |
Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
я бы сделал все на одну кнопку с изменяемым названием
Теперь вопрос КАК ? Кнопку сделал, текст написал. Если СКРЫТЬ то останавливается на [vba]Код
ActiveSheet.DrawingObjects("Кнопка 2").Characters.Text = "Показать"
[/vba].ну и соответственно наоборот. в формат впихнуть две записи не прокатило
я бы сделал все на одну кнопку с изменяемым названием
Теперь вопрос КАК ? Кнопку сделал, текст написал. Если СКРЫТЬ то останавливается на [vba]Код
ActiveSheet.DrawingObjects("Кнопка 2").Characters.Text = "Показать"
[/vba].ну и соответственно наоборот. в формат впихнуть две записи не прокатилокитин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Сообщение отредактировал китин - Четверг, 28.04.2016, 07:39
Ответить
Сообщение я бы сделал все на одну кнопку с изменяемым названием
Теперь вопрос КАК ? Кнопку сделал, текст написал. Если СКРЫТЬ то останавливается на [vba]Код
ActiveSheet.DrawingObjects("Кнопка 2").Characters.Text = "Показать"
[/vba].ну и соответственно наоборот. в формат впихнуть две записи не прокатилоАвтор - китин Дата добавления - 28.04.2016 в 07:35
_Boroda_
Дата: Четверг, 28.04.2016, 07:50 |
Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
У тебя скорее всего кнопка называется не "Кнопка 2". Вариантов несколько. Пара самых простых: 1. Если у тебя пока одна кнопка на листе, то можно написать [vba]Код
ActiveSheet.DrawingObjects(1).Characters.Text = "Показать"
[/vba]1- это первая кнопка. Последующие будут с индексами 2,3,... 1.1. Если кнопок несколько, то можно узнать индекс нужной, выделив ее и запустив вот это [vba][/vba] 2. А можно выделить кнопку и посмотреть в левый верхний угол - там, левее строки формул, будет написано ее название. Кстати, там можно и переименовать кнопку
У тебя скорее всего кнопка называется не "Кнопка 2". Вариантов несколько. Пара самых простых: 1. Если у тебя пока одна кнопка на листе, то можно написать [vba]Код
ActiveSheet.DrawingObjects(1).Characters.Text = "Показать"
[/vba]1- это первая кнопка. Последующие будут с индексами 2,3,... 1.1. Если кнопок несколько, то можно узнать индекс нужной, выделив ее и запустив вот это [vba][/vba] 2. А можно выделить кнопку и посмотреть в левый верхний угол - там, левее строки формул, будет написано ее название. Кстати, там можно и переименовать кнопку _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение У тебя скорее всего кнопка называется не "Кнопка 2". Вариантов несколько. Пара самых простых: 1. Если у тебя пока одна кнопка на листе, то можно написать [vba]Код
ActiveSheet.DrawingObjects(1).Characters.Text = "Показать"
[/vba]1- это первая кнопка. Последующие будут с индексами 2,3,... 1.1. Если кнопок несколько, то можно узнать индекс нужной, выделив ее и запустив вот это [vba][/vba] 2. А можно выделить кнопку и посмотреть в левый верхний угол - там, левее строки формул, будет написано ее название. Кстати, там можно и переименовать кнопку Автор - _Boroda_ Дата добавления - 28.04.2016 в 07:50
китин
Дата: Четверг, 28.04.2016, 08:25 |
Сообщение № 10
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
Спасибо Саша. Я тупо в макросе переименовал кнопка 2 в кнопку 1
Спасибо Саша. Я тупо в макросе переименовал кнопка 2 в кнопку 1 китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение Спасибо Саша. Я тупо в макросе переименовал кнопка 2 в кнопку 1 Автор - китин Дата добавления - 28.04.2016 в 08:25