Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Защита листа от другого компьютера - Страница 2 - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 2 из 3«123»
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Защита листа от другого компьютера (Макросы/Sub)
Защита листа от другого компьютера
StoTisteg Дата: Понедельник, 22.02.2016, 19:16 | Сообщение № 21
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
В надстройках нет. Но там RAN прав, нужен другой код, надстройка — не Worksheets :)


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
СообщениеВ надстройках нет. Но там RAN прав, нужен другой код, надстройка — не Worksheets :)

Автор - StoTisteg
Дата добавления - 22.02.2016 в 19:16
den45444 Дата: Понедельник, 22.02.2016, 19:20 | Сообщение № 22
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, вы знаете какой код нужен?
 
Ответить
СообщениеStoTisteg, вы знаете какой код нужен?

Автор - den45444
Дата добавления - 22.02.2016 в 19:20
RAN Дата: Понедельник, 22.02.2016, 19:59 | Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4277
Репутация: 829 ±
Замечаний: 0% ±

2010
RAN, Не могли бы подсказать, какой код нужно прописать, чтобы работало?

Сижу в очереди к гадалке <_<
StoTisteg, вы знаете какой код нужен?

StoTisteg за мной yes
По предварительным прогнозам
[vba]
Код
Private WithEvents app As Application

Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
Wb.Worksheets("Лист2").Visible = xlSheetVeryHidden
End Sub

Private Sub Workbook_Open()
Set app = Application
End Sub
[/vba]
deal deal


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
RAN, Не могли бы подсказать, какой код нужно прописать, чтобы работало?

Сижу в очереди к гадалке <_<
StoTisteg, вы знаете какой код нужен?

StoTisteg за мной yes
По предварительным прогнозам
[vba]
Код
Private WithEvents app As Application

Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
Wb.Worksheets("Лист2").Visible = xlSheetVeryHidden
End Sub

Private Sub Workbook_Open()
Set app = Application
End Sub
[/vba]
deal deal

Автор - RAN
Дата добавления - 22.02.2016 в 19:59
den45444 Дата: Понедельник, 22.02.2016, 20:12 | Сообщение № 24
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, Благодарю за ответ, но по вашему варианту также ругается.
Сейчас в надстройках "Эта книга" есть такой код:
[vba]
Код
Private Sub Workbook_Open()
ФормированиеПанелиИнструментов
ЗапускПапкиШаблоны
End Sub
[/vba]
 
Ответить
СообщениеRAN, Благодарю за ответ, но по вашему варианту также ругается.
Сейчас в надстройках "Эта книга" есть такой код:
[vba]
Код
Private Sub Workbook_Open()
ФормированиеПанелиИнструментов
ЗапускПапкиШаблоны
End Sub
[/vba]

Автор - den45444
Дата добавления - 22.02.2016 в 20:12
RAN Дата: Понедельник, 22.02.2016, 20:18 | Сообщение № 25
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4277
Репутация: 829 ±
Замечаний: 0% ±

2010
Сейчас в надстройках "Эта книга" есть такой код:

Мне очень сильно наплевать, что, и где у вас есть.
Я вам выложил рабочий код.
Снова вставать в очередь к гадалке, дабы выяснить, что, и где у вас есть, и почему не работает, я не собираюсь.
Удачи!


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Сейчас в надстройках "Эта книга" есть такой код:

Мне очень сильно наплевать, что, и где у вас есть.
Я вам выложил рабочий код.
Снова вставать в очередь к гадалке, дабы выяснить, что, и где у вас есть, и почему не работает, я не собираюсь.
Удачи!

Автор - RAN
Дата добавления - 22.02.2016 в 20:18
den45444 Дата: Понедельник, 22.02.2016, 20:28 | Сообщение № 26
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, Благодарю!
 
Ответить
СообщениеRAN, Благодарю!

Автор - den45444
Дата добавления - 22.02.2016 в 20:28
den45444 Дата: Вторник, 23.02.2016, 10:22 | Сообщение № 27
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Прошу помочь, кто может уделить мне немного времени написать код правильно. Если это вообще возможно?
 
Ответить
СообщениеПрошу помочь, кто может уделить мне немного времени написать код правильно. Если это вообще возможно?

Автор - den45444
Дата добавления - 23.02.2016 в 10:22
Wasilich Дата: Вторник, 23.02.2016, 11:55 | Сообщение № 28
Группа: Друзья
Ранг: Ветеран
Сообщений: 866
Репутация: 221 ±
Замечаний: 0% ±

2003
Прошу помочь
Сколько ж можно помогать? Что ж так туго все идет? :D
Ну попробуйте еще так:
Запустите этот код, он выдаст серийный номер. Запишите его на бумажку.
[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]
Первый код можно удалить, он больше не нужен.
Макросы от любопытных надо запаролить.
Проверьте на другом компе.
От пользователей, достаточно.


Сообщение отредактировал Wasilic - Вторник, 23.02.2016, 11:58
 
Ответить
Сообщение
Прошу помочь
Сколько ж можно помогать? Что ж так туго все идет? :D
Ну попробуйте еще так:
Запустите этот код, он выдаст серийный номер. Запишите его на бумажку.
[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
Дата добавления - 23.02.2016 в 11:55
den45444 Дата: Вторник, 23.02.2016, 13:14 | Сообщение № 29
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Wasilic, Этот способ я понял. Но если передать надстройки менеджеру, он не сможет пользоваться ими.
Нельзя ли прописать так, чтобы разблокировался лист в том случае если установлены наши надстройки? Соот-но, у кого их нет, они не смогут видеть лист.
 
Ответить
СообщениеWasilic, Этот способ я понял. Но если передать надстройки менеджеру, он не сможет пользоваться ими.
Нельзя ли прописать так, чтобы разблокировался лист в том случае если установлены наши надстройки? Соот-но, у кого их нет, они не смогут видеть лист.

Автор - den45444
Дата добавления - 23.02.2016 в 13:14
den45444 Дата: Вторник, 23.02.2016, 13:18 | Сообщение № 30
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Wasilic,
Есть файл под названием "Смета по разделам" и установленные надстройки к нему.
Тип файла : xlsx
В этом файле два листа: "Смета" и "Расценки"
Лист "СМЕТА" – открыт и не заблокирован.
Лист "Расценки" – заблокирован и скрыт. Этот лист я не вижу, но он есть. Вы спросите зачем заблокировали и скрыли? – от глаз клиента, которому будем высылать этот файл.

Теперь суть задачи:
Нужно чтобы при открывании этого файла макрос автоматический разблокировал лист "Расценки" именно у ТОГО у кого установлена данная надстройка.
 
Ответить
СообщениеWasilic,
Есть файл под названием "Смета по разделам" и установленные надстройки к нему.
Тип файла : xlsx
В этом файле два листа: "Смета" и "Расценки"
Лист "СМЕТА" – открыт и не заблокирован.
Лист "Расценки" – заблокирован и скрыт. Этот лист я не вижу, но он есть. Вы спросите зачем заблокировали и скрыли? – от глаз клиента, которому будем высылать этот файл.

Теперь суть задачи:
Нужно чтобы при открывании этого файла макрос автоматический разблокировал лист "Расценки" именно у ТОГО у кого установлена данная надстройка.

Автор - den45444
Дата добавления - 23.02.2016 в 13:18
Wasilich Дата: Вторник, 23.02.2016, 15:55 | Сообщение № 31
Группа: Друзья
Ранг: Ветеран
Сообщений: 866
Репутация: 221 ±
Замечаний: 0% ±

2003
Сначала надо было так:
мой компьютер не должен запрашивать пароль и я свободно мог бы пользоваться вторым листом.
Сделали два предложения.
Теперь надо так:
Нужно чтобы при открывании этого файла макрос автоматический разблокировал лист "Расценки" именно у ТОГО у кого установлена данная надстройка.
Код Вам предложен!
А НАДСТРОЙКУ вам из форума никто не установит.
Гугл, Яндекс вам в помощь.
 
Ответить
СообщениеСначала надо было так:
мой компьютер не должен запрашивать пароль и я свободно мог бы пользоваться вторым листом.
Сделали два предложения.
Теперь надо так:
Нужно чтобы при открывании этого файла макрос автоматический разблокировал лист "Расценки" именно у ТОГО у кого установлена данная надстройка.
Код Вам предложен!
А НАДСТРОЙКУ вам из форума никто не установит.
Гугл, Яндекс вам в помощь.

Автор - Wasilich
Дата добавления - 23.02.2016 в 15:55
den45444 Дата: Вторник, 23.02.2016, 17:50 | Сообщение № 32
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Wasilic, Надстройки у меня установлены. Предложенный вариант я уже пробовал, - почему то ругается. Сможете посмотреть если я прикреплю файл с надстройками?
 
Ответить
СообщениеWasilic, Надстройки у меня установлены. Предложенный вариант я уже пробовал, - почему то ругается. Сможете посмотреть если я прикреплю файл с надстройками?

Автор - den45444
Дата добавления - 23.02.2016 в 17:50
al-Ex Дата: Вторник, 23.02.2016, 18:37 | Сообщение № 33
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 146
Репутация: 53 ±
Замечаний: 20% ±

Excel 2010
Надстройки у меня установлены

Если я правильно понял:
при активации книги.
Макрос должен определить,
подключена ли надстройка "XXX"?
если подключена то сделать лист видимым
Если нет, то нет.


Сообщение отредактировал al-Ex - Вторник, 23.02.2016, 18:37
 
Ответить
Сообщение
Надстройки у меня установлены

Если я правильно понял:
при активации книги.
Макрос должен определить,
подключена ли надстройка "XXX"?
если подключена то сделать лист видимым
Если нет, то нет.

Автор - al-Ex
Дата добавления - 23.02.2016 в 18:37
StoTisteg Дата: Вторник, 23.02.2016, 18:51 | Сообщение № 34
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Макрос должен определить,подключена ли надстройка "XXX"?

Ну для этого можно хоть тупо перебирать открытые книги в поисках нужной надстройки yes Только может и не сработать, я без понятия, входят ли скрытые книги в Workbooks и что открывается сначала — рабочая книга или надстройки :p


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщение
Макрос должен определить,подключена ли надстройка "XXX"?

Ну для этого можно хоть тупо перебирать открытые книги в поисках нужной надстройки yes Только может и не сработать, я без понятия, входят ли скрытые книги в Workbooks и что открывается сначала — рабочая книга или надстройки :p

Автор - StoTisteg
Дата добавления - 23.02.2016 в 18:51
den45444 Дата: Вторник, 23.02.2016, 19:00 | Сообщение № 35
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
al-Ex,
Если я правильно понял:
при активации книги.
Макрос должен определить,
подключена ли надстройка "XXX"?
если подключена то сделать лист видимым
Если нет, то нет.

Да, именно так.
 
Ответить
Сообщениеal-Ex,
Если я правильно понял:
при активации книги.
Макрос должен определить,
подключена ли надстройка "XXX"?
если подключена то сделать лист видимым
Если нет, то нет.

Да, именно так.

Автор - den45444
Дата добавления - 23.02.2016 в 19:00
den45444 Дата: Вторник, 23.02.2016, 19:05 | Сообщение № 36
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
открывается сначала — рабочая книга или надстройки

Если я не ошибаюсь, то грузит сначала надстройки, потом открывается рабочая книга. Проблема как раз в том, чтобы перейти с книги надстроек на рабочую книгу (при запуске). А как это прописать, я не знаю.
 
Ответить
Сообщение
открывается сначала — рабочая книга или надстройки

Если я не ошибаюсь, то грузит сначала надстройки, потом открывается рабочая книга. Проблема как раз в том, чтобы перейти с книги надстроек на рабочую книгу (при запуске). А как это прописать, я не знаю.

Автор - den45444
Дата добавления - 23.02.2016 в 19:05
МВТ Дата: Вторник, 23.02.2016, 19:25 | Сообщение № 37
Группа: Проверенные
Ранг: Обитатель
Сообщений: 475
Репутация: 135 ±
Замечаний: 0% ±

Excel 2007
Ну объявите и инициализируйте в надстройке глобальную переменную, а из своей книги проверяйте ее
 
Ответить
СообщениеНу объявите и инициализируйте в надстройке глобальную переменную, а из своей книги проверяйте ее

Автор - МВТ
Дата добавления - 23.02.2016 в 19:25
den45444 Дата: Вторник, 23.02.2016, 19:40 | Сообщение № 38
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
МВТ,
Ну объявите и инициализируйте в надстройке глобальную переменную, а из своей книги проверяйте ее

Можно пример, если не сложно?
 
Ответить
СообщениеМВТ,
Ну объявите и инициализируйте в надстройке глобальную переменную, а из своей книги проверяйте ее

Можно пример, если не сложно?

Автор - den45444
Дата добавления - 23.02.2016 в 19:40
StoTisteg Дата: Вторник, 23.02.2016, 19:42 | Сообщение № 39
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
В таком случае попробуйте
[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]
И всё это в модуль книги передаваемого клиенту файла. Что КЛИЕНТ точно не увидит расценок (если у него случайно не окажется другой надстройки с таким же именем) обещать могу, то, что, их увидите Вы — нет, с чем едят надстройки я сам только что прочитал по ссылке выше, Вы о них больше моего знаете :)


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
СообщениеВ таком случае попробуйте
[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
Дата добавления - 23.02.2016 в 19:42
den45444 Дата: Вторник, 23.02.2016, 19:48 | Сообщение № 40
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
StoTisteg,
 If Not Addn

Показывает ошибку
 
Ответить
СообщениеStoTisteg,
 If Not Addn

Показывает ошибку

Автор - den45444
Дата добавления - 23.02.2016 в 19:48
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Защита листа от другого компьютера (Макросы/Sub)
Страница 2 из 3«123»
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!