Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в VBA создать окно типа "Please wait..." ? / 14 сообщений из 14, страница 1 из 1
05.04.2006, 15:24
    #33646599
vdv
vdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
запускается процедура, генерирующая данные:

Sub Generate()

нужно показать окно "Please wait"

... генерация данных

нужно убрать окно "Please wait"

End Sub

Я создал UserForm с текстом "Please wait" и вызываю его из процедуры:

Sub Generate()
Load UserForm
UserForm.Show

... генерация данных

UserForm.Hide
End Sub

Проблема в том, что после UserForm.Show форма получает фокус и ждет... а нужно чтобы код продолжал выполняться...

Спасибо.
...
Рейтинг: 0 / 0
05.04.2006, 15:30
    #33646636
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
Попробуй
DoEvents
...
Рейтинг: 0 / 0
05.04.2006, 15:38
    #33646667
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
Код: plaintext
UserForm.Show vbModeless
...
Рейтинг: 0 / 0
05.04.2006, 16:16
    #33646879
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
Когда вы пытаетесь отобразить форму, используя метод Show, она, по-умолчанию, отображается в модальном режиме, тем самым останавливая выполнение программы до того момента пока вы не закроете форму.

Вам нужно отобразить форму в обычном режиме, для этого воспользуйтесь советом, который дал vkodor.
...
Рейтинг: 0 / 0
05.04.2006, 16:19
    #33646891
vdv
vdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
UserForm.Show vbModeless
выдает ошибку компиляции (((


DoEvents как использовать?
...
Рейтинг: 0 / 0
05.04.2006, 16:20
    #33646902
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
Код: plaintext
UserForm.Show  0 
...
Рейтинг: 0 / 0
05.04.2006, 16:29
    #33646936
vdv
vdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
В обоих случаях:

WaitForm.Show 0
WaitForm.Show vbModeless

Выдает Compile Error: Wrong number of arguments or Invalid property assignment

У меня Excel 97...
...
Рейтинг: 0 / 0
05.04.2006, 16:32
    #33646951
TIKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
vdvUserForm.Show vbModeless
выдает ошибку компиляции (((


DoEvents как использовать?



Sub Generate()
Load UserForm
UserForm.Show
DoEvents
... генерация данных

UserForm.Hide
End Sub
Попробуй так
...
Рейтинг: 0 / 0
05.04.2006, 16:37
    #33646963
vdv
vdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
2 TIKO
так не получается - все равно код ждет, когда пользователь окно закроет.

vbModeless похоже в Office 97 не работает. Есть ли другой способ сделать форму немодальной?
...
Рейтинг: 0 / 0
05.04.2006, 17:04
    #33647057
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
почитай может понравится и сделаешь так
Процес выполнения
...
Рейтинг: 0 / 0
05.04.2006, 22:35
    #33647638
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
Да, параметр "Modal" метода Show отсутствует в 97 офисе. Попробуй такой вариант.

Код: plaintext
1.
2.
Sub Generate()
    UserForm1.Show
End Sub

Модуль формы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub UserForm_Activate()
    Dim intI As Integer

    DoEvents

    ' Здесь выполняем какие-либо действия.

    For intI =  1  To  10000 
        Debug.Print intI
    Next intI

    Unload Me
End Sub
...
Рейтинг: 0 / 0
06.04.2006, 00:43
    #33647706
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
Может все же так? :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub UserForm_Activate()
    Dim intI As Integer

    For intI =  1  To  10000 
        DoEvents

       ' Здесь выполняем какие-либо действия.
       ' например печатаем:
        Debug.Print intI
    Next intI

    Unload Me
End Sub
...
Рейтинг: 0 / 0
06.04.2006, 08:15
    #33647863
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
White OwlМожет все же так? :)
Блин, цикл я для примера привел. Для циклов тоже нужно конено, а если там не цикл, а какие-либо другие программные утверждения, попробуй убери DoEvents и посмотри.
...
Рейтинг: 0 / 0
06.04.2006, 11:22
    #33648388
Черепах_а
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в VBA создать окно типа "Please wait..." ?
vdvзапускается процедура, генерирующая данные:

Sub Generate()

нужно показать окно "Please wait"

... генерация данных

нужно убрать окно "Please wait"

End Sub

Я создал UserForm с текстом "Please wait" и вызываю его из процедуры
А ты вместо UserForm, возьми прозрачный Shape вовес экран и на нем напиши в центре "Please wait".

Спрячь, покажи, Спрячь, покажи и потом убери.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в VBA создать окно типа "Please wait..." ? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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