Страницы: 1
RSS
UserForm - активна или нет
 
Приветствую!  
Задача - если UserForm активна, берем номер строки с нее, если нет - с листа.  
Как определить номер - решаемая проблема.    
Как определить, где искать?
 
у UserForm есть свойство Enabled - это не оно?
 
По проверке ошибки:  
 
On Error Resume Next  
r = Userform.Caption  
If Err <> 0 Then r= Range("A1").Value
 
Если написать r = UserForm.Caption  
то ошибка возникает всегда (не зависимо от того, открыта-ли форма)  
Если написать r = UserForm1.Caption  
то ошибка не возникает никогда(не зависимо от того, открыта-ли форма)
 
а так?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
нет, мой предыдущий вариант некорректен в случае вызова метода Hide  
вот так - вроде бы всегда корректно работает  
но надо пробовать :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Сенькюю!
 
Имею возразить :-)  
Если мы загрузим форму вот так:  
UserForm1.Show 0  
то, кликнув по любой ячейке, и нажав на кнопку Check на листе, получим сообщение "Из формы". Это я всё к чему: форма отображена, но НЕ АКТИВНА.  
А в теме так и говорилось - Активна или нет.
 
совершенно правильное возражение.  
но про немодальные формы речь не шла :)  
 
не проверяя на полигоне: скорее всего, нам таки ещё понадобится Enabled
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=ikki}{date=01.05.2011 12:37}{thema=}{post}но про немодальные формы речь не шла :){/post}{/quote}  
Согласен. Но ведь из вопроса можно и так истолковать активность/неактивность. Форма загружена, но не активна (активен лист)  :-)  
RAN, что скажете? :-) Про какую активность говорим?
 
{quote}{login=Юрий М}{date=01.05.2011 12:34}{thema=}{post}  
А в теме так и говорилось - Активна или нет.{/post}{/quote}  
 
так в том-то и состоит главная задача консультанта - объяснить заказчику, что ему на самом деле было надо, вне зависимости от того, что он там писал :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Совершенно верно: тут уже неоднократно были случаи, когда "заказчик" что-то спрашивал, ему отвечали, советовали... И в конце-концов предлагали СОВЕРШЕННО другое. Причём, оказывалось, что ИМЕННО это и было нужно, и клиент уходил довольный :-)
 
я тут понемножку пробую разобраться с немодальками...  
чё-то никак...  
ни Enabled, ни установка/снятие глобальной переменной при событиях.  
какое событие возникает, если, находясь на немодальке, щёлкнуть по ячейке?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
CelectionChange в любом случае произойти должно.
 
пока получилось сделать, только задействовав событие листа.  
но это ж страшное дело :(
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Опять немного не то: активна какая-либо ячейка и кликаем сразу по кнопке на форме :-)
 
Нужно добавлять MouseMove, наверное... А может ничего этого уже и не нужно?
 
это значит надо спать  
завтра будет день опять
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
If UserForm1.Visible Then  
меня вроде устроило.  
Задача:  
Есть лист1 с данными.  
Есть форма для внесения данных на лист1.  
Есть лист2 отчет.  
Отчет можно формировать либо выбрав строку на листе с данными, либо найдя нужную запись в форме.  
Для Hide пока применения не нашел...
 
А глобальную переменную на активацию формы?
 
А зачем?
 
Вам же нужно было узнать - активна или нет. Не хотите переменную - не надо :-)
Страницы: 1
Читают тему
Наверх