Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Определить Версию запуска EXCEL / 8 сообщений из 8, страница 1 из 1
27.11.2009, 12:42
    #36335474
mishgan1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить Версию запуска EXCEL
Есть файл XLSM со скриптом защиты книги. Если этот файл запустить в EXCEL 2003, то вся защита слетает после работы конвертора. Как можно сделать на VBA , чтобы файл открывался только в EXCEL 2007 ?
...
Рейтинг: 0 / 0
27.11.2009, 12:49
    #36335490
qwrqwr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить Версию запуска EXCEL
mishgan1, попробуйте на открытие проверять свойство Application.Version
Для 2003 у меня оно равно '11.0', для 2007-го, видимо будет '12.0' (проверить не могу)
Вот только вопрос остается - не запускается ли этот "конвертор" до срабатывания события открытия файла?
...
Рейтинг: 0 / 0
27.11.2009, 13:45
    #36335659
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить Версию запуска EXCEL
mishgan1Как можно сделать на VBA , чтобы файл открывался только в EXCEL 2007 ?Вы слыхали про такую науку — логику? Как можно такое сделать на VBA, если проект запускается после открытия файла? Можно только закрыть проверив версию.

qwrqwrне запускается ли этот "конвертор" до срабатывания события открытия файла?Естественно, ведь "конвертер" это та надстройка, которая говорит "выполняется преобразовние файла" при его открытии. А преобразовывает она из xlsm в xls.

Jah loves you.
...
Рейтинг: 0 / 0
27.11.2009, 14:47
    #36335878
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить Версию запуска EXCEL
mishgan1Есть файл XLSM со скриптом защиты книги. Если этот файл запустить в EXCEL 2003, то вся защита слетает после работы конвертора. Как можно сделать на VBA , чтобы файл открывался только в EXCEL 2007 ?Не совсем понятно. Под скриптом защиты имеется ввиду макрос, который сам устанавливает защиты ан всех листах при открытии книги?
Специально создал файл XLSM в Excel 2007, с автозапускаемым макросом.
Потом открыл файл в Excel 2003, так-же сработал конвертер, а после этого без проблем запустился макрос.
Может речь всё-же немного о другой проблеме, что некоторые файлы Excel 2007, если с ними интенсивно работать, даже после сохранения в режиме совместимости с Excel 2003 перестают нормально открываться в Excel 2003, появляется ошибка, что слишком много форматов и предложение восстановить файл. В этом случае, если согласиться, то слетают все форматы, в некоторых случаях ещё и убиваются макросы.
...
Рейтинг: 0 / 0
27.11.2009, 15:01
    #36335918
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить Версию запуска EXCEL
mishgan1Как можно сделать на VBA , чтобы файл открывался только в EXCEL 2007 ?
На работе тоже с одним отчётом были трудности, т.к. в нём работало много людей, причем как с Excel 2007 так и Excel 2003.
Очень часто через какое-то время файл мог накрываться. Сначала слетали все форматы, а потом и все макросы.

Чтобы уменьшить вероятность этой проблемы и запретить работать с отчётом через Excel 2003, напрограммировал такой код, который автоматически закрывает отчёт сразу-же после открытия, если он запущен через Excel 2003:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
'Макрос автоматически закрывающий файл при запуске его из под Excel 2003.
Sub Workbook_Open()
 If Application.Version = "11.0" Then
  MsgBox "Из-за проблем с совместимостью данного отчета с Excel 2003, отчет будет закрыт. Для работы нужен Excel 2007.", vbCritical
  
  Application.DisplayAlerts = False
  ThisWorkbook.Close SaveChanges:=False
  Application.DisplayAlerts = True
 End If
End Sub

P.S. Разумется он спасёт только в том случае, если у пользователей не будут отключены макросы.
...
Рейтинг: 0 / 0
27.11.2009, 16:26
    #36336172
mishgan1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить Версию запуска EXCEL
Djon Playermishgan1Есть файл XLSM со скриптом защиты книги. Если этот файл запустить в EXCEL 2003, то вся защита слетает после работы конвертора. Как можно сделать на VBA , чтобы файл открывался только в EXCEL 2007 ?Не совсем понятно. Под скриптом защиты имеется ввиду макрос, который сам устанавливает защиты ан всех листах при открытии книги?
Специально создал файл XLSM в Excel 2007, с автозапускаемым макросом.
Потом открыл файл в Excel 2003, так-же сработал конвертер, а после этого без проблем запустился макрос.
Может речь всё-же немного о другой проблеме, что некоторые файлы Excel 2007, если с ними интенсивно работать, даже после сохранения в режиме совместимости с Excel 2003 перестают нормально открываться в Excel 2003, появляется ошибка, что слишком много форматов и предложение восстановить файл. В этом случае, если согласиться, то слетают все форматы, в некоторых случаях ещё и убиваются макросы.

Извините за ламерский вопрос. Что есть автозапускаемый макрос, или это макрос на Workbook_Open() ? 2003 сразу запрашивает пароль на книгу и если просто нажать на ОК, то большое сообщение о несовместимости, а затем все листы доступны к просмотру ?
...
Рейтинг: 0 / 0
27.11.2009, 17:32
    #36336339
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить Версию запуска EXCEL
mishgan1Что есть автозапускаемый макрос, или это макрос на Workbook_Open() ? 2003 сразу запрашивает пароль на книгу и если просто нажать на ОК, то большое сообщение о несовместимости, а затем все листы доступны к просмотру ?Да Workbook_Open() это и есть автозапускаемый макрос.
Попробовал в Excel 2007 в файле XLSM установить пароль на открытие документа через меню с кружочком, далее "Подготовить" и "Зашифровать документ" и указал пароль.
При открытии документа в Excel 2003 так-же проблем не возникает, при открытии говорит, что документ зашифрован, введите пароль.
После ввода правильного пароля запускается конвертер, а потом открывается файл, ошибок не выдаёт.
Если ввести не правильный пароль, то он предложит ввести ещё раз, после очередной неудачной попытки файл просто не откроется.

Насчет большого сообщения о несовместимости. Возможно у вас используются какие-то объекты несовместимые с Excel 2003.
Если файл не секретный, приложили бы, можно было бы глянуть.
Правда я уже домой, а дома у меня нет Excel 2003, а впереди два выходных.
...
Рейтинг: 0 / 0
27.11.2009, 22:50
    #36336669
mishgan1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить Версию запуска EXCEL
Djon Playermishgan1Что есть автозапускаемый макрос, или это макрос на Workbook_Open() ? 2003 сразу запрашивает пароль на книгу и если просто нажать на ОК, то большое сообщение о несовместимости, а затем все листы доступны к просмотру ?Да Workbook_Open() это и есть автозапускаемый макрос.
Попробовал в Excel 2007 в файле XLSM установить пароль на открытие документа через меню с кружочком, далее "Подготовить" и "Зашифровать документ" и указал пароль.
При открытии документа в Excel 2003 так-же проблем не возникает, при открытии говорит, что документ зашифрован, введите пароль.
После ввода правильного пароля запускается конвертер, а потом открывается файл, ошибок не выдаёт.
Если ввести не правильный пароль, то он предложит ввести ещё раз, после очередной неудачной попытки файл просто не откроется.

Насчет большого сообщения о несовместимости. Возможно у вас используются какие-то объекты несовместимые с Excel 2003.
Если файл не секретный, приложили бы, можно было бы глянуть.
Правда я уже домой, а дома у меня нет Excel 2003, а впереди два выходных.

Спасибо. Постараюсь в ближайшее время разобраться. Отпишусь.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Определить Версию запуска EXCEL / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]