Мне очень сильно наплевать, что, и где у вас есть. Я вам выложил рабочий код. Снова вставать в очередь к гадалке, дабы выяснить, что, и где у вас есть, и почему не работает, я не собираюсь. Удачи!
Мне очень сильно наплевать, что, и где у вас есть. Я вам выложил рабочий код. Снова вставать в очередь к гадалке, дабы выяснить, что, и где у вас есть, и почему не работает, я не собираюсь. Удачи!RAN
Сколько ж можно помогать? Что ж так туго все идет? Ну попробуйте еще так: Запустите этот код, он выдаст серийный номер. Запишите его на бумажку. [vba]
Код
Sub seriya() Dr$ = "C:\" With CreateObject("Scripting.FileSystemObject").Drives(CVar(Dr$)) SN& = .SerialNumber MsgBox "Серийный номер = " & SN End With End Sub
[/vba] Следующий код, поместите в модуль "Эта книга". В нём, цифры - 1234567890, замените серийным номером из бумажки. Имя скрываемому листу присвойте любое кроме "Лист?". Я в коде написал "den", замените на своё. [vba]
Код
Private Sub Workbook_Open() Dr$ = "C:\" With CreateObject("Scripting.FileSystemObject").Drives(CVar(Dr$)) SN& = .SerialNumber End With If SN <> 1234567890 Then Sheets("den").Visible = 2 Else Sheets("den").Visible = -1 End If End Sub
[/vba] Первый код можно удалить, он больше не нужен. Макросы от любопытных надо запаролить. Проверьте на другом компе. От пользователей, достаточно.
Сколько ж можно помогать? Что ж так туго все идет? Ну попробуйте еще так: Запустите этот код, он выдаст серийный номер. Запишите его на бумажку. [vba]
Код
Sub seriya() Dr$ = "C:\" With CreateObject("Scripting.FileSystemObject").Drives(CVar(Dr$)) SN& = .SerialNumber MsgBox "Серийный номер = " & SN End With End Sub
[/vba] Следующий код, поместите в модуль "Эта книга". В нём, цифры - 1234567890, замените серийным номером из бумажки. Имя скрываемому листу присвойте любое кроме "Лист?". Я в коде написал "den", замените на своё. [vba]
Код
Private Sub Workbook_Open() Dr$ = "C:\" With CreateObject("Scripting.FileSystemObject").Drives(CVar(Dr$)) SN& = .SerialNumber End With If SN <> 1234567890 Then Sheets("den").Visible = 2 Else Sheets("den").Visible = -1 End If End Sub
[/vba] Первый код можно удалить, он больше не нужен. Макросы от любопытных надо запаролить. Проверьте на другом компе. От пользователей, достаточно.Wasilich
Сообщение отредактировал Wasilic - Вторник, 23.02.2016, 11:58
Wasilic, Этот способ я понял. Но если передать надстройки менеджеру, он не сможет пользоваться ими. Нельзя ли прописать так, чтобы разблокировался лист в том случае если установлены наши надстройки? Соот-но, у кого их нет, они не смогут видеть лист.
Wasilic, Этот способ я понял. Но если передать надстройки менеджеру, он не сможет пользоваться ими. Нельзя ли прописать так, чтобы разблокировался лист в том случае если установлены наши надстройки? Соот-но, у кого их нет, они не смогут видеть лист.den45444
Wasilic, Есть файл под названием "Смета по разделам" и установленные надстройки к нему. Тип файла : xlsx В этом файле два листа: "Смета" и "Расценки" Лист "СМЕТА" – открыт и не заблокирован. Лист "Расценки" – заблокирован и скрыт. Этот лист я не вижу, но он есть. Вы спросите зачем заблокировали и скрыли? – от глаз клиента, которому будем высылать этот файл.
Теперь суть задачи: Нужно чтобы при открывании этого файла макрос автоматический разблокировал лист "Расценки" именно у ТОГО у кого установлена данная надстройка.
Wasilic, Есть файл под названием "Смета по разделам" и установленные надстройки к нему. Тип файла : xlsx В этом файле два листа: "Смета" и "Расценки" Лист "СМЕТА" – открыт и не заблокирован. Лист "Расценки" – заблокирован и скрыт. Этот лист я не вижу, но он есть. Вы спросите зачем заблокировали и скрыли? – от глаз клиента, которому будем высылать этот файл.
Теперь суть задачи: Нужно чтобы при открывании этого файла макрос автоматический разблокировал лист "Расценки" именно у ТОГО у кого установлена данная надстройка.den45444
Wasilic, Надстройки у меня установлены. Предложенный вариант я уже пробовал, - почему то ругается. Сможете посмотреть если я прикреплю файл с надстройками?
Wasilic, Надстройки у меня установлены. Предложенный вариант я уже пробовал, - почему то ругается. Сможете посмотреть если я прикреплю файл с надстройками?den45444
Если я правильно понял: при активации книги. Макрос должен определить, подключена ли надстройка "XXX"? если подключена то сделать лист видимым Если нет, то нет.
Если я правильно понял: при активации книги. Макрос должен определить, подключена ли надстройка "XXX"? если подключена то сделать лист видимым Если нет, то нет.al-Ex
Сообщение отредактировал al-Ex - Вторник, 23.02.2016, 18:37
Макрос должен определить,подключена ли надстройка "XXX"?
Ну для этого можно хоть тупо перебирать открытые книги в поисках нужной надстройки Только может и не сработать, я без понятия, входят ли скрытые книги в Workbooks и что открывается сначала — рабочая книга или надстройки
Макрос должен определить,подключена ли надстройка "XXX"?
Ну для этого можно хоть тупо перебирать открытые книги в поисках нужной надстройки Только может и не сработать, я без понятия, входят ли скрытые книги в Workbooks и что открывается сначала — рабочая книга или надстройки StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Если я правильно понял: при активации книги. Макрос должен определить, подключена ли надстройка "XXX"? если подключена то сделать лист видимым Если нет, то нет.
Если я правильно понял: при активации книги. Макрос должен определить, подключена ли надстройка "XXX"? если подключена то сделать лист видимым Если нет, то нет.
открывается сначала — рабочая книга или надстройки
Если я не ошибаюсь, то грузит сначала надстройки, потом открывается рабочая книга. Проблема как раз в том, чтобы перейти с книги надстроек на рабочую книгу (при запуске). А как это прописать, я не знаю.
открывается сначала — рабочая книга или надстройки
Если я не ошибаюсь, то грузит сначала надстройки, потом открывается рабочая книга. Проблема как раз в том, чтобы перейти с книги надстроек на рабочую книгу (при запуске). А как это прописать, я не знаю.den45444
Const AddName = "Надстройка.xlam" 'Сюда впишите имя надстройки Dim wb as Workbooks Dim Addn as Boolean
Addn = False For Each wb In Workbooks If wb.Name = AddName Then Addn = True Exit For End If Next wb If Not Addn <Сюда засуньте защиту> End If
End Sub
[/vba] И всё это в модуль книги передаваемого клиенту файла. Что КЛИЕНТ точно не увидит расценок (если у него случайно не окажется другой надстройки с таким же именем) обещать могу, то, что, их увидите Вы — нет, с чем едят надстройки я сам только что прочитал по ссылке выше, Вы о них больше моего знаете
В таком случае попробуйте [vba]
Код
Private Sub Workbook_Open()
Const AddName = "Надстройка.xlam" 'Сюда впишите имя надстройки Dim wb as Workbooks Dim Addn as Boolean
Addn = False For Each wb In Workbooks If wb.Name = AddName Then Addn = True Exit For End If Next wb If Not Addn <Сюда засуньте защиту> End If
End Sub
[/vba] И всё это в модуль книги передаваемого клиенту файла. Что КЛИЕНТ точно не увидит расценок (если у него случайно не окажется другой надстройки с таким же именем) обещать могу, то, что, их увидите Вы — нет, с чем едят надстройки я сам только что прочитал по ссылке выше, Вы о них больше моего знаете StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.