Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Обновление формы одновременно с обсчетом ячеек Добавлено: 07.03.08 12:00  

Автор вопроса:  LonerWanderer
Ну собственно вопрос в заголовке.
Создаю спецификацию оборудования, обрабатывая данные другой программы.
После составления спецификации по коду в прайсах различных фирм ищем цену и проставляем в спецификацию + проставляем название фирмы, в прайсе которой найдено это оборудование.
Проблема в том, что при обработке листов экселя не обновляются контролы формы, за исключением контрола "Progress bar". А хотелось бы еще, чтобы обрабатывались контролы "Label".
Цвет заголовка формы - как у активного окна, а вот цвет фоны формы - белый, а не серый, как обычно.
И не видно ни одного контрола "Label" на форме.
Вот часть кода:
Private Sub UserForm_Activate()
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 внутри цикла помог.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам