Форум по VBA, Excel и Word

VBA, Excel => VBA, макросы в Excel => Тема начата: koreras от 18 декабря 2017, 07:33

Название: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: koreras от 18 декабря 2017, 07:33
В связи с недостаточным знанием, прошу помочь в создании макроса.
Вопрос по листу "план". В ячейке H3 создать макрос, что бы при запуске, скрывал все столбцы с пустым значением с пересечением с 3 строчкой.
И подсказать, как данный макрос расписать на все ячейки столбца H (c 3 по 28).
Ну и соответственно отображение всех столбцов.
Как не пытался использовать предыдущие ответы, так и не смог ни чего сделать.
Лист - План.
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: Администратор от 18 декабря 2017, 08:09
Макросы находятся в файле. Сделано два макроса.

Один макрос запускается, когда юзер щёлкает два раза по ячейке "H2". Этот макрос отображает все столбцы, начиная со столбца I.
Второй макрос запускается, когда юзер щёлкает два раза в столбце H, начиная со строки 3. Этот макрос скрывает столбцы, у которых пусто в строке, по которой щёлкнул юзер.

Если щёлкать два раза неудобно, то можно попробовать другие способы. Например, можно запускать макрос правой мышью (это не сделано, нужно делать).


[вложение удалено администратором]
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: Администратор от 18 декабря 2017, 08:11
Можно сделать, чтобы макрос запускался при щелчке по другому столбцу, например по столбцу A.
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: koreras от 18 декабря 2017, 09:35
Всё шикарно. Благодарю.
Подскажите, а как посмотреть макрос?
Что бы по аналогии писать под необходимые потребности.
Данного макроса не вижу
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: Администратор от 18 декабря 2017, 09:42
Макрос состоит из двух модулей:
1) модуль листа "план". Здесь макрос запускается;
2) модуль "HIDE_SHOW_COLUMNS". В нём и находится собственно макрос.
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: koreras от 18 декабря 2017, 09:53
Хочу посмотреть коды макросов. Для этого я делаю так: вкладка "Вид" - Макросы. Но здесь нет макросов.
Как мне их увидеть?
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: Администратор от 18 декабря 2017, 10:17
Перейти к коду макроса можно так: щёлкните по ярлыку листа "план" правой мышью - Просмотреть код.
Запустится программа "Visual Basic for Applications" и вы перейдёте в модуль листа, о котором я писал в ответе 4.
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: koreras от 18 декабря 2017, 10:30
Увидел.
Как говорится посмотрел и ..... понял что мне ни чего не понятно, как и почему работает.
Прошу подсказать, где надо изменить, что бы увеличить диапазон столбцов.
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: Администратор от 18 декабря 2017, 10:32
Макрос автоматически ищет последний столбец по строке 2. Поэтому при добавлении новых столбцов, макрос должен с ними работать. Если вы добавили столбцы, в строке 2 есть заголовки, а макрос не работает, то выложите этот файл на форуме.
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: koreras от 18 декабря 2017, 10:36
Всё, понял.
Благодарю ещё раз.
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: koreras от 21 декабря 2017, 07:28
Нужен ещё макрос.

Нужно, чтобы на странице План при двойном нажатии например ячейки А3 (*Агарти*), скрывались все столбцы начиная с I, кроме столбца, в котором присутствует ячейка с такими же данными (в данном случае столбец I остаётся, а все остальные(дальше I) скрывались.
Или При двойном нажатии на *Вудпром*(А7), скрывались все столбцы(начиная с I) кроме M (где в ячейке М2 тоже *Вудпром*).
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: Администратор от 21 декабря 2017, 12:14
Макросы в файле.
Двойной щелчок по A2 отобразит все столбцы, начиная со столбца I.
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: koreras от 21 декабря 2017, 12:41
БЛАГОДАРЮ!!!
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: koreras от 12 марта 2018, 07:28
Как переделать макрос HIDE_SHOW_COLUMNS_BY_A, действие макроса тоже самое, но происходило по двойному клику не по столбцу А, а по столбцу G.

[вложение удалено администратором]
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: Администратор от 12 марта 2018, 08:58
см. файл

[вложение удалено администратором]
Название: Re: Excel VBA: Скрытие столбцов по условию с помощью макроса
Отправлено: koreras от 12 марта 2018, 11:47
Благодарю. Всё работает.