Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Progressbar к существующему макросу - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Progressbar к существующему макросу (Макросы/Sub)
Progressbar к существующему макросу
Starbirst Дата: Среда, 12.11.2014, 20:28 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Доброго времени суток! Ребята, окажите, пожалуйста, помощь! Во вложенном файле имеется кнопочка "С К Р Ы Т Ь П У С Т Ы Е Я Ч Е Й К И". При нажатии на эту кнопочку срабатывает макрос, который скрывает пустые строки в диапазоне A10:A109 и столбец B в диапазоне [B10:B109], если в списке нет данных (элемент управления "список" для выбора формы в текущем файле) . В представленной таблице работа макроса не занимает много времени, однако в настоящей таблице, там, где помимо столбцов A, B, и С имеются формулы в других столбцах, требует значительного времени. Каким образом можно отобразить процесс работы макроса? Как добавить к макросу простейший Progressbar? В инете представлено достаточно много вариаций создания Progressbar, но как его прописать? В идеале хотелось, чтобы Progressbar выглядел аналогично с тем, который появляется при нажатии на кнопку PDF. Особо в макросах не волоку. Спасибо всем отозвавшимся!
К сообщению приложен файл: ___.xlsm (32.0 Kb)


Сообщение отредактировал Starbirst - Среда, 12.11.2014, 20:29
 
Ответить
СообщениеДоброго времени суток! Ребята, окажите, пожалуйста, помощь! Во вложенном файле имеется кнопочка "С К Р Ы Т Ь П У С Т Ы Е Я Ч Е Й К И". При нажатии на эту кнопочку срабатывает макрос, который скрывает пустые строки в диапазоне A10:A109 и столбец B в диапазоне [B10:B109], если в списке нет данных (элемент управления "список" для выбора формы в текущем файле) . В представленной таблице работа макроса не занимает много времени, однако в настоящей таблице, там, где помимо столбцов A, B, и С имеются формулы в других столбцах, требует значительного времени. Каким образом можно отобразить процесс работы макроса? Как добавить к макросу простейший Progressbar? В инете представлено достаточно много вариаций создания Progressbar, но как его прописать? В идеале хотелось, чтобы Progressbar выглядел аналогично с тем, который появляется при нажатии на кнопку PDF. Особо в макросах не волоку. Спасибо всем отозвавшимся!

Автор - Starbirst
Дата добавления - 12.11.2014 в 20:28
Starbirst Дата: Среда, 12.11.2014, 20:30 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Прилагаю отредактированный файл.
К сообщению приложен файл: Files_macros.xlsm (30.7 Kb)


Сообщение отредактировал Starbirst - Среда, 12.11.2014, 20:32
 
Ответить
СообщениеПрилагаю отредактированный файл.

Автор - Starbirst
Дата добавления - 12.11.2014 в 20:30
Формуляр Дата: Среда, 12.11.2014, 20:55 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Честно говоря, код выглядит для меня довольно бессмысленным,
но если вынести за границы основного цикла

[vba]
Код
    Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
....
        Application.ScreenUpdating = True
        Application.Calculation = xlCalculationAutomatic
[/vba]
работать будет, наверняка, быстрее. :)
Может и прогрес-бар не понадобится...

PS: Объявлять переменную в цикле тоже как-то не принято.
А внутренний цикл по одному столбц B никакого эффекта не даёт.
И что остаётся?
[vba]
Код
Public Sub Скрыть()
Dim i As Integer
Dim cc
     Application.ScreenUpdating = False
     Application.Calculation = xlCalculationManual
     For i = 10 To 109
         If Cells(i, 1).Value = "" Then Rows(i).RowHeight = 0
         'For Each cc In [B10:B109].Columns
         '    cc.EntireColumn.Hidden = cc.Text = ""
         'Next
     Next
     Application.Calculation = xlCalculationAutomatic
     Application.ScreenUpdating = True
End Sub
[/vba]


Excel 2003 EN, 2013 EN

Сообщение отредактировал Формуляр - Среда, 12.11.2014, 21:13
 
Ответить
СообщениеЧестно говоря, код выглядит для меня довольно бессмысленным,
но если вынести за границы основного цикла

[vba]
Код
    Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
....
        Application.ScreenUpdating = True
        Application.Calculation = xlCalculationAutomatic
[/vba]
работать будет, наверняка, быстрее. :)
Может и прогрес-бар не понадобится...

PS: Объявлять переменную в цикле тоже как-то не принято.
А внутренний цикл по одному столбц B никакого эффекта не даёт.
И что остаётся?
[vba]
Код
Public Sub Скрыть()
Dim i As Integer
Dim cc
     Application.ScreenUpdating = False
     Application.Calculation = xlCalculationManual
     For i = 10 To 109
         If Cells(i, 1).Value = "" Then Rows(i).RowHeight = 0
         'For Each cc In [B10:B109].Columns
         '    cc.EntireColumn.Hidden = cc.Text = ""
         'Next
     Next
     Application.Calculation = xlCalculationAutomatic
     Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Формуляр
Дата добавления - 12.11.2014 в 20:55
Формуляр Дата: Среда, 12.11.2014, 23:05 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Но если очень хочется прогресс-бар - держите.
Без изысков.
К сообщению приложен файл: Files_macros.xls (87.5 Kb)


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеНо если очень хочется прогресс-бар - держите.
Без изысков.

Автор - Формуляр
Дата добавления - 12.11.2014 в 23:05
Starbirst Дата: Четверг, 13.11.2014, 07:12 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
ГЕНИАЛЬНО! hands Моих познаний Excel, не говоря уже про макросы, недостаточно, потому понять, что такое цикл, как его задать, мне достаточно сложно понять. Я брал разные макросы, пытался что-то изобрести - так и получился макрос, который я применял по сей день. Спасибо большое! :)


Сообщение отредактировал Starbirst - Четверг, 13.11.2014, 15:13
 
Ответить
СообщениеГЕНИАЛЬНО! hands Моих познаний Excel, не говоря уже про макросы, недостаточно, потому понять, что такое цикл, как его задать, мне достаточно сложно понять. Я брал разные макросы, пытался что-то изобрести - так и получился макрос, который я применял по сей день. Спасибо большое! :)

Автор - Starbirst
Дата добавления - 13.11.2014 в 07:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Progressbar к существующему макросу (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!