Новые сообщения · Участники · Правила форума · Поиск · RSS
  • Страница 1 из 1
  • 1
Модератор форума: DV68, Author  
Форум » ТЕМАТИЧЕСКИЕ » Excel - Готовые формулы » Вопрос с макросом
Вопрос с макросом
Vlad17Дата: Понедельник, 12.11.2012, 19:49 | Сообщение # 1
Группа: Проверенные
Сообщений: 10
Статус: Offline
Есть макрос, который скрывает столбцы при входе в книгу, так же при открытии книги она ставится автоматически на пароль с защитой от форматирования столбцов. Проблема в том, что если не снять защиту книги, то при следующем открытии книги он выдаст ошибку, что, мол, нельзя запустить макрос (ош. 1004), а появление ошибки не желательно, так как через нее можно попасть в код книги.
Вот коды, видимо вся фишка с защитой, но не понимаю в чем она...

Private Sub Workbook_Open()
Call hide_fields
Worksheets("для Сергея").Protect Password:="1234"
End Sub

Sub hide_fields()
'
' hide_fields макрос
'
' Ñî÷åòàíèå êëàâèø: Ctrl+z
'
Columns("I:I").Select
Selection.EntireColumn.Hidden = True
Columns("J:J").Select
Selection.EntireColumn.Hidden = True
Columns("L:L").Select
Selection.EntireColumn.Hidden = True
Columns("M:M").Select
Selection.EntireColumn.Hidden = True
Columns("N:N").Select
Selection.EntireColumn.Hidden = True
Columns("O:O").Select
Selection.EntireColumn.Hidden = True
Columns("P:P").Select
Selection.EntireColumn.Hidden = True
Columns("Q:Q").Select
Selection.EntireColumn.Hidden = True
End Sub

Sub show_fields()
'
' show_fields макрос
'
' Ñî÷åòàíèå êëàâèø: Ctrl+x
'
Selection.ColumnWidth = 7
Columns("H:H").EntireColumn.AutoFit
Columns("G:G").ColumnWidth = 7
Columns("G:G").EntireColumn.AutoFit
Columns("I:I").ColumnWidth = 7
Columns("I:I").EntireColumn.AutoFit
Columns("J:J").ColumnWidth = 7
Columns("J:J").EntireColumn.AutoFit
Columns("L:L").ColumnWidth = 7
Columns("L:L").EntireColumn.AutoFit
Columns("M:M").ColumnWidth = 7
Columns("M:M").EntireColumn.AutoFit
Columns("N:N").ColumnWidth = 7
Columns("N:N").EntireColumn.AutoFit
Columns("O:O").ColumnWidth = 7
Columns("O:O").EntireColumn.AutoFit
Columns("P:P").ColumnWidth = 7
Columns("P:P").EntireColumn.AutoFit
Columns("Q:Q").ColumnWidth = 7
Columns("Q:Q").EntireColumn.AutoFit

End Sub
 
Serge_007Дата: Вторник, 13.11.2012, 01:02 | Сообщение # 2
Группа: Проверенные
Сообщений: 468
Статус: Offline
В модуль "Эта книга":
Code
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("для Сергея").Unprotect Password:="1234"
Range("i:j,l:q").EntireColumn.Hidden = False
End Sub

Private Sub Workbook_Open()
Call hide_fields
End Sub


В обычный модуль:
Code

Sub hide_fields()
Worksheets("для Сергея").Unprotect Password:="1234"
     Range("i:j,l:q").EntireColumn.Hidden = True
Worksheets("для Сергея").Protect Password:="1234"
End Sub

Sub show_fields()
Worksheets("для Сергея").Unprotect Password:="1234"
     With Range("i:j,l:q")
         .EntireColumn.Hidden = False
         .ColumnWidth = 7
         .EntireColumn.AutoFit
     End With
Worksheets("для Сергея").Protect Password:="1234"
End Sub
Прикрепления: Vlad17.xls (36.5 Kb)


Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
Яндекс-деньги: 41001419691823
WMR: 126292472390
 
Форум » ТЕМАТИЧЕСКИЕ » Excel - Готовые формулы » Вопрос с макросом
  • Страница 1 из 1
  • 1
Поиск:
  <script type="text/javascript">teasernet_blockid = 656993;teasernet_padid = 271069;</script><script type="text/javascript" src="http://bzlwe.com/07f6/bad6484c927/07.js"></script> 
Copyright MyCorp © 2024 Используются технологии uCoz