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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос выдает ошибку на защищенном листе - Мир MS Excel

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

Excel 2010
При кликании на кнопки "Все" и "Пустые" макрос выдает ошибку, что нельзя использовать данную команду на защищенном листе. А мне нужна именно, чтобы лист был защищен. Как это исправить, чтобы кнопки срабатывали и на защищенном листе?


К сообщению приложен файл: 5347536.xlsm (48.7 Kb)
 
Ответить
СообщениеПри кликании на кнопки "Все" и "Пустые" макрос выдает ошибку, что нельзя использовать данную команду на защищенном листе. А мне нужна именно, чтобы лист был защищен. Как это исправить, чтобы кнопки срабатывали и на защищенном листе?



Автор - staff10207
Дата добавления - 13.12.2015 в 00:06
Serge_007 Дата: Воскресенье, 13.12.2015, 00:40 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
чтобы кнопки срабатывали и на защищенном листе?
Используйте команду UserInterfaceOnly со значением =True


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
чтобы кнопки срабатывали и на защищенном листе?
Используйте команду UserInterfaceOnly со значением =True

Автор - Serge_007
Дата добавления - 13.12.2015 в 00:40
staff10207 Дата: Воскресенье, 13.12.2015, 00:44 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Serge_007, это где прописать?
 
Ответить
СообщениеSerge_007, это где прописать?

Автор - staff10207
Дата добавления - 13.12.2015 в 00:44
enchanter Дата: Воскресенье, 13.12.2015, 10:05 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
staff10207, в начале макроса разблокировать лист и в конце заблокировать и так для всех макросов.

ActiveSheet.Unprotect -в начало

А ЗДЕСЬ ВАШ МАКРОС

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True -вконец


Сообщение отредактировал enchanter - Воскресенье, 13.12.2015, 10:07
 
Ответить
Сообщениеstaff10207, в начале макроса разблокировать лист и в конце заблокировать и так для всех макросов.

ActiveSheet.Unprotect -в начало

А ЗДЕСЬ ВАШ МАКРОС

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True -вконец

Автор - enchanter
Дата добавления - 13.12.2015 в 10:05
Serge_007 Дата: Воскресенье, 13.12.2015, 12:43 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
это где прописать?
В макросе, где же ещё?
[vba]
Код
Sub Generate()
    Application.ScreenUpdating = False
    Sheets("Купоны").Protect Password, UserInterfaceOnly:=True
    
        Randomize
        
    Dim arr: arr = Array(1, 2, "x")
    Dim cell As Range
    Dim rng As Range
    
        If Application.Caller = "btn_region" Then
            Set rng = Selection
                ElseIf Application.Caller = "btn_all" Or Application.Caller = "btn_all2" Then
            Set rng = Range("M2:AK16").SpecialCells(12)
        End If
        
        For Each cell In rng
            If (cell = "" And Application.Caller = "btn_all2") Or Application.Caller <> "btn_all2" Then cell = arr(Int(3 * Rnd))
        Next cell
        
    Application.ScreenUpdating = True
End Sub
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
это где прописать?
В макросе, где же ещё?
[vba]
Код
Sub Generate()
    Application.ScreenUpdating = False
    Sheets("Купоны").Protect Password, UserInterfaceOnly:=True
    
        Randomize
        
    Dim arr: arr = Array(1, 2, "x")
    Dim cell As Range
    Dim rng As Range
    
        If Application.Caller = "btn_region" Then
            Set rng = Selection
                ElseIf Application.Caller = "btn_all" Or Application.Caller = "btn_all2" Then
            Set rng = Range("M2:AK16").SpecialCells(12)
        End If
        
        For Each cell In rng
            If (cell = "" And Application.Caller = "btn_all2") Or Application.Caller <> "btn_all2" Then cell = arr(Int(3 * Rnd))
        Next cell
        
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 13.12.2015 в 12:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос выдает ошибку на защищенном листе (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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