Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2017, 16:15   #1
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию Спрятать форму по условию

Дорогие форумяне!
как можно скрыть форму при условии что она уже открыта
за макросом закреплена одна и так же кнопка Application.OnKey "{BS}", "FormShowHide"

пыталась нечто сообразит и не только)

Код:
Sub FormShowHide()


    If UserForm1.Visible = True Then    
    UserForm1.Hide
    Else: UserForm1.Show
    End If
    

End Sub
Знание надмевает, а любовь назидает

Последний раз редактировалось Оксана33; 19.07.2017 в 17:35.
Оксана33 вне форума Ответить с цитированием
Старый 19.07.2017, 16:42   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Оксана33 Посмотреть сообщение
ыталась нечто сообразит и не только)
ну, у меня ваш вариант работает.
только форму нужно сделать не модальной:

- либо в конструкторе в свойствах (Properties) у формы UserForm1 свойство ShowModal поставьте в False

- либо открывайте форму в немодальном режиме:
Код:
Sub Кнопка1_Щелчок()

    If UserForm1.Visible = True Then
      UserForm1.Hide
    Else
      UserForm1.Show vbModeless
    End If
    
End Sub
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.07.2017, 17:37   #3
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

не выходит( я дополнила в теме, что это клавиша Application.OnKey "{BS}", "FormShowHide" и нажатием на нее я хочу вызывать форму и после ею же закрывать
она вызывает форму, но не закрывает
Знание надмевает, а любовь назидает

Последний раз редактировалось Оксана33; 19.07.2017 в 17:57.
Оксана33 вне форума Ответить с цитированием
Старый 19.07.2017, 22:38   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Module1
Код:
Option Explicit
Public IsFormLoaded As Boolean
Sub CheckForm()
    If IsFormLoaded Then
        UserForm1.Hide
        IsFormLoaded = False
    Else
        UserForm1.Show vbModeless
        IsFormLoaded = True
    End If
End Sub
На листе кнопка, на кнопку - событие CheckForm

UserForm1
Код:
Option Explicit
Private Sub UserForm_Initialize()
    IsFormLoaded = True
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    IsFormLoaded = False
End Sub
upd. не читал дополнение о клавише, ну думаю как вариант можете допилить под себя
Код:
Application.OnKey "{BS}", "CheckForm"
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 19.07.2017 в 22:41.
Aleksandr H. вне форума Ответить с цитированием
Старый 20.07.2017, 16:06   #5
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

пасибочки, надо будет поиграться)
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Старый 20.07.2017, 16:52   #6
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

с кнопкой выходит, а с Application.OnKey только если курсор перевести на лист, то есть перевести фокус на лист

а нужно что бы не выходя за пределы формы закрывать ее
и мне нужно без кнопки, она есть на форме, но хотелось бы убрать, чтоб освободить место
спасибо за ответы
Знание надмевает, а любовь назидает

Последний раз редактировалось Оксана33; 20.07.2017 в 16:56.
Оксана33 вне форума Ответить с цитированием
Старый 20.07.2017, 17:12   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Оксана33 Посмотреть сообщение
а нужно что бы не выходя за пределы формы закрывать ее
по Escape устроит?

если нужно закрытие формы по какой-то определённой клавише (сочетанию),
тогда смотрите в сторону создания на форме обработчика события KeyDown (см. Keydown event on a userform)



Цитата:
Сообщение от Оксана33 Посмотреть сообщение
надо будет поиграться)
вот нечем барышне больше поиграться, как кодом на VBA

Последний раз редактировалось Serge_Bliznykov; 20.07.2017 в 17:16.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.07.2017, 18:24   #8
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

ну я имела ввиду разобраться
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Старый 20.07.2017, 18:30   #9
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
по Escape устроит?
как вариант)
Знание надмевает, а любовь назидает

Последний раз редактировалось Оксана33; 20.07.2017 в 18:58.
Оксана33 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Спрятать главную форму и открыть другую Ernest027 Общие вопросы Delphi 1 29.01.2017 22:18
Загрузка данных на форму по условию значения в ComboBox ольгаг Общие вопросы .NET 0 12.02.2016 13:29
Спрятать, скрыть форму... segail HTML и CSS 1 19.02.2012 19:41
При запуске спрятать форму Polotenchik Общие вопросы Delphi 11 07.08.2009 02:14
спрятать главную форму а открыть другую Ozerich Общие вопросы Delphi 9 05.08.2008 15:18