Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
19.10.2019, 21:15:43

Войти
На форуме добавлена возможность подписки на RSS-ленты любого раздела форума. Подписаться можно, нажав на иконку RSS , расположенную левее наименования раздела.
30 544 Сообщений в 4 855 Тем от 7 340 Пользователей
Последний пользователь: Mika
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Как заставить обновляться EditBox (Ribbon)
Страниц: [1]   Вниз
Печать
Автор Тема: Как заставить обновляться EditBox (Ribbon)  (Прочитано 2743 раз)
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
Глобальный модератор
Ветеран
*****

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

Сообщений: 625


Просмотр профиля 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