Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2015, 16:48   #1
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию активация книги excel открытой в другом процессе excel

Через макрос открываю приложение для Excel BexAnalyzer (наконец-то придумал как это сделать)
Код:
Call Shell("explorer.exe C:\Program Files\SAP\Business Explorer\BI\BExAnalyzer.exe", vbNormalFocus)

Application.Wait Time:=Now + TimeValue("0:00:10")
Столкнулся со следующей проблемой - макрос запускаю из одного документа Excel, BexAnalyzer открывается в новом окне Excel. И вот здесь мне нужно активировать открывшееся окно BexAnalyzer, чтобы через него открыть нужный мне документ
Пробовал так
Код:
        'активация неактивной книги
            For Each Wb In Workbooks
            If Wb.Name <> ThisWorkbook.Name Then Windows(Wb.Name).Activate
           Next
но это не помогло

Возможно, кто-то уже сталкивался с таким, буду признателен за совет
27102014 вне форума Ответить с цитированием
Старый 22.04.2015, 10:53   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

А если делать иначе - скриптом vbs открыть этот анализер, затем в появившемся Экселе открыть нужный файл?

Код:
Dim objExcel

'пример открытия программы
WScript.CreateObject("WScript.Shell").run "D:\Tools\Bred3\bred3_2k.exe",1,false

'тут запускаете BExAnalyzer, может быть по примеру выше
'Call Shell("explorer.exe C:\Program Files\SAP\Business Explorer\BI\BExAnalyzer.exe", vbNormalFocus)

ActivateExcel

objExcel.Workbooks.open("D:\TMP\_macro.xls")'пример открытия файла

Private Function ActivateExcel()
On Error resume next 
Set objExcel = GetObject(, "Excel.Application")
If objExcel Is Nothing Then
   Set objExcel = CreateObject("Excel.Application")
   objExcel.Visible = True
End If
End Function
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 22.04.2015 в 11:04.
Hugo121 вне форума Ответить с цитированием
Старый 22.04.2015, 11:22   #3
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Hugo121, доброго дня!
у Вас в коде что означает этот адрес?

Код:
run "D:\Tools\Bred3\bred3_2k.exe",
27102014 вне форума Ответить с цитированием
Старый 22.04.2015, 11:35   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Это пример как я открывал свой exe - первый что попался.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 22.04.2015, 11:54   #5
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

По сути мне не нужно открывать через скрипт, вся проблема в активации нового процесса Excel, с 8 утра этим занимаюсь. Открыл вторым документом обычный Excel ("Книга1"), но даже в ней не получается открыть нужный мне документ

Попробовал Вашу функцию, тоже ничего не получилось - возможно, потому что у меня 10 офис
27102014 вне форума Ответить с цитированием
Старый 22.04.2015, 14:58   #6
RAN.
Форумчанин
 
Аватар для RAN.
 
Регистрация: 05.07.2011
Сообщений: 208
По умолчанию

Макрос создаст скрипт, который
-закроет Excel
-запустит Word (имитация exe)
----макорс Word запустит Excel (имитация работы exe)
-откроет в новом экземпляре Excel тот файл, из которого был запущен
-самоуничтожится
Вложения
Тип файла: rar Новая папка.rar (34.6 Кб, 13 просмотров)

Последний раз редактировалось RAN.; 22.04.2015 в 15:02.
RAN. вне форума Ответить с цитированием
Старый 22.04.2015, 15:35   #7
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Уважаемый RAN!
Запустил Ваш макрос в своем рабочем файле и потерял все что написал за последние два часа Впрочем, всего лишь пару прикольных штук получилось - одна из них вроде Вашего макроса, только без ворда, сразу создает новый Excel
Во вложении макрос, который перебирает все открытые процедуры Excel.
Мне не подходит, т.к. создаваемая мною новая процедура Excel не содержит книги (а значит и имени), сам что-то не могу понять как поправить код, наверное заработался

Нужно как-то обратиться к этому серому Excel, чтобы его активировать и открытие нужной книги уже произошло в нем. Это нужно потому что в этом сером окне находится приложение, с которым предполагается дальнейшая работа
Вложения
Тип файла: zip Черновик - копия.zip (19.6 Кб, 18 просмотров)
27102014 вне форума Ответить с цитированием
Старый 22.04.2015, 15:51   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Что-то мне не удалось удержать открытым Эксель без книг - открыть удалось (тем моим скриптом), но если в нём не открываю книгу - он закрывается.
Так что не верю, что в Вашем сером экселе нет книг. Наверняка какая-то надстройка есть.

А насчёт "как-то обратиться к этому серому Excel, чтобы его активировать и открытие нужной книги уже произошло в нем" я ведь уже показал как это можно сделать.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 22.04.2015, 16:07   #9
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

[QUOTE=Hugo121;1493680]Что-то мне не удалось удержать открытым Эксель без книг - открыть удалось (тем моим скриптом), но если в нём не открываю книгу - он закрывается.
Так что не верю, что в Вашем сером экселе нет книг. Наверняка какая-то надстройка есть.

Да, настройка есть - ради нее собственно все мучения и происходят

Не совсем понял что иненно Вы мне показали по активации - пробовал Ваш макрос, документ открылся в том, из которого был запущен макрос.
Но стоит помнить, что у нас разные офисы и я не такой продвинутый пользователь VBA, как Вы
Завтра попробую запустить Ваш макрос еще раз
27102014 вне форума Ответить с цитированием
Старый 22.04.2015, 16:57   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я показал не макрос, а скрипт vbs/wsh - он не запускается из документа, а сам по себе.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывести данные в новую книгу Excel из другой книги Excel через VBA Алла94 Microsoft Office Excel 0 08.10.2014 16:16
автоматизация поиска данных excel файла в другом excel файле с соответствующими пометками! ruotches Microsoft Office Excel 23 18.06.2013 10:24
Выбор данных из книги Ексель, открытой монопольно на другом компьютере ambergrey Microsoft Office Excel 6 19.04.2013 17:08
Запись данных в закрытую/скрытую из UserForm другой открытой книги книги. Dark Victor Microsoft Office Excel 1 12.03.2012 18:37
Активация и переключение в Word из Excel blackarrow Microsoft Office Excel 4 03.06.2011 23:19