powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как можно узнать какая форма активная
16 сообщений из 16, страница 1 из 1
Как можно узнать какая форма активная
    #38603704
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую Office 2010. Как можно узнать какая форма активная?
Хочу сделать что-то такое:
Код: vbnet
1.
Userform1.ActiveControl = Format(textbox1.Value, "dd.mm.yyyy")


Но, здесь Userform1 меняется. Надо именно активная форма.
Помогите пожалуйста.
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38603721
_Дмит_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По простому - изменяй переменную при активации формы.
Private Sub UserForm_Activate()
act = 1 ' 2,3 и т.д. в каждой форме свой номер.
End Sub
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38603773
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я думала что как-то можно сразу (допустим как, ActiveControl, ActiveCell)
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38603911
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asd456,

не знаю, зачем это нужно, но попробуйте так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub WhatFormIsActive()
    UserForm2.Show 0
    Dim oUF As Object
    For Each oUF In UserForms
        If oUF.Visible Then
            MsgBox "Активная форма: " & oUF.Name
            Exit For
        End If
    Next oUF
End Sub
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38603946
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Pristasd456,

не знаю, зачем это нужно

[/src]

Это нужно для ввода дату из календара в активном форме на ActiveControl
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38607037
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
Private Sub UserForm_Activate()
act = 1 ' 2,3 и т.д. в каждой форме свой номер.
End Sub



А как можно использовать эту переменную?

Так не получается:
Код: vbnet
1.
act.ActiveControl = Format(textbox1.Value, "dd.mm.yyyy")
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38607170
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asd456,

Заведите тогда переменную уровня проекта oUf и при активации каждой формы назначайте ей значение:
Код: vbnet
1.
2.
3.
Private Sub UserForm_Activate()
set oUf = Me
End Sub



А потом уже обращайтесь к ней:
Код: vbnet
1.
oUf.ActiveControl = Format(oUf.textbox1.Value, "dd.mm.yyyy")


Хотя лично я бы сразу назначал переменной ссылку на нужный контрол, т.к. если планируете занести данные в TextBox по нажатию кнопки - активным контролом будет именно кнопка, а не текстбокс.
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38607863
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, The_Prist. Мне именно это нужно.

Но, у меня почему то такая ошибка получается: "Variable not defined."
Вы пишите " Заведите переменную уровня проекта". Как это делается? Может быт я это не правильно делал.
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38608352
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asd456,

Что такое переменная и как правильно её объявить?

Может что и не так делали - я не знаю...Вы же не показываете, что делали.
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38608622
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, The_Prist. Я нащел свою ошибку и уже исправил.
Сейчас у меня более конкретный вопрос появился. Если текстбокс (ActiveControl) находится над формой- все нормально. А у меня ест текстбоксы и над Frame тоже. В этом случае такая ошибка получается:
"object doesn t support this property or method"
Как можно делать такое что этот код
Код: vbnet
1.
oUf.ActiveControl = Format(oUf.textbox1.Value, "dd.mm.yyyy")


в обе случае работал?
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38609672
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста, можно ли делать такое?
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38609908
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asd456,

Если честно - никакого желания сейчас делать пример за Вас, рисовать там формы, элементы и пр. Приложите свой пример - тогда можно будет подумать.
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38610168
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist, вот пример :
Если кликнуть на текстбокс1 (находится над формой)- проблема нету. А если кликнуть на текстбокс2 (находится над фрейм) получается такая ошибка:
"Object doesn t support this property or method"
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38610171
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот пример:
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38610296
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub t()
   Dim ctrl As Control
   Set ctrl = ouf.ActiveControl
   While TypeOf ctrl Is MSForms.Frame
    Set ctrl = ctrl.ActiveControl
   Wend
   anncalendar.Show
   ctrl.Value = Format(anncalendar.Value, "dd.mm.yyyy")
End Sub
...
Рейтинг: 0 / 0
Как можно узнать какая форма активная
    #38611121
asd456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, всем. Очень помогли мне.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как можно узнать какая форма активная
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]