Страницы: 1
RSS
автофильтр записанный макрорекордером в листе с защитой
 
Подскажите, как мне реализовать.  
Ставлю защиту на листе, автофильтр работает вручную, записываю макрорекордером, привязываю к кнопочке.... не работает. Что можно сделать?
 
Почему не работает непонятно. Другие галки при установке защиты (например, добавление строк/столбцов) ведут себя адекватно.  
Сделать можно следущее: поставить защиту с параметром UserInterfaceOnly:=True  
Он ставит защиту от действий пользователя, но не от макроса (любого).  
Но засада в том, что параметр надо устанавливать каждый раз при открытии книги.  
В модуль ЭтаКнига:  
Код
Private Sub Workbook_Open()   
    Sheets("Акт").Protect Password:="пароль", DrawingObjects:=True, Contents:=True, Scenarios:=True _   
        , AllowFormattingRows:=True, AllowInsertingRows:=True, AllowSorting:=True _   
        , AllowFiltering:=True, AllowUsingPivotTables:=True, UserInterfaceOnly:=True   
End Sub
Bite my shiny metal ass!      
 
Еще рекомендую такой код:  
Sub отобразить()  
With Sheets("Акт")  
If .FilterMode Then .ShowAllData  
End With  
End Sub  
 
Если Вы конечно хотите отобразить действительно все, а не только столбец 1.
Bite my shiny metal ass!      
 
Почитал справку. Понятно почему не работает. Так устроен автофильтр в VBA.
Bite my shiny metal ass!      
 
по коду не совсем понял. можно на примере отобразить?
 
Что непонятного? Уточните.  
Я только имел в виду, что Ваш код:  
 
Sub отобразить()  
   Selection.AutoFilter Field:=1  
   Range("C18:G18").Select  
End Sub  
 
я рекомендую заменить на этот  
 
Sub отобразить()  
With Sheets("Акт")  
If .FilterMode Then .ShowAllData  
End With  
End Sub  
 
Пример какой нужен? Вы самостоятельно не можете сделать копи-паст?
Bite my shiny metal ass!      
 
спасибо, разобрался. Сработало
Страницы: 1
Наверх