Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Office Excel
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
АТерентьев
24 / 23 / 17
Регистрация: 16.10.2009
Сообщений: 997
1

Как работать с разработанной формой из произвольной книги Excel

11.11.2011, 11:48. Просмотров 1100. Ответов 4
Метки нет (Все метки)

Прошу прощения за вопрос.
Разработал рабочую форму, которая подключается к БД и по клику данные переносятся на активный лист. Рабочих листов несколько - для каждого населенного пункта района - свой лист.
Но теперь нужно испытать ее на действующих рабочих книгах и передать операторам на других рабочих местах.
Как это лучше сделать?
На своей машине при открытии любой рабочей книги - новая кнопка, запускающая макрос видится без каких-либо настроек, Макрос вызыввается и форма запускается.
Но работа программы отличается от ожидаемой.
Происходит следующее.
1. При нажатии на кнопку - открывается рабочая книга 1, в которой я разрабатывал макрос. И видимо обрабатываются листы этой книги, а не книги из которой запускается макрос.
2. Установка точки останова в рабочей книге 1 - не срабатывает.
Буду благодарен за подсказку или совет.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 11:48
Ответы с готовыми решениями:

Работа с матрицами произвольной размерности:Представить алгоритм разработанной функции
Работа с матрицами произвольной размерности: Создать функцию которая для произвольной матрицы ...

Как работать с формой?
Подскажите пожалуйста каким образом в Visual Studio создать форму чтобы на ней можно было размещать...

Как работать с формой на весь экран?
развернуть знаю как, но как работать с ней на весь экран, установить компоненты в нужном месте..

Работа с произвольной управляемой формой
Добрый день, такая проблема, делаю произвольную форму управляемую, по аналогии с обычной, но вот в...

Как общаться с модальной формой Excel?
Доброго времени суток Проблемка следующая есть файл шаблон в нем куча макросов в файле...

4
Казанский
14905 / 6308 / 1719
Регистрация: 24.09.2011
Сообщений: 9,977
11.11.2011, 13:12 2
Создайте надстройку со своим макросом и макросом автозапуска, который будет создавать кнопку.
Если операторы находятся в локальной сети, выложите надстройку в общую папку, сделайте ее ReadOnly и положите каждому оператору ЯРЛЫК надстройки в папку XLStart. Тогда надстройка автоматически появится у всех, а Вы сможете в любое время заменить надстройку на новую версию.
0
АТерентьев
24 / 23 / 17
Регистрация: 16.10.2009
Сообщений: 997
11.11.2011, 13:49  [ТС] 3
Попробовал сделать через экспорт импорт.
Из рабочей книги импортировал module1, где находятся процедуры и форму.
В действующей рабочей книге сделал кнопку и подключил макрос , запускающий форму.
Но при нажатии на кнопку получаю сообщение
"Не найден макрос имяРабочейКниги.xls!Module1.mysql" , где mysql - это имя макроса.
В чем может быть дело?
0
АТерентьев
24 / 23 / 17
Регистрация: 16.10.2009
Сообщений: 997
13.11.2011, 20:32  [ТС] 4
Спасибо!
Надстройки- это то , что нужно в данном случае.
Не смог пока сделать так, чтобы новая кнопка из надстройки появлялась автоматически в панели инструментов у всех и работала как требуется.

В надстройке создал панель "Отчеты" и кнопку "Перенести данные" - по которой запускается функция "mysql", открывающая форму "monitor". С этой формой и работают операторы.
На моем компьютере эта панель и кнопка видятся и работают в любой рабочей книге.
1.Сделал надстройку.
2.Положил в папку с общим доступом.
3. Подключил настройку в одной из рабочих книг на одном из компьютеров в сети.
Но
Кнопка автоматически не создается. Если не ошибаюсь программно кнопку можно создать так
PureBasic
1
2
Application.CommandBars("Отчеты").Controls.Add Type:= _
        msoControlButton, ID:=2950, Before:=1
Но
1. как привязать к ней процедуру "mysql", открывающую форму пользователя.
2. как сделать, чтобы процедура создания кнопки запускалась при каждом запуске рабочей книги?
Спасибо за любую подсказку или ссылку.

Добавлено через 3 часа 54 минуты
Убрал русские буквы, вроде работает такой код:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
Private SUB Workbook_Open()
   
DIM but1 AS Variant
 
ON ERROR GOTO exitSub
    Application.CommndBars.Add(NAME:="reports").Visible = True
 
    Set but1 = Application.CommandBars("reports").Controls.Add(TYPE:=msoControlButton, ID:=2950, Before:=1)
    but1.OnAction = "mysql"
 
exitSub:
END SUB
Т.е. русские имена недопустимы?


Возможны другие варианты?
По идее панель нужно удалять при закрытии рабочей книги?
0
Апострофф
Заблокирован
13.11.2011, 20:50 5
Цитата Сообщение от АТерентьев Посмотреть сообщение
По идее панель нужно удалять при закрытии рабочей книги?
Есть такое событие
Visual Basic
1
2
3
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.CommandBars("reports").Delete
End Sub

Не по теме:

Для VBA больше подходит тэг VB, а не BASIC

0
13.11.2011, 20:50
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2011, 20:50

Как пользуясь ADO извлечь строки c задаными критериями из одной книги Excel и поместить в другую книгу Excel?
Доброго времени суток, форумчане! Кто знает, подскажите пожалуйста, как с помощью ADO открыть...

Как можно переключаться между Формой и таблицей Excel?
т.е. вопрос в следующем: есть форма и есть таблица Excel само сабой когда запускаешь форму,...

Как вообще разобраться,как работать с линукс? Есть книги и т.п?
Как вообще разобраться,как работать с линукс? Есть книги и т.п? Я не знаю,как и cmd windows...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.