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

Вход

Регистрация

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

 

= Мир MS Excel/Работа макроса на защищенном листе - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа макроса на защищенном листе (Макросы/Sub)
Работа макроса на защищенном листе
mitox Дата: Пятница, 16.03.2018, 13:02 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
есть файл с макросом на листе
отформатировал ячейки - разрешив в них вносить данные при защищенном листе
защитил лист

Макрос выдает ошибку. Поискал в инете решения - нашел пару. Не помогли. В чем я ошибаюсь.

[vba]
Код
Private Sub Workbook_Open()

    Dim Sh As Worksheet, i As Integer
    For i = 1 To Sheets.Count
        With Sheets(i)
            .Unprotect Password (123)
            .Protect Scenarios:=True, UserInterfaceOnly:=True
        End With
    Next
        
End Sub
[/vba]

Все равно выдает ошибку. Помогите разобраться. У меня в файле все листы будут защищены, с отдельных ячеек на листах будут сняты защиты. Макросы будут идентичны на каждом листе
К сообщению приложен файл: _8908960-1-.xlsm (22.3 Kb)
 
Ответить
Сообщениеесть файл с макросом на листе
отформатировал ячейки - разрешив в них вносить данные при защищенном листе
защитил лист

Макрос выдает ошибку. Поискал в инете решения - нашел пару. Не помогли. В чем я ошибаюсь.

[vba]
Код
Private Sub Workbook_Open()

    Dim Sh As Worksheet, i As Integer
    For i = 1 To Sheets.Count
        With Sheets(i)
            .Unprotect Password (123)
            .Protect Scenarios:=True, UserInterfaceOnly:=True
        End With
    Next
        
End Sub
[/vba]

Все равно выдает ошибку. Помогите разобраться. У меня в файле все листы будут защищены, с отдельных ячеек на листах будут сняты защиты. Макросы будут идентичны на каждом листе

Автор - mitox
Дата добавления - 16.03.2018 в 13:02
Mikael Дата: Пятница, 16.03.2018, 13:28 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
mitox, добрый день.

[vba]
Код
Private Sub Workbook_Open()

    Dim Sh As Worksheet, i As Integer
    For i = 1 To Sheets.Count
        With Sheets(i)
            .Unprotect "123"
            .Protect Password:="123", Scenarios:=True, UserInterfaceOnly:=True
        End With
    Next
        
End Sub
[/vba]
К сообщению приложен файл: 5610276.xlsm (22.0 Kb)


Сообщение отредактировал Mikael - Пятница, 16.03.2018, 13:36
 
Ответить
Сообщениеmitox, добрый день.

[vba]
Код
Private Sub Workbook_Open()

    Dim Sh As Worksheet, i As Integer
    For i = 1 To Sheets.Count
        With Sheets(i)
            .Unprotect "123"
            .Protect Password:="123", Scenarios:=True, UserInterfaceOnly:=True
        End With
    Next
        
End Sub
[/vba]

Автор - Mikael
Дата добавления - 16.03.2018 в 13:28
mitox Дата: Пятница, 16.03.2018, 15:09 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Спасибо. Я и сам затупил - макрос то срабатывает после открытия файла? Я прав?
 
Ответить
СообщениеСпасибо. Я и сам затупил - макрос то срабатывает после открытия файла? Я прав?

Автор - mitox
Дата добавления - 16.03.2018 в 15:09
Mikael Дата: Пятница, 16.03.2018, 15:20 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
Да, это обработчик события открытие книги.
Но ошибка вылетала из-за вот этой строчки
[vba]
Код
.Unprotect Password (123)
[/vba]
Правильно будет так:
[vba]
Код
.Unprotect Password:="123"
[/vba]
или как у меня.
Так же, после снятия защиты, Вы ставите защиту, но без пароля, поэтому я добавил в следующую строчку еще и пароль.


Сообщение отредактировал Mikael - Пятница, 16.03.2018, 15:39
 
Ответить
СообщениеДа, это обработчик события открытие книги.
Но ошибка вылетала из-за вот этой строчки
[vba]
Код
.Unprotect Password (123)
[/vba]
Правильно будет так:
[vba]
Код
.Unprotect Password:="123"
[/vba]
или как у меня.
Так же, после снятия защиты, Вы ставите защиту, но без пароля, поэтому я добавил в следующую строчку еще и пароль.

Автор - Mikael
Дата добавления - 16.03.2018 в 15:20
mitox Дата: Пятница, 23.03.2018, 06:32 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Подскажите что в коде нужно дописать чтобы макрос менял цвета ячеек на защищенном листе
[vba]
Код
Private Sub Workbook_Open()

    Dim Sh As Worksheet, i As Integer
    For i = 1 To Sheets.Count
        With Sheets(i)
            .Unprotect "пароль"
            .EnableOutlining = True
            .Protect Password:="пароль", Scenarios:=True, UserInterfaceOnly:=True
        End With
    Next
        
End Sub
[/vba]
 
Ответить
СообщениеПодскажите что в коде нужно дописать чтобы макрос менял цвета ячеек на защищенном листе
[vba]
Код
Private Sub Workbook_Open()

    Dim Sh As Worksheet, i As Integer
    For i = 1 To Sheets.Count
        With Sheets(i)
            .Unprotect "пароль"
            .EnableOutlining = True
            .Protect Password:="пароль", Scenarios:=True, UserInterfaceOnly:=True
        End With
    Next
        
End Sub
[/vba]

Автор - mitox
Дата добавления - 23.03.2018 в 06:32
Mikael Дата: Пятница, 23.03.2018, 10:41 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
что в коде нужно дописать чтобы макрос менял цвета ячеек

Нужно написать код который будет менять цвета ячеек.
[vba]
Код
Range("a1:b2").Interior.Color = RGB(0, 255, 0)
[/vba]
Какие ячейки вы хотите менять при открытии книги?
 
Ответить
Сообщение
что в коде нужно дописать чтобы макрос менял цвета ячеек

Нужно написать код который будет менять цвета ячеек.
[vba]
Код
Range("a1:b2").Interior.Color = RGB(0, 255, 0)
[/vba]
Какие ячейки вы хотите менять при открытии книги?

Автор - Mikael
Дата добавления - 23.03.2018 в 10:41
mitox Дата: Пятница, 23.03.2018, 11:40 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Код который меняет цвет имеется и другой.
А проблему снял добавив в строку
[vba]
Код
,AllowFormattingCells:=True
[/vba]
 
Ответить
СообщениеКод который меняет цвет имеется и другой.
А проблему снял добавив в строку
[vba]
Код
,AllowFormattingCells:=True
[/vba]

Автор - mitox
Дата добавления - 23.03.2018 в 11:40
Mikael Дата: Пятница, 23.03.2018, 14:36 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
Код который меняет цвет имеется и другой.

Тогда не понимаю в чем был Ваш вопрос.
Для того чтобы процедура могла менять цвет ячеек достаточно параметра UserInterfaceOnly:=True
Параметр AllowFormattingCells:=True нужен чтобы пользователь мог менять цвет заливки/шрифта.
А проблему снял

Рад, что у Вас все получилось.
 
Ответить
Сообщение
Код который меняет цвет имеется и другой.

Тогда не понимаю в чем был Ваш вопрос.
Для того чтобы процедура могла менять цвет ячеек достаточно параметра UserInterfaceOnly:=True
Параметр AllowFormattingCells:=True нужен чтобы пользователь мог менять цвет заливки/шрифта.
А проблему снял

Рад, что у Вас все получилось.

Автор - Mikael
Дата добавления - 23.03.2018 в 14:36
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа макроса на защищенном листе (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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