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

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

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

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

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

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

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


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