Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
28.03.2024, 11:41:54

Войти
Добавляйтесь в нашу группу ВКонтакте - будьте в курсе всех новых событий сайта, узнавайте первым обо всех акциях и новых статьях!
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Как заставить обновляться EditBox (Ribbon)
Страниц: [1]   Вниз
Печать
Автор Тема: Как заставить обновляться EditBox (Ribbon)  (Прочитано 6058 раз)
0 Пользователей и 1 Гость смотрят эту тему.
IgorStorm
Постоялец
***

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 119


Просмотр профиля
« : 23.01.2016, 19:59:14 »

Всем привет. Добиваю уже свою ленту с формулами, возникла небольшая идейка - хочу создать ряд Боксов, в которые будут выводиться значения расчетов, которые происходят по событию Workbook_SheetSelectionChange (у меня там рассчитываются суммы с НДС и без НДС для текущего выделения - в боксы, чтобы удобно было копировать). Но вот проблема - editbox сам обновляться не хочет, несмотря на то, что переданная ему глобальная переменная меняется вместе с выделением, а принимает только первое переданное значение. Как победить?

Код который сейчас простой:

Код: (vb)
Public Sub EditBox(control As IRibbonControl, ByRef NDS)
   NDS = Summ1
End Sub
Записан
doober
Глобальный модератор
Ветеран
*****

Репутация: +67/-0
Офлайн Офлайн

Сообщений: 634


Просмотр профиля E-mail
« Ответ #1 : 23.01.2016, 22:34:37 »

Код который сейчас простой
Ответ еще проще
Процедура загрузки ленты RibbonOnLoad в xml файле прописана?
Код: (vb)
Public MyRibbon As IRibbonUI

Sub RibbonLoading(Ribbon As IRibbonUI)
    Set MyRibbon = Ribbon
End Sub   
 MyRibbon.InvalidateControl "EditBox"
 'Где EditBox=Id этого текстбокса


Записан
IgorStorm
Постоялец
***

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 119


Просмотр профиля
« Ответ #2 : 23.01.2016, 22:40:49 »

Опять я первый нашел ответ и опять на англицком форуме. Все оказалось не так линейно.
Во-первых нужне обработчик обновления ленты, во вторых нужно обрабатывать не только editbox.gettext но и editbox.change, в третьих нужно вставлять обработчик обновления editbox в сам макрос расчетов по событию Workbook_SheetSelectionChange, в четвертых нужно не забыть в XML схеме указать на макрос обновления ленты.
Писать код лень Улыбка
Дам ссылку на первоисточник, там код верный, за исключением строчки Stop в первой процедуре, не знаю за чем она нужна, может опечатка, но VBA ругался.

....Работает четко.

http://www.xtremevbtalk.com/excel/312119-ribbonx-update-editbox-text-worksheet-range-button-custom-tab.html
Записан
ant89on
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 3


Просмотр профиля
« Ответ #3 : 12.10.2019, 12:03:49 »

Вот плохо, что тебе лень писать код. Ссылка не работает!
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru