Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сокрытие/скрытие массива при нажатии на одну и ту же кнопку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сокрытие/скрытие массива при нажатии на одну и ту же кнопку (Макросы/Sub)
Сокрытие/скрытие массива при нажатии на одну и ту же кнопку
ant6729 Дата: Вторник, 06.06.2017, 22:50 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Добрый вечер!
После серии самостоятельных побед над VBA...
Не могу решить очередную ситуацию на листе...
Как сделать так, чтобы при нажатии на одну и ту же кнопку выполнялся сначала Hide, потом Show

Нажал - выполнился Hide
Нажал - выполнился Show

Причем после нажатия Hide название Кнопки менялось на Show
После очередного нажатия на Hide

Подскажите, пожалуйста, как это сделать??? Особенно первую часть.
Код в модуле листа.

Файл приложил.
К сообщению приложен файл: 234567.xlsm (17.6 Kb)


Сообщение отредактировал ant6729 - Вторник, 06.06.2017, 23:00
 
Ответить
СообщениеДобрый вечер!
После серии самостоятельных побед над VBA...
Не могу решить очередную ситуацию на листе...
Как сделать так, чтобы при нажатии на одну и ту же кнопку выполнялся сначала Hide, потом Show

Нажал - выполнился Hide
Нажал - выполнился Show

Причем после нажатия Hide название Кнопки менялось на Show
После очередного нажатия на Hide

Подскажите, пожалуйста, как это сделать??? Особенно первую часть.
Код в модуле листа.

Файл приложил.

Автор - ant6729
Дата добавления - 06.06.2017 в 22:50
_Boroda_ Дата: Вторник, 06.06.2017, 23:16 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
при нажатии на одну и ту же кнопку выполнялся сначала Hide, потом Show
Нужна какая-то метка. Например, можно проверять, скрыт ли последний столбец. Если скрыт, то открываем, если открыт, то скрываем.
А в совокупности со второй частью вообще все просто - считываем название кнопки и делаем то, что на ней написано
[vba]
Код
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = 0
    Application.Calculation = xlCalculationManual
    If CommandButton1.Caption = "Hide" Then
        col_ = Cells.Find(What:=Date + 2, After:=ActiveCell, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Column
        Cells(1, col_).Resize(1, Columns.Count - col_ + 1).EntireColumn.Hidden = True
        CommandButton1.Caption = "Show"
    Else
        Columns.EntireColumn.Hidden = False
        CommandButton1.Caption = "Hide"
    End If
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = 0
End Sub
[/vba]
Только зря Вы скрываете все столбцы правее - это тормозит Excel, да и открываются они долго
К сообщению приложен файл: 234567_1.xlsm (18.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
при нажатии на одну и ту же кнопку выполнялся сначала Hide, потом Show
Нужна какая-то метка. Например, можно проверять, скрыт ли последний столбец. Если скрыт, то открываем, если открыт, то скрываем.
А в совокупности со второй частью вообще все просто - считываем название кнопки и делаем то, что на ней написано
[vba]
Код
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = 0
    Application.Calculation = xlCalculationManual
    If CommandButton1.Caption = "Hide" Then
        col_ = Cells.Find(What:=Date + 2, After:=ActiveCell, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Column
        Cells(1, col_).Resize(1, Columns.Count - col_ + 1).EntireColumn.Hidden = True
        CommandButton1.Caption = "Show"
    Else
        Columns.EntireColumn.Hidden = False
        CommandButton1.Caption = "Hide"
    End If
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = 0
End Sub
[/vba]
Только зря Вы скрываете все столбцы правее - это тормозит Excel, да и открываются они долго

Автор - _Boroda_
Дата добавления - 06.06.2017 в 23:16
ant6729 Дата: Вторник, 06.06.2017, 23:32 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Спасибо, _Boroda_...!
Порция инфы для разбора...
 
Ответить
СообщениеСпасибо, _Boroda_...!
Порция инфы для разбора...

Автор - ant6729
Дата добавления - 06.06.2017 в 23:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сокрытие/скрытие массива при нажатии на одну и ту же кнопку (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!