Страница: 1 |
Страница: 1 |
Вопрос: Обновление формы одновременно с обсчетом ячеек
Добавлено: 07.03.08 12:00
Автор вопроса: LonerWanderer
Ну собственно вопрос в заголовке.
Создаю спецификацию оборудования, обрабатывая данные другой программы.
После составления спецификации по коду в прайсах различных фирм ищем цену и проставляем в спецификацию + проставляем название фирмы, в прайсе которой найдено это оборудование.
Проблема в том, что при обработке листов экселя не обновляются контролы формы, за исключением контрола "Progress bar". А хотелось бы еще, чтобы обрабатывались контролы "Label".
Цвет заголовка формы - как у активного окна, а вот цвет фоны формы - белый, а не серый, как обычно.
И не видно ни одного контрола "Label" на форме.
Вот часть кода:
Call MakePrice
Unload Me
End Sub
Sub MakePrice()
...
If LEGRAND = True Then
FIRMA = "LEGRAND"
UserForm13.ProgressBar2.Value = Round((FirmaNow + 1) / VsegoFirm * 100, 2)
UserForm13.Label2.Caption = "Проставляем цены на " & FIRMA ' вот эта строчка не работает.
Application.ScreenUpdating = False
Workbooks.Open "\\АРХИВ\Прайсы\Legrand.xls", ReadOnly:=True
Windows(Ima_spec & ".xls").Activate
Application.ScreenUpdating = True
For Stroka = 2 To Nomer_PP + 1
... 'проверяем оборудование по коду и проставляем цены и название фирмы, если код совпал
Next Stroka
Workbooks("Legrand.xls").Close
End If
If ABB = True Then
.....
'ну и так далее по всем фирмам
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
GDK
Вопросов: 13
Ответов: 348
Профиль | | #1
Добавлено: 07.03.08 13:37
А срабатывает ли событие UserForm_Activate при пересчёте ячеек? Попробуйте установить точку остановки напротив, например, строки Call MakePrice и проверить срабатывание события UserForm_Activate. А по моему в Excel есть специальное событие, срабатывающее при пересчёте ячеек. Вот туда и надо ставить Call MakePrice.
Номер ответа: 2
Автор ответа:
el-paso
Вопросов: 3
Ответов: 164
Профиль | | #2
Добавлено: 07.03.08 18:40
Засунь внутрь каждого цикла For строчку DoEvents.
Похоже, проблема в этом.
Номер ответа: 3
Автор ответа:
LonerWanderer
Вопросов: 18
Ответов: 66
Профиль | | #3
Добавлено: 12.03.08 12:15
Спасибо.
DoEvents внутри цикла помог.